Post by Camille TroillardI believe this claim is valid only if you choose to ignore the vast
Post by Camille Troillardimpedance mismatch existing between OSC and MIDI.
What does that mean? You will really need to define what you mean by
"impedance" because I don't understand what you mean.
It is a technical metaphor meaning two domains (here MIDI and OSC) have a
wrong fit. They appear to be compatible, when in fact they are not. See
http://english.stackexchange.com/questions/187873/appropriate-contexts-for-the-phrase-impedance-mismatch if
you want more details.
I read the exchange and I disagree. Impedance is a word being used to say
mismatch and that is not what it means. It like saying light and sound
don't match because they have an impedance mismatch. I think it is a poor
term to use.
OSC is a message format, and has none of the semantics that MIDI defines.
Post by Camille TroillardBasically, in both protocols, you are sending an instruction to another
machine. In OSC, you can give an instruction to turn a sound on or off, or
change a controller, or whatever. It is basically the same principle.
No, OSC does not define anything more than a message format.
At the lower ISO layers - yes, but at the application layer it does
Post by Camille TroillardMIDI on the other hand has definitions for a Note On message, Note Off
message, and plenty of other concept (Control Change, Program Change, etc.).
That is only in General MIDI. You can do what you wast in MIDI - you just
put it in your MIDI implementation chart.
Post by Camille TroillardThe MIDI specification defines the protocol down to the wire. OSC has no
such recommandation, it is agnostic of any transport layer.
That was one of the major points in the NIME paper. That it why the
statement "OSC is faster than MIDI" is false. Speed is outside the domain
of OSC in the same way weight does not exist outside of gravity. However,
saying that OSC is agnostic of any of the lower ISO layers is not really
any sort of "out" because the message has to get from point A to B through
them. You can pretend they don't exist, but in reality, when you go to
implementation, they do exists and you need to account for them.
Post by Camille TroillardPost by Camille TroillardTherefore you are pushing the problem of handling the MIDI logic to the
pure OSC apps, i.e. no problem is solved.
I proposing that OSC can be used to control MIDI software or devices,
without requiring the MIDI devices to do anything. People can now use their
MIDI gear and control it via OSC and they do not need to modify their
software or hardware. That is a big problem solved.
Angelo, think about it: your OSC programs will have to âspeakâ MIDI
flluently for this to work.
You need to define a common ground for most common functions in OSC. You
canât just pipe MIDI through OSC and pretend it is OSC, when in fact it is
still 100% MIDI inside :)
I can see the point you are making. I don't believe that you can have a
standard MIDI mapping in OSC, but the reason is namespace pollution, and
the coupling required between the two.
Namespace, in that once you use "/midi", what do you do when you want
another device. One of the best things about OSC is that you can easily
expand by increasing the namespace. Bind it to something like "/midi" and
you immediately put an undesirable limit on it. Then there is all the
wastage of making what was one byte equal four by converting it to OSC.
However, looking at http://opensoundcontrol.org/spec-1_0, it appears to me
that there is already a data type for MIDI using type tag m
m 4 byte MIDI message. Bytes from MSB to LSB are: port id, status byte,
data1, data2
Why not just use that and use whatever OSC address you want? You just need
to get the device that is converting your OSC back to MIDI to respond to
that address.
This then bring the problem of coupling, in that the OSC app needs to know
how to turn its application layer function into a MIDI message - so you
have made the coupling between the two devices too high. That is why OSC
addressing scheme is so good in that you reduce that coupling. The problem,
however, is that it is very inefficient, as outlined in the NIME paper.
So basically, you need something like Max or PD to read the OSC message,
decode what you are expecting, and send it as MIDI to your MIDI device.