Close

The motivation

A project log for Modular MIDI

Using a CAN bus to distribute MIDI messages in a modular synthesizer

davidDavid 10/12/2021 at 18:010 Comments

This is technically a continuation of an earlier project I did. There I used an I2C connection to send MIDI messages between eurorack modules. This does work with low frequencies over short distances. However, I2C is not exactly known for its robustness. Also, the MIDI 2.0 specification was made public during the development of those first modules. So I wanted to make those modules more future-proof.

MIDI in eurorack is usually only used to generate control voltages. And I think more digital control in eurorack could be cool. Being able to recall settings and patches using program change messages would definetively be useful in a performance setting. Remapping the functions of knobs would be possible, they don't even need to be on the module they're controlling. And with the improved resolution of MIDI 2.0 a controller knob can be indistinguishable from an analog knob. This will probably end up being a niche within a niche, but I believe having more options is positive.

The main purpose of this project is to integrate MIDI 2.0 in eurorack. Currently the only transport for MIDI 2.0 is USB, but having USB on many modules can be inconvenient both for developers and end-user. For users this simply means several USB cables and hubs. For devs the USB stack may provide a lot of overhead in simple applications. Also, the modular synth community has a lot of small manufacturers, and hobbyists. So the USB licensing may prevent this part of the community from taking advantage of MIDI 2.0.

Therefore I think defining a new transport for MIDI would be useful for eurorack and other modular systems. And to this end a multi-point bus would work great with MIDI, since most messages should be broadcast to every other module on the bus.

The prototype to demonstrate this transport will be four modules: A DIN-5 gateway for the old MIDI 1.0 transport, a control voltage module to interact with the analog modules, a multiplexer module to change patches with MIDI, and a USB gateway for MIDI 2.0.

Discussions