6 ms·
> Seriously the MIDI timing is unbeaten until today! Is this in any way related to the general "speed is going up but latency is getting worse" phenomenon of h
by vanderZwan 1y ago
> Seriously the MIDI timing is unbeaten until today!
Is this in any way related to the general "speed is going up but latency is getting worse" phenomenon of hardware in the last decades?
- Aldipower 1y agoYes, I think this is a on point statement. :-)
- GuB-42 1y agoYes, back in the days, I/O was often really low latency because memory and therefore buffers were expensive and gate count was limited, it meant more direct connections, which meant low latency. The Atari 2600 for instance was known for "racing the beam", updating the image while it was being drawn on the CRT monitor. A latency measured in pixels rather than frames! It was necessary because the console didn't have enough memory for a framebuffer. The Atari ST is special for the inclusion built-in of MIDI ports, and it was made cheaply, which at the time meant direct connections and it resulted it low latency.
- zozbot234 1y agoYou can have low latency and low jitter today, but you will need to use a microcontroller not a general-purpose CPU. The old 16/32 bit retro machines are essentially microcontroller architecture devices with general-purpose computer peripherals, for pretty much the reasons you mention. But there are many cheap microcontrollers available today, such as the Raspberry Pico series.
- GuB-42 1y agoAnd when you factor in FPGAs, you can get down to the microsecond or less. Low latency is possible, it is just that priorities are often elsewhere. We like being able to plug everything anywhere. And I admit it is damn cool being able to connect a display, most kinds of storage devices, keyboard and mouse, all while charging my laptop on a single port, at any time. I may even be able to disconnect my laptop and put my phone instead and it will do something sensible. If you did that back in the day, there was a good chance for one of the devices to turn into a smoke machine. It comes at a cost though.
- dylan604 1y ago> If you did that back in the day, there was a good chance for one of the devices to turn into a smoke machine. Back in the day, you would not have been able to do any of this with one port. Each type of device had it's own uniquely shaped connector/pins combo. You were not going to connect your SCSI devices into the VGA monitor port accidentally. Closest I ever saw was someone attempting plug in a Mac ADB cable to the S-Video port, but that just resulted in bent pins. It just so happened those pins were on an Avid Film Composer dongle instead of a replaceable cable.
- YZF 1y agoI think modern general purpose CPUs are perfectly capable of low latency and jitter. The problem isn't the CPU, the problem is stuff around the CPU (mostly the operating system). The less deterministic aspects of modern CPUs (branch prediction, speculative execution, caches etc). happen at timescales much smaller than what you usually care about (and possibly smaller than the jitter specs on microcontrollers).
- b112 1y agops/2 keyboards trigger an interrupt. USB are polled.
- yencabulator 1y agoA modern CPU polls faster than it can handle interrupts. That can be done on every nth iteration of the sound producing loop.
- Lerc 1y agoA rp2350 with psram and microsd could probably do a commendable job at pretending to be an entire Atari ST while providing a bootload of extra low latency goodies at the same time
- bitwize 1y agoI refer to the RP2xxx chips as "headless Amigas" because their PIO modules essentially function like Coppers: they are simple state machines that offload I/O functionality off the CPU. I think there's a very strong future in emulation of achieving FPGA-like latency by using a Raspberry Pi Pico/Pico2 to emulate each of the target machine's subsystems/chips.
- Lerc 1y agoHave you seen https://github.com/floooh/chips https://github.com/floooh/chips A bunch of PIO linked chips using these interfaces would feel like a weird blend of software and hardware that stands separately to the FPGA world. I have wondered if it would actually work as a larger scale paradigm. Imagine a single piece of silicon with a bunch of RP2xxxx level processor/ram blocks with PIO links between them all. I'm not sure how it would come out compared to FPGAs for balance of flexibility/cost/power consumption/etc. but I suspect it could find a niche. antirez mentioned running some of these on RP2040's
- kjs3 1y agoThe 68000 is "essentially microcontroller architecture"? I don't think there are many people who understand architecture that would agree with that statement.
- nailer 1y ago> The Atari 2600 for instance was known for "racing the beam", updating the image while it was being drawn on the CRT monitor. A latency measured in pixels rather than frames! Oh wow! I remember hearing that oculus were doing this on their devices and thinking it was new.
- weinzierl 1y agoThis is true, but in my opinion also misleading. Speed and latency are fundamentally different. Speed would be a Performance Feature in the Kano model, meaning there is usually a linear relationship between speed and user satisfaction. Latency would be a Basic Feature. Once you cross 7 ms (or 5 ms, or even 3 ms if you absolutely insist) you're happy, above that everything is absolutely unusable.
- Aldipower 1y agoYou are missing out the jitter. This is often the worst part of modern implementations. If there is a jitter of 4ms and peaking sometimes with 20ms, then a 5ms latency is still bad. This implementation is basically unusable. Like many modern USB ones.. The Atari has an absolute stable and extremely low jitter. Some guy measured it to 1µs. Cannot find the link though, sorry. So the Atari has low latency around 2-4ms with an extremely low jitter. This is execatly what you want from a MIDI clock and sequencer driving multiple MIDI devices.
- deng 1y agoHow do you think any professional works nowadays with MIDI? A good, modern USB interface (from Focusrite or similar) has a jitter well below 1ms, usually in the range of 200µs. If that is too much, simply sync your DAW with an external, dedicated clock, which will usually give you a jitter in the single µs range.
- Aldipower 1y agoI have a Focusrite and the MIDI timing is terrible. Sure, there is more to it then just the interface. With USB you just cannot guarantee a stable midi timing, because there is no good midi buffer implementation for it. Technically it would be possible, but no one cares.. Professionals using something like MIDI to audio converters via an VSTi plugin that takes midi signals, modulates them onto a audio signal (which can be easily buffered) and some dedicated outboard equipment converts this back to MIDI. If you are working with hardware synths, etc. this is the only option you have nowadays with non-vintage hardware. A lot of producers do not work with midi anyways, they use plugins, that's why it is some kind of a niche problem and there's not much talking about it.
- brudgers 1y agoNot really. MIDI is a serial protocol. At any given time only one message can be sent down the wire. [1] So on the beat, an implementation can send either the clock pulse or note on or something else. [2] If you send the clock everything else has to wait. If you send something else, the clock has to wait. Now with modern computers, you are also dealing with USB which is a low priority parallel protocol and has to coordinate with everything else a modern kernel does. Music is hard. [1] premium hardware sequencers sometimes have two or more Midi Out to reduce contention. [2] Midi Time Code solves this by encoding monotonic time into Midi and is how serious sync is done over Midi, e.g. in Hollywoood
- genewitch 1y agoWhat's the S in USB?
- snickerbockers 1y agoFWIW you can get excellent latency on a modern device but only if you run everything in real mode and forgo complicated buses like USB that are effectively network link layers.