Page 4 of 10 FirstFirst 12345678 ... LastLast
Results 31 to 40 of 95

Thread: The Perfect MIDI Controller ? Help us design it !

  1. #31
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    Quote Originally Posted by The_Doctor View Post
    MIDI all the way. USB just uses MIDI protocol for this task anyway. But it's like Bluetooth using serial. Sometimes MIDI in its old form is best, because of the optoisolated inputs. Also, three out of 5 lines are used, so the remaining two are available for secure emergency stop signals or whatever. Can't have any of those advantages on USB. DIN plugs can be a lot more durable than USB connectors too, unless you want to pay HIGH prices to Amphenol.
    But since you would just connect it to a USB interface (which laptop has a MIDI sound card anymore?) why the extra step?
    My MIDI controller has both, A USB port for computer connection, and the usual in/out/thru ports. It can even double as a midi interface, and does a much better job too than the "real" interface I have (as in, it doesn't crash the whole computer anymore when it's suddenly unplugged).

    Anyway MIDI is outdated. OSC all the way! :P (In addition to MIDI of course, and USB)
    Last edited by colouredmirrorball; 01-08-2014 at 16:26.

  2. #32
    Join Date
    Mar 2006
    Posts
    2,478

    Default

    MIDI is so outdated it's never been more alive. While Microsoft has 'deprecated' it, the musicians and audio engineers who rely on it never do that, because the optoisolation is crucial to safety as well as performance. Did you see all those nice gadgets people linked to, the Doepfer stuff I linked to, and the awesomeness that Dave linked to? While they may have USB, I bet most of them don't. This isn't a disadvantage. MIDI is a much wider thing than the limited USB-version, just as serial is not limited to a core protocol inside Bluetooth. And did you see what I said about having two spare lines in one cable for secure emergency stop signals? Show me the USB that has all this. MIDI is for professional signalling in live arenas. USB has never, and will never, come anywhere close to that. Even if you do use USB you can't escape the MIDI protocol. It's not dead, and shows no sign of dying.

    What is OSC? (Apart from being hard to Google..) That could be worth a look, but given that MIDI hardware is small, fast, safe, reliable, very cheap, it's extremely hard to beat. As eyes can't respond as fast as ears to small signal transitions, MIDI is always going to be fast enough for video and laser control because it was designed for sound.

    EDIT:
    What Wookieboy said about a small PC (like Mini ITX) would be useful. A PCI adapter allows several cheap ways to get MIDI. A Layla24 makes a great DC coupled DAC with a simple capacitor bypass mod, and provides one of the best MIDI computer interfaces ever made. A small rack box with an ELO touchscreen might be cooler and more reliable than any laptop machine. Use one built for a mixer, you can mount the control deck in it, and the computer underneath.
    Last edited by The_Doctor; 01-08-2014 at 17:26.

  3. #33
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    What you say about MIDI is mostly true. But it has limitations. You can use only sixteen channels simultaneously, and poorly at that. You can't send MIDI signals from one program to another on the same computer without the usage of a virtual MIDI port. You can't send text. You can only send an integer number between 0 and 255.

    OSC is, as google tells you in its first result, Open Sound Control, and has been described as "MIDI on speed". It offers much of the same functionability, while not being limited by the drawbacks of MIDI. It's a network protocol, meaning signals are sent as packages to a virtual port. This can be on the same computer, solving the problem of the virtual midi port, or on any ethernet enabled system on the network. This means it uses a standard ethernet cable which is easy to find in an emergency situation (try to do that with a MIDI cable these days!). It can even work over wifi.
    Actual data is sent through a command, which can be anything, and depends on the implementation in the programs. For example, in LSX, a command would look like this: /LSX_0/pause, which would pause the show. You need to define this in the program that sends the OSC signal. A signal can also have a value, such as a string or a float. Again in LSX, you can use it to set the text that runs in the RunText (which enabled swamidog to create a little sms2laser thingy). It can even have multiple values in one message.
    There are no channel limits. No data limits. No speed limits.
    The only drawback is that it's a relatively new system. Not many programs use it, and certainly not much hardware. So far I haven't heard of a MIDI controller with OSC support... But that shouldn't mean it shouldn't be added!
    The popularity of OSC is rising. Not only LSX but also Pangolin software uses it (unless I'm wrong), and the Etherdream DAC uses OSC for its onboard settings such as geometric correction and even sending out DMX data if a DMX board is attached. It's a really flexible system and I'd use it over MIDI any day.
    As long as hardware and software continue to support MIDI, it will continue to exist. I don't think that's a bad thing, but maybe it's time for something new?

  4. #34
    Join Date
    Mar 2006
    Posts
    2,478

    Default

    Well, you don't need Unicode. Lower ASCII ought to do, in which case you could send a control change message for each character you want sending. Better yet, you could pack it into a SysEx message that can be binary and include anything, including Unicode text.

    The real bottleneck of MIDI is the speed, not the channel count. Its protocol is so versatile that you can send anything, most stuff in several ways, so long as 31.25 Kbaud is fast enough. There are 128 'control change' messages, on each of those 16 channels, never mind note and patch change data. This is not a limited protocol, as far as any device controllable by one person's hands, feet or breath is concerned. (Technically it is, but only if you want polyphonic aftertouch on a keyboard, which was the real drive to look for a faster system. No laser console is likely to have that much need of bandwidth.)

    If OSC can go on ethernet and has TCP packet verification then it is almost certainly the next step. But for this task of sending analog control data from a person who would be hard put to it to handle more than TWO controls at once, there is no strong case to argue that MIDI is not fast enough. The moment you use too much, it probably costs too much.

    EDIT:
    Note that two MIDI data bytes can carry 14 bits. Laser scan vectors and colour values rarely use more than 12 bits. MIDI at 31.25 Kbaud is more than adequate for input data from a console.

    More edit:
    There are at least two freeware virtual MIDI ports. Hubi's Loopback, and James O'Conell's MIDIyoke. I think both have late-version Windows compatibility, MIDIyoke certainly does.

    Re 'something new', sure. So long as it doesn't replace something good and old. I type on a keyboard but I don't throw pens away.
    Last edited by The_Doctor; 01-08-2014 at 17:59.

  5. #35
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    Which is why I think MIDI will be around for a while

    Still... I don't think this would have been possible with MIDI: http://www.youtube.com/watch?v=WUVDuPNvkbM
    If I had used MIDI to send these signals, the drawing would have been imprecise as there are only 255 possible positions in x and y.
    This is a simple example. The Leap Motion can send data about each finger -3 coordinates per finger- as well as the position and orientation of your hand, up to four hands. That's a lot of data. There's no way MIDI can handle this, but OSC wouldn't have any trouble.

    We're at risk of diverting this fine thread, so bottom note: better include OSC as well, if possible.

  6. #36
    Join Date
    Mar 2006
    Posts
    2,478

    Default

    SysEx is binary. Think about it... You can send packets, with MIDI. You can pack any bit pattern you want in there. Speed really IS the only bottleneck, because once you route the MIDI messages to software you can parse them however you want. Short SysEx is the way to go because its easy to make sure that your messages don't bust somethign not meant to receive them. You also cut down (dramatically) the number of framing bytes needed to send stuff.

    if you're sending 4 continuously changing proportinal messages you may be pushing MIDI to its limits, but that much info isn't needed. Scanners will break before they respond to that much change unless it's so small it makes little difference to what they're scanning, and as eyes can't detect the fast changes that ears can, this data flow isn't needed for colour or blanking either. In other words, if you want lots of simultaneous controls, and have virtuosic fingers, thin the data.

    OSC may be great, but unless you truly exhaust the possibilites of MIDI, and don't demand it to pass more data per unit time than you really need for one-person laser control, you won't need more. There has always been a tendency to underuse a thing, then assume a need for a bigger thing. I can code a MIDI controller interploator that makes analog smooth response at high speed or low speed, no 'zipper noise', despite the raw 128-value messages' incapability of doing this! The real question with any controller is how well you use a limited bandwidth to convey what you need. The real limitation is not MIDI, but how it is used, unless you want to start usign vastly more bandwidth than can be coded on a few realtime analog controls at once.

    EDIT:
    Most high quality MIDI control interfaces already thin the data because they sample the controls at rapid regular intervals, instead of quing up every detected positional datum and trying to cram it down the wire. if you have had bother with data-jamming in the MIDI line the odds are you have a controller that is sending too much data, instead of polling the controls at intervals as it should.

    And more edit..
    If you can get by with standard 7-bit data, do it, because that way you get the 'running status' advantage of MIDI to reduce bandwith. Basically, do this for stuff that is very standard, like reading controls. Use short SysEx for console-specific text data for display, if any.
    Last edited by The_Doctor; 01-08-2014 at 18:20.

  7. #37
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    Interesting, I never really thought about converting MIDI to binary data. That's something to keep in mind.
    Well since we're only going to deal with sliders, knobs and buttons, MIDI should definately suffice for this project. I don't think this controller will have gesture recognition possibilities

  8. #38
    Join Date
    Mar 2006
    Posts
    2,478

    Default

    Quote Originally Posted by colouredmirrorball View Post
    Interesting, I never really thought about converting MIDI to binary data. That's something to keep in mind.
    Well since we're only going to deal with sliders, knobs and buttons, MIDI should definately suffice for this project. I don't think this controller will have gesture recognition possibilities
    Conversely, I will look at OSC now that you have focussed my attention about it. It's an important part of my education about controlling sound, whatever I may know about MIDI. I suspect they may well work in parallel in many systems, to great advantage. (Note: SysEs isn't exactly a conversion, it's a specialised binary subset of MIDI, defined by terminating status bytes whose upper 4 bits are always 1111, so 11110000 to start SysEx, 11110111 to end. It can get very system specific, being intended for such..)

  9. #39
    Join Date
    Jun 2010
    Location
    Australia
    Posts
    3,734

    Default

    Quote Originally Posted by The_Doctor View Post
    MIDI all the way. USB just uses MIDI protocol for this task anyway. But it's like Bluetooth using serial. Sometimes MIDI in its old form is best, because of the optoisolated inputs. Also, three out of 5 lines are used, so the remaining two are available for secure emergency stop signals or whatever. Can't have any of those advantages on USB. DIN plugs can be a lot more durable than USB connectors too, unless you want to pay HIGH prices to Amphenol.
    Yep, two parts to the MIDI standard, the hardware interface and the protocol.

    SysEx is an add on that really caused a lot of compatibility between some equipment.... An after thought it certainly was...
    This space for rent.

  10. #40
    Join Date
    May 2013
    Location
    Rijen, NL
    Posts
    115

    Default

    Hey Guys,

    This is getting a nice and informative thread. I am already trying to recap you remarks, suggestions and such into a small list of Must-haves.

    I am happy you all jump in with your suggestions, will try to post a shortlist of the most requested items in the unit so you can all see how the results are.

    Keep the good stuff coming !

    Oh and yes, touch screens are OUT definitively .

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •