My post over at the Open Sound Control forum:

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}

or:
/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.