MIDI address space

I guess we are all trying to get rid of MIDI, but as long as we have tons of gear around, it would be good to have a generic way of describing MIDI information in OSC. Perhaps I am missing something obvious, but I have looked around and haven't found any suggestions for a full implementation of MIDI messages as an OSC address space. Is there any?

I guess it would be smart to start with /midi so that it is clear what we are dealing with:
/midi/note {pitch, velocity, channel}

/midi/note/pitch {values}
/midi/note/velocity {values}
/midi/note/channel {values}

Even though this would make it much easier to read an incoming stream, it would also require a lot more information to be transported, which is not ideal. Another problem is that of keeping messages together, to ensure that noteons and noteoffs don't disappear.

What about putting the channel information first, so that it would be easier to route per channel, perhaps:
/midi/channel/note {velocity, pitch}

The same questions go for all other types of MIDI information: ctrl, poly, bend, pgm, touch, rt, sysex. Or should we use full names rather than abbrevations: control, polyfony, bend, program, touch, realtime, sysex?

Any suggestions or comments are welcome.

more simple !!!


Why not use the real MIDI format ?

For ex (hex):
/midi B8 05 40

or (dec):
/midi 184 05 64

> ctl ch8 N°5 val64

Why not to use the real MIDI format

OpenSoundControl's "m" argument type tag is for a 4-byte MIDI message, though I don't believe this is widely implemented.

What fxw seems to be suggesting is that the arguments to the /midi message be regular (i.e., 32-bit) OSC integers such as 184, 05, and 64.

I know there are lots of people who have memorized the MIDI byte format, but in general, I think it's a lot more user-friendly to use nice self-documenting symbolic OSC-style addresses like /noteOn, /control, etc.

Occam already uses an encoding of MIDI over OSC:

SuperCollider (the language, not the server) used to have a similar mechanism (whereby you could send MIDI-over-OSC to an instance of SuperCollider and it would be as if SuperCollider had received the given MIDI messages), but I can't find the documentation on that any more.