|Advanced Audio Recording|
Improved MIDI transmission
This article describes limitations of the MIDI standard and shows ways to get around some issues by increasing transmission speed and controller resolutions. Read here about the limitations of MIDI.
impact of a low MIDI-speed on sound
When having a closer look at synthesizer playing, one observes that it is nearly impossible to transport all the information for many simultaneously pressed keys appropriately with the current MIDI protocol running at around 30kHz only. With e.g. 10 keys pressed the same time, nearly 10ms are required before all the "start note" commands are transmitted. In cases when musical instruments have to send a lot of controller data in order to control functions in real-time, the limitation becomes critical because it will cause jitter which is bad for fast and pulsed voices using arpeggio effects. The example below show a chord with 160 bum, creating 1/32ths notes repeating at 50ms. The intended echo effect of the automatic arpeggio is totally ruined.
Having a look at good qualified piano players, it becomes evident that finger movement has to be very precisely reproduced in order to maintain the information. One cannot use simple velocity curves as with synthesizers but has to sent continuous controller information with at least 1kHz along the transient time of the note. This leads to what I call the "piano 10 finger problem" which means, that 10 controllers must be sent in less than some mms and at least 20 have to be sent during note start leading to 30 midi massages at the "same" time. The table below shows this and other cases:
Comparison Table of MIDI-speeds
Even with enhanced MIDI at 230k like I proposed here, the precise piano playing was impossible. .
Most PC's limit seems to be 460kBaud, which I achieved using Linux and the wxWidgets Library. See my PDF-document here for a detailed explanation provided for Joachim Bürmann. www.iftools.com (CTB library). With 460kBaud piano control in real-time is principally possible. With special hardware, even 920kBaud is possible using Linux. So from the PC side, it was possible to switch to an enhanced MIDI standard with increased speed.
The question is how to get even more speed
with MIDI. Well looking at the MIDI speed comparison chart, it is very
obvious, that with the current even when using USB interfaces for PC,
there will still be a bottle neck when transferring music data to the
Using 5 Byte MIDI solves the issue of the coarse controller values since 12 bits are available now. Using S/PDIF physical layer at least 3MBaud are available to transmit MIDI data with acceptable delay and sufficient precision. Using 10 Bit reduced MIDI like in the 10 Bit MIDI Controller, 2 MIDI messages can be compressed into a S/PDIF word of 32 Bits. Alternatively two S/PDIF words can be used to store MIDI raw data including start / stop and parity bits for easy decoding. Finally full 5Byte MIDI can be transmitted using external S/PDIF connection using the normal protocol. Unlike described in my first MIDI2000 approach, this protocol fully works with existing hardware and fits well in the already defined S/PDIF standard protocol. Common transceivers can be used to transmit data.
Comments are welcomed.
Read also the former article
limitations of MIDI.
|© 2003 - Jürgen Schuhmacher|