[LAU] Replacing/enhancing MIDI, and OSC

Len Ovens len at ovenwerks.net
Tue Feb 17 01:16:48 UTC 2015


On Mon, 16 Feb 2015, Harry van Haaren wrote:

>> 2.  I had not heard of MIDI-over-OSC.
>
> Yes - almost everything is possible with OSC - any form of data can be
> passed around as a "blob" of binary data, timestamps are available to
> be used for timing, and "bundles" can be used to have multiple events
> be processed at exactly the same time.
>
> Sequential handling? Yes - unless in a bundle.
> Bandwidth: unlimited.

I had not heard of it either, but while reading the documentation on liblo 
(an OSC lib) I found there is a function just for sending MIDI events. 
Note that this is a 4 byte event only, not sysex.

I don't know if there are size limits to OSC blobs... but when one wants 
to do data over ip of any size, timing becomes secondary because both ends 
will need time to deal with 1000 patches... why use OSC? there are lots of 
ways to send a config file of any size over IP already. It has always been 
up to the designer how they use sysex anyway and how transparent they 
decide to make it. Some have been very transparent and well documented so 
that others could make things like patch editors. Others have been just a 
binary blob, storable, but not easy to edit.


> To sum up - JACK MIDI is awesome - its widely used, it is
> sample-accurate within the JACK graph, and events can occur at exactly
> the same times. With the QMidiNet project, broadcasting JACK MIDI over
> the network is possible,
> http://qmidinet.sourceforge.net/qmidinet-index.html

netjack can also extend jack MIDI across the net.

For 99% plus music performance use, MIDI is not really out of date. That 
is why all keyboard/synths still come with it. The connector has been 
suplemented with USB for higher speed/throughput, but not much else has 
changed. Pitch bending still produces more data than is easy to handle... 
do we really want higher resolution? More channels? How many keyboards 
will I play at a time? Even with two kb they are probably USB anymore and 
so show up as two separate MIDI devices (32 channels).

Maybe some of the things we want to do with MIDI should be done with 
something else. MMA is working a thing called HD (not MIDI they say) that 
has bigger everything. I am kind of shy of anything called HD any more as 
being hype. I think there are better ways of dealing with control surfaces 
than repurposing MIDI (or expanding MIDI).

In my mind, the Mackie control surface shows how really bad MIDI is for 
that use. Almost the whole thing is on channel one... execpt 9 faders take 
7 channels of "Pitch bend?" The whole thing is a kludge to make MIDI fit 
where it really doesn't. MCP is a one horse game, it was made for one 
DAW... it is just the fact that people can see what the data is that it 
sends for each move (there is documentation) that has allowed other DAWs 
to use it. If anyone was to build a control surface for a well known top 
selling DAW that used OSC, those OSC commands would have become "standard" 
in the same way. The difference being that any OSC set of commands I can 
think of would have been expandable.

All this to say (I think) that to make OSC something people use requires a 
great piece of hardware that works well with the most used DAW. Get that 
DAW to suggest this is "THE" control surface to use to get the most out of 
your SW.

I think OSC is missing parts though (just like AES67?). I should be able 
to add a control surface/keyboard to a network and the unit should show me 
every other unit (SW or HW) that it can talk to. From that list I should 
be able to connect my output to a number of inputs and connect my input to 
whatever output. Then if I play notes on a keyboard I should get the right 
sounds, or move a control the right thing should change. That is a lot of 
things to happen. My controller has to be able to set it's networking up 
and then discover what other OSC stuff is around. OSC right now seems to 
be totally manual. The user has to know the target IP and port (99% 
musicians just blanked out) and have the server running and enter those 
things just to have a connection. Even with a standard set of commands 
this is already a fail.

I think this is the reason MIDI is still going strong, plug a 
keyboard/controller into MIDI/USB, the SW shows the available MIDI ports, 
the user selects the one they want... done ready to role. Going beyond 
MIDI requires something at least as good.


--
Len Ovens
www.ovenwerks.net



More information about the Linux-audio-user mailing list