96 kHz.org
Advanced Audio Recording

The Limits of MIDI

This article deals with the limitations of MIDI in terms of the controller resolution and shows the difference between 8-Bit and 10-Bit MIDI as I proposed it in MIDI 2000.

As an example a typical movement of a MIDI controller knob is investigated as it takes place in classical analog synthesizers and keyboards using analog potentiometers. To emulate this with external controllers the movement is typically scanned with a PWM or sampled by an ADC and sent to the synthesis module via MIDI. While doing this a limitation of the resolution of the data takes place.

 

MIDI Resolution of 8 bits:

Comparison of different MIDI protocol resolutions

Starting from an angle position of -100 degrees of the potentiometer a rapid knob movement up to +50 degrees is performed during a period of 100ms. The movement is represented by the green curve. This was a measured action and comes close to reality.
The MIDI value changes from -47 to 24 with about 1ms delay according to MIDI-transmission.


The MIDI (orange curve) value finally is reinterpreted by the sound generation device leading to a local piece on information representing the potentiometer's real value. Because of the granularity of MIDI (-127 ... +127) there is an error of up to one digit in total, so the value is false.
During movement the error is more or less unpredictable and causes a kind of digital noise as super position of the sliding value.
The error (red curve) is shown with 10 times amplification here for better observation. The time delay caused by the MIDI transmission is not taken into account here.
This digital noise caused false interpretation of the knob movement and is far away from reality. Moreover it introduces information not existing in the real world. With noisy analog potentiometers it becomes even worse, when one digit is toggling:

 

MIDI Transmission with noise:

 

Noised MIDI transmission

Typically analog noise is present in the signal, when a potentiometer is scanned which has to be processed in order to shun some issues. In some situations, the noise leads to an unlucky rounding and is transmitted to the sound generation device as digital alias information. The physically clean and smooth knob movement in this example shows up really bad after all depending on the detailed values and rounding. Many MIDI devices try to solve this issue my filtering the incoming data:

 

MIDI Resolution and Delay with smoothing

example of a delay caused by MIDI parameter smoothing


Here the result of the typical smoothing strategy is shown, which is available in many MIDI-devices like VA-synthesizers to lower this issue.
The granularity of the final signal is lower but a addition delay occurs which means the response of the value in the destination device is "behind" the reality. The error is shown with 10 times amplification again. One can see both, the offset because of the resolution and the delay.
The time delay caused by MIDI again is not taken into account here - but leads to a similar behavior: An even larger difference between knob movement and response and the quicker the movement, the larger is the dynamic delay between movement and the synthesizer's response. Even if this cannot be discovered easily by listening it is a deviation though.


It's time for MIDI 2000

no delay is caused by MIDI 2000 with 1024 digit resolution

 

This diagram shows the situation at a higher resolution and transmission speed. Already with 10 Bits of resolution in my MIDI 2000 system, the granularity is significantly smaller even without smoothing techniques. For comparison reasons, the MIDI value here is shown with the same ratio as in the diagram above. In reality there are up to 4 bits more for a precise representation of the knob movement coming even closer to reality and get a quick response. Also the higher transmission speed lowers any possible delay.


Let's get analog

no delay is caused by MIDI 2000 with 1024 digit resolution

In this chart, a full comparison between true physical movement of the knob and the final non filtered result in the MIDI2000 device at full resolution is shown. Both digitized noise and transmission delay are taken into account. Moreover a test signal of about 300Hz is added to the primary signal before digitizing and sending over MIDI. Because of the high transmission rate of 48kHz S/PDIF only 10us delay do occur for the required  2x12 bits of the fully MIDI command covering the controller movement. Even the 300Hz Signal is represented in the MIDI-Signal appropriately. Together with the resolution this causes only a minimal deviation from the reality of about 2 digit at 12-Bit resolution in total! This is better than 0,1% deviation for the raw values.

 Even without filtering to possibly remove analog noise from the data this is almost 99,9% accuracy regarding the real clean movement of the knob.

 

Read about another article about Problems with MIDI.

 

 

© 2000 - Jürgen Schuhmacher