www.96kHz.org
advanced audio recording
MIDI interlink with S/PDIF
  MIDI
LINK MATRIX
 My music workstation differs from commercial applications in two ways:

1) to control the audio DSP features and the wavegen synthesizer, a MIDI like protocol is used with modified data width. Instead of using 7-Bit values like with common MIDI my virtual devices operate at 10 bits data width for a better accuracy.

2) To transport data with low latency, 25MHz busses with 8 bits of width are defined using an internal multiplexed S/PDIF serial protocol.

Using standard MIDI has some issues: It produces dynamic data length depending on the number of notes and controllers sent, causing a kind of jitter, so in common musical instruments, a time stamp related processing is used. This leads to the fact, that there is no good real-time operation possible when playing live, because time based processing of course requires a large buffer and look ahead features eventually.

With a 25MHz parallel 8Bit system, 200 MBit of bandwidth is available cutting down latency significantly.

To interlink devices over a larger distance of e.g. 5m, S/PDIF transceiver chips can be used to do this easily. Electrical S/PDIF transceivers (coax) typically run on 2-3MHz and often work up to 5-6 MHz. For optical transmission, 10MHz seem to be possible, since ADAT already operates with 9MHz.

MIDI over SPDIF and ADAT

The FPGA can handle 1024 virtual MIDI channels easily and route them from individual sources to dedicated output targets with nearly no latency. Transmission over S/PDIF like interfaces ensures low latency even of thousands of events have to be transmitted.

The table below shows the implementation for internal and external data streams with the 4x4 Bit MIDI extension leading to 12 Bit MIDI words finally. They can be transmitted using a stereo S/PDIF word or in the 10 Bit version be compressed into one 32 Bit S/PDIF word.




 Read a detailed article here

Enhanced MIDI protocol for higher transmission rates and lower latency

 
 
full transmission
of all channels
within
one data cycle

25MHz
x
8 Bits
96 kHz
Audio DSP

 

© Jürgen Schuhmacher 2003