Hello,
I've made a couple Arduino MIDI controllers in the past few years, but they all used a normal Control Change or Note On/Off message per fader or button. This works perfectly fine, since most audio software lets you map these MIDI events to controls on the screen.
However, I'd like to be able to connect some LEDs and maybe a display to my controller as well. This was not possible, because most DAWs and other software don't let you map controls to outgoing MIDI messages. (E.g. if the user clicks the mute button on the screen, the software should send a MIDI message to the controller, so that it can turn on the appropriate LED.)
This is only possible when using one of the 'Control Surfaces' presets that are available. The problem is that they use mostly proprietary protocols (although some reverse-engineered specs are available online).
My question is: what protocol would be best?
On the MIDI side, there seems to be mostly the Mackie Control Protocol (propr.), and some older ones use Mackie HUI, the Behringer BCF2000 seems to have different operation modes, including Mackie Control mode, and some other brands like Frontier or PreSonus seem to use a protocol similar to Mackie Control as well.
But nowadays, most DAWs support OSC (Open Sound Control) too, a controller protocol using UDP/IP.
This seems a slightly more modern/future-proof technology, however, a lot harder to implement,
because it requires an internet connection. I have some ESP8266s laying around, so that could work, and the Teensyduino plugin has a OSC library that claims to support SLIP (Serial Line IP) to use it over USB.
But it seems to be quite complicated to get that working. The advantage of MIDI is that it is much easier to connect, and pretty much all Arduinos support it.
Any ideas on what protocol to choose? Things to watch out for, pros, cons, feasibility?
Thanks in advance,
Pieter