thesis/dissertation - input requested!

  • morning all

    I just wondered if anyone would be willing to contribute some opinions to help me out with my dissertation/thesis.

    My question is "Is OSC the new MIDI" - and i am discussing whether OSC will replace MIDI, whether they are even comparable, and if not why not.

    Does anyone want to contribute opinions, or point me in the direction of anything you think i should be reading?

    I know this is a great community from all the time i have spent here, so come on, hit me up!!!

    and thanks in advance

    Luke

  • I'd love to send some input your way, but since any response will probably be ginormous to touch bases on the three areas, can I email it to you?

  • of course, and thanks for your interest

    warrlu at aol dot com

    look forward to hearing from you

  • was hoping for a little bit more of a response than this!

    hhmmmmmm

    will do this as a bump and see if anyone bites....

  • yeah man! i'm up for this! got some opinions and reading for ye!

  • hit me up scrubber!

  • yo! will do! not at home yet, and no credit on me phone or coulda done it from that now!

  • not sure i'm gonna be much help her, but one thing comes to mind ... i don't see how OSC will replace MIDI for the moment since i don't know of any device that is using OSC Note information, i'm not sure how long it will take until synth and control keyboard manufacturers will make this switch, or if they ever will

    osc implementation in DAW is sketchy at best for the moment, and the big audio/midi software houses have been draggin their feet on this to say the least, maybe it's just really a lot of work since a lot of features in most DAWs are still based around midi ...

    i was expecting NI for example to implement OSC throughout all their instruments since they support OSC in Reaktor for a long time now, but not a lot has happened here

    i always had a love/hate relationship with midi (more love than hate thou) and OSC solves most aggravating issues like the 16channel/127CC limitation and is much faster ... so my wish would be a complete move from MIDI to OSC, at lest for control information, but i don't see this happening anytime soon

    most musicians i know (even professional ones) have never heard of OSC

  • yeah, i agree with discopimp, i think OSC is fundamentally better technology but i think a lot of people are perfectly happy with midi and don't see a need to replace it. i'd wager 95+% of people that use midi to play instruments are perfectly content with it, it does what they want it to do, and see no reason to change it.

    so you've got all of these hardware, software, and components out there that work perfectly well with midi, and very very little that work with OSC (not to mention that each OSC-supported thing sort of implements its own language). where's the financial motivation for a big hardware manufacturer to even include a network port as an option? and imagine the support nightmares for these companies: "it says you support OSC! how come it won't work with XYZ newfangled application with custom OSC protocol out of the box?"

    until there's a well adopted standard in OSC that at least replaces all existing midi messages i don't think it'll see any sort of critical mass acceptance. and when midi is working perfectly well for a lot of people, where's the motivation to create this standard? as a software developer, why would i even bother with OSC if all i want to do is send over a few note on/offs and maybe some cc messages? midi works, there's libraries in just about every programming language to easily work with it, and prettymuch all music software supports it out of the box, prettymuch all hardware built since the 80s supports it. it's well tested and stable and for most use cases just works, despite being 30+ years old.

    i have a few patches that absolutely annihilate my machinedrum with midi messages and it keeps up just fine. this is the heaviest use case i have for midi, and i like to think of myself as a bit of a "power user", and i've had absolutely no issues with midi as a protocol for this. trying to figure out midi implementation charts and sysex message format is not very fun and would be much easier with OSC but it's not very difficult w/ midi anyway. but really, when was the last time you ran out of midi bandwidth?

    so my opinion is no, OSC will not replace midi anytime soon, and i don't know that midi will ever be fully 'replaced'. too many people love their midi-based devices just the way they are and will demand support for them in any future DAW purchase/etc.

  • I don't think OSC will replace MIDI, but I think it will augment it very well. Even though OSC can do what MIDI can, arguably better, it would take some genius plan to transition completely from MIDI to OSC. Much more practical would be using MIDI where it works best, and developing new technologies and devices that use OSC in ways MIDI would never work.

    I'd be very interested in reading the final paper.

  • OSC is infinitely better for user-scripted applications, and an argument can be made that scriptable interfaces are the future of music software. But the lowest-common-denominator consumer is never going to understand or care about that; if it doesn't come in the box, it doesn't exist.

    ...and what comes in the box for the lowest-common-denominator consumer is always going to support MIDI, because the whole industry is built on a foundation of backwards-compatibility. Nothing can ever replace MIDI without first offering full support for MIDI.

    Remember, MIDI provides a standardized abstraction layer. I can plug a MIDI enabled guitar into a MIDI enabled piano and play the piano with the guitar interface. That's without a computer, without having to know IP addresses of either device, without having to configure a firewall to let the devices communicate, without downloading custom drivers or writing a script to accept input from one device and translate it into output the other device will accept. Just run a cable between the MIDI Out port on one thing to the MIDI In port on the other, and both devices know how to communicate. MIDI is rigid, but that's kind of the point.

    So, is OSC the new MIDI? Of course not.

    Is "outputting OSC messages over MIDI through some kind of bridge" the new MIDI? That's not likely either.

    Is "joint support for both MIDI and OSC" the new MIDI? Well, maybe. But it's also the old MIDI, so that's not much of a statement.

  • I kind of know the answer is no, and I may have to change my statement, but the approach I'm taking is to look at the circumstances around the development if midi, why it came about, and then look for the similarities in the development of osc.

    Essentially midi created for control of multiple instruments using the physical interface of the time - a standard keyboard interface - osc created as the interface changed from a keyboard to anything you want (touchscreens/buttons/ball bearings etc).

    Midi is reasonably unique in the way it was developed and adopted universally (for both creative and financial reasons) and still stands the test of time 30 years later, and is maybe an example of early open source type thinking. I find that quite interesting.

    Sorry my response is short. In studio, but thanks for the input, I'm looking for as much opinion as possible!

    Will respond properly in the morning.

  • i think midi had its rise because it was (effectively) developed in a vacuum, without another entrenched format. Whereas osc, for all its technical benefits, arose in an environment saturated with a dominant protocol (midi), at a time when a lot of existing products were looking to entrench themselves with existing artists (traktor and live come to mind). The adoption of osc for those larger entities was limited by their desire to appeal to a wide audience, and so not a priority. Whereas the smaller more agile niche market has a multitude of products which support osc. Keen to see how this comes together...

  • @mcdeltat & @scrubberfox

    did you try emailing me?

    nothing received, just thought i would check

    thanks

    luke

  • i would agree with phortran that only some sort of osc standard will completely replace midi. however, just because most people aren't missing anything with midi, it doesn't mean that once they encounter the bliss of things like being able to change effects in arbitrarily small steps they won't appreciate and try to use it.
    actually, midi always reminds me of makefiles in programming. also developed in the late 70's, also completely redundant from a technological point of view, and yet still widely used because there is no new standard.

  • i haven't read what other people have responded here, but there's one big BIG reason why OSC won't replace MIDI any time soon, and that's that DAWs don't include OSC sequencers in the way that they include MIDI sequencers.

    when that changes, then it might become a realistic possibility, but until people can manipulate chunks of OSC messages in the way they can manipulate chunks of MIDI messages, MIDI isn't going anywhere.

  • MIDI provides an easy, stable and reliable way to let things that are not your computer talk to each other. USB has yet to replace that need, regardless what protocol we're discussing, because USB still requires your computer to act as a bridge between devices. Wireless protocols face similar problems and/or introduce new ones.

    MIDI is severely outdated, but it's neither obsolete nor redundant from a technological point of view. It's just a necessary evil.

    Meanwhile, a set-in-stone "OSC standard" would defeat OSC completely. It wouldn't make OSC the new MIDI; it would make MIDI the new OSC.


    That said, I kind of suspect this "HD MIDI over UDP" that's been under discussion for six years now might seem very familiar to us once it's released...
    http://www.midi.org/aboutus/news/hd.php

    (Personally, I think HD MIDI should just piggyback onto the HDMI standard, because I like the name HDMI-DI. I can't really justify that with technical reasons.)

  • for clarity, the "OSC MIDI Standard" i was referring to wasn't meant to be "OSC is this and nothing more", it was the idea that everyone would agree on a way to implement MIDI messages in OSC and use that standard to replace MIDI. you have to agree on a standard for that set of functionality if it's ever going to take hold. it doesn't mean that /40h/press would no longer be a valid OSC message. apologies if this was already clear.

    i still don't think it'll ever happen.

    edit: emulating MIDI is probably not the way to go either if this were ever to seriously happen. who wants 128 value resolution when there's no longer a technical restriction on, for example, 0.0 to 1.0.

  • I think if we agreed that it is 0.0 to 1.0 (or at least, picked one consistent set of bounds), the bridge is fairly straightforward.

    ie, if you received /midi/note n v c
    (where n = note value, v = velocity, c = channel)

    there's some very simple logic to play with. ie, looking at velocity here, "if the value received is a float has a decimal place, use it as-is. otherwise, scale the value from 0-127 to 0.0-1.0 before passing it along"

    That gives you infinite resolution within your app, and for incoming values from devices that support infinite resolution. But it also gives you support for legacy devices, without requiring either device to identify themselves or their capabilities. Right? Backwards compatibility's pretty doable, on a protocol level.

    The bigger challenge is dealing with hardware, where things are plugged into each other and your computer isn't even turned on. Nothing yet competes with MIDI's ability to "just work"...

  • totally slipped my mind! sorry bro!
    will route through my HD and dig out that reading for yo now! ;)

  • Honestly,
    Id love to see an advancement of the MIDI protocol, but not a replacement by OSC.

    MIDI seems to be understandable to people who arent familiar with computer music, err, electronic music.
    When I try to explain how OSC works, the prefixes, the port data. I look like I have 8 heads.

    My dream is that both will metamorph into a hybrid of the two.
    OSC is obviously capable of so much more, but it seems only useful for Non-keyboard instruments. (I could be totally wrong here as I havent fully grasped the potential of OSC yet)

    But, MIDI seems to be universal for using notation. Something that I cant see OSC doing is replacing the standard 127 midi notes. Midi understands A, B, C, D etc.
    How could OSC implement a Notation system?

  • "How could OSC implement a Notation system?"

    /note

    if everything agreed on that standard it would work. one of the real issues though is how do you agree upon ports and ip addresses? do you use dhcp to assign ips? does each device need a dhcp server built in for the scenario of keyboard plugged directly into synth? which dhcp server is the master? lots of tricky problems.

  • @s_strangers,

    What you think of as MIDI largely isn't.

    What people are using in their software is... their software. Software translates incoming MIDI data into whatever that software is actually dealing with. Software, on request, exports your song from its proprietary data format to a MIDI supported file format so it can be imported by different software, which will convert that data into its own proprietary format.

    Well written software means you don't have to understand MIDI. Well written software could mean the same for OSC someday.


    The rest of this is largely repeating myself.


    MIDI doesn't understand A, B, C, D etc -- it accepts note numbers 0-127, which is what the software you're using provides to it after you select from a friendlier interface. OSC can transmit note names just as easily as note numbers. Or it can send raw frequencies if you'd prefer -- why limit yourself to a 12 note scale? Whatever convention you'd like to use can be used. The only trick is that the application on the other side will have to understand what you're sending.


    Simple example to illustrate the difference:

    If I were sending sustain pedal information in OSC, I might say "/sus/ or "/sustain/" or "/damper/" or "/pedal/"... It's my choice what to call it, and I'll pick something meaningful to me.

    If I were sending sustain pedal information in MIDI, I say "CC#64". If I can't remember that the sustain pedal is controller 64, I pull up a chart and I find it.

    Why is this better?
    - I don't have to look up controller numbers on a chart.

    Why is this worse?
    - There's no chart.

    You and I might not express the same ideas in the same way, and our apps might have trouble communicating as a result. We solve this by agreeing to protocols, which are inherently rigid but hopefully well thought out.

    (Monome protocols tend to use the smallest, simplest, most universal messages imaginable, for speed and efficiency. The raw messages may not be readable at a glance, but they don't have to be because end users won't ever look at them.)



    re: port numbers,

    That's not OSC specifically, that's transmitting anything over UDP. But it's a fair point.

    MIDI is a serial connection, and it's not even bidirectional. You need a wire to send info into a device, and another wire to send info back from it. MIDI is great for having one controller drive one sound generator, but the more sophisticated you get from there, the more potential nightmares are created. (I used to have pads of graph paper full of wiring diagrams for all of my hardware in different setups. I found that if I worked things out on paper first, I could save a lot of time configuring things.)

    OSC takes a different approach. Plug all your devices into a network, and they can all potentially send and receive messages amongst themselves. They just need a little help finding each other, which right now isn't a friendly process. But it's getting better.

    Essentially it's the same problem, though: you have to understand your network. If you don't know how to connect things, you're dead in the water. Software has largely evolved beyond that (virtual instruments in your DAW don't require wiring), but hardware hasn't.

    Again, there's no reason to believe software can't do the same for OSC. Or that hardware couldn't evolve in the same direction, given time and motivation...

  • I think if HD-MIDI / MIDI 2.0, if it ever manifests, will be a three-pronged beast:


    1) an OSC based protocol for sending the same kind of messages that MIDI sends, albeit at floating point resolution and with better naming conventions.

    That much is easy.


    2) a universal file format for exporting and recalling sequences, along with AV samples and device presets, that can be imported again by a different piece of software.

    That's... harder.


    3) a server component, like SerialOSC, that can either run on your computer, in an embedded device that sits on your network, or sit inside your wireless router.

    3A) a protocol for devices that haven't been invented yet to register themselves with the network, and perhaps a central registry (like we have for domain names) that keeps developers from using the same IDs.


    Along with that, software developers will have to rethink how they display and manipulate information, but that's for them to decide; it ain't part of the spec.

    (I don't think we'll see an update to the "GM Standard", or an updated plugin for your web browser.)


    At that point, the line between MIDI and OSC blurs. What we think of as OSC now becomes "OSC messages that aren't part of the MIDI standard," but they're still sequenced through the same tools and saved in the same files.

    ...and perhaps clever developers will build modular tools for displaying and manipulating those non-standard messages. (it'd be a step beyond MIDI mapping...)