Coffeehouse Thread

20 posts

Has anyone tried sending MIDI messages over wireless in WP7.5 now that UDP is available?

Back to Forum: Coffeehouse
  • dentaku

    Now that Mango supports UDP I'm wondering if anyone is working on making a wireless MIDI controller app for WP7.5? There are MANY MIDI controller apps for IOS (which actually has MIDI built in now) so it would be nice to have something similar to TouchOSC or Charlie Roberts CONTROL working in WP7.5.

    Most of these apps use OSC which then needs to be converted back to regular MIDI messages and that's just annoying. It would be nice to have something that just sends RAW MIDI (CCs and NOTE ON / NOTE OFF) over a port that you can then receive using Ethermidi http://www.linuxsampler.org/ethernetmidi/ which fortunately doesn't rely on Bonjour, one of my least liked pieces of software ever.

    Ethermidi works very well from one computer to another with negligible latency so why not from a phone to a computer?

    I know Ian (Ch9 Ian) has worked on music sequencing apps but this is quite different because MIDI controllers don't make any sound. They just send controller data, MIDI has nothing to do with sound.

  • ScanIAm

    It's been over a decade since I played with midi, but as I recall, it was very susceptible to latency issues.  I can't imagine it would be very accurate over wifi.

  • dentaku

    I was messing with MIDI from a wireless laptop to my computer recently and it worked very well and I also used TouchOSC on an iPad this summer and the latency was quite useable.
    You just tell each device what port to use and what your IP is and it all works.

    Wireless MIDI is becoming more popular all the time especially now that it's officially supported in iOS.

    , ScanIAm wrote

    It's been over a decade since I played with midi, but as I recall, it was very susceptible to latency issues.  I can't imagine it would be very accurate over wifi.

  • ScanIAm

    I guess if the controller only sent out data when there was some kind of change, it might not be too bad.  Plus, the controller would be sending accurate data even if the events took too long to show up on the recorder/player, so playback would be fine.

    What we saw was that since midi was a serial process, once you get a couple of sequencers and synths going, you couldn't tell all of them to play a note at the same time and the time between when the first device and last device were asked to play a note would become obvious.  You'd actually hear it as some of the devices coming in late. 

    The result would get worse the more layers you added and if you had a controller that sent continual data to allow bending and pressure, it just started sounding aweful.

  • dentaku

    Interesting. Most people don't use it that way though.

    People just use them as controllers and while it's multi-touch you wouldn't be sending huge amounts of data. Professionals use MIDI over Ethernet all the time with no problems and using WiFi doesn't seem to cause much trouble either but for reliability pros prefer relying on wired connections.
    What people like about this kind of stuff is that you can build any interface you want and have the computer you're sending the MIDI to handle all the audio.

    It's allot of fun to mess with even though when I used TouchOSC I needed to run everything through a PureData script I built to convert the OSC coming from the iPad into old fashioned MIDI to control my audio software over a virtual MIDI port.

    If I had a Win8 tablet one of the first things I would do is run Usine on it. It's great for designing multi-touch interfaces for music making.

    , ScanIAm wrote

    I guess if the controller only sent out data when there was some kind of change, it might not be too bad.  Plus, the controller would be sending accurate data even if the events took too long to show up on the recorder/player, so playback would be fine.

    What we saw was that since midi was a serial process, once you get a couple of sequencers and synths going, you couldn't tell all of them to play a note at the same time and the time between when the first device and last device were asked to play a note would become obvious.  You'd actually hear it as some of the devices coming in late. 

    The result would get worse the more layers you added and if you had a controller that sent continual data to allow bending and pressure, it just started sounding aweful.

  • chicago_mike

    Sending MIDI over wifi is whats IN. I do this and would LOVE to be able to do this on a 7.5 phone.

    The iphone and ipad have several useful apps to do such things and if the windows phone can't do this..thats a lost market of thousands of users. Literally.

    People don't have 10 midi devices anymore, thats 1989. They'll have their daw controller and thats more or less it, everything else is sending MIDI thru usb devices.

  • ScanIAm

    , chicago_mike wrote

    People don't have 10 midi devices anymore, thats 1989. They'll have their daw controller and thats more or less it, everything else is sending MIDI thru usb devices.

    I didn't say _when_ I did this :0  It was in the 90s, and MIDI was actually a pretty useful way to network multiple devices and sequencers together, especially for live performances.  It used a serial bus, though, so the speeds and bandwidth were pretty anemic. 

    And why don't people have 10 midi devices any more?  Are kids today too lazy to lug 1/2 ton of equipment to a show?

    And get off my lawn...

     

  • dentaku

    @ScanIAm:Ooh serial, how hi tech Wink

    Yup, networked MIDI is quite a popular thing these days with the youg'uns. While it would be nice to have a WP7.5 version of TouchOSC, even something like CONTROL would be nice. It's free and also available for Android (and uses JSON for designing interfaces).

    Being able to build MIDI interfaces in Expression Blend without writing any code the way you can easily build things using the Farseer Physics Engine would be amazing but I'm not a programmer so it'll probably only be done on Windows devices once Win8 tablets show up with stuff like Usine Pro. Phones ARE rather small for creating MIDI interfaces.

     

  • chicago_mike

    Pro Remote

     

    iphone app sells for 100 bucks. Its a HUI emulator for the iphone /ipad. I wanted to make one of these for Mango OS.

     

    Oh, and I like your lawn..its nice and green!!

  • dentaku

    That app look OK but it's still not that interesting compared to TouchOSC ($4.99) , Control (free) or touchAble($24.99). I can't see why Pro Remote is $79.99.

    I hope someone reads this thread and gets inspired to make something (as long as it doesn't force people to use Bonjour).  We already have EthernetMIDI that receives MIDI over UDP and typing in your ip address and a port number isn't difficult so I don't know why people need to rely on using Bonjour. 

     

    , chicago_mike wrote

    Pro Remote

     

    iphone app sells for 100 bucks. Its a HUI emulator for the iphone /ipad. I wanted to make one of these for Mango OS.

     

    Oh, and I like your lawn..its nice and green!!

  • chicago_mike

    TouchOSC looks pretty cool. nice idea.

  • dentaku

    Peter Kuhn's PAARC demos look promising. They show that it IS possible to send controller data from a Mango device to a PC with very little latency, which is of course what you need when sending MIDI CC or NoteOn/Off data from a mobile device.

    If you can control a mouse pointer smoothly you can turn a knob or move a slider just as well.

    Peter Kuhn has done lots of investigating into UDP on WP7.5 http://www.pitorque.de/MisterGoodcat/post/Windows-Phone-7-UDP-performance.aspx

  • chicago_mike

    Hmm..very interesting!

     

  • dentaku

    I wonder if Pete Brown would be interested in this kind of project?

    I'm just posting this hoping he finds this and get inspired I guess Smiley

  • Psychlist19​72

    MIDI is (IIRC) only around 31Kbps serial, so latency shouldn't be a huge issue. Dropped or out-of-order messages on UDP is much more of a concern.

    Are you trying to control something on the PC specifically, or just MIDI in general? Just curious as I have a number of ethernet-capable .NET Micro Framework devices sitting around here, and have build MIDI implementations for a few of them.

    I haven't done anything with wireless MIDI. Looks interesting.

    Pete

  • chicago_mike

    what I want to do, for now is a simple daw remote controller. Let me get thatd own then I'll worry about controlling vst plugins or AAS ( new pro tools standard ).

    Cubase, nuendo, Pro Tools, all respond to HUI commands, and there are various numbers of those types of apps for the iphone / ipad market. They have a host app that sits in the pc/mac itself..that app talks to the iphone app...and the host app in the tower, "Fakes" a HUI ( Mackie MIDI remote controller ).

    So I would also have to build a driver more or less too.

  • dentaku

    , Psychlist1972 wrote

    MIDI is (IIRC) only around 31Kbps serial, so latency shouldn't be a huge issue. Dropped or out-of-order messages on UDP is much more of a concern.

    Are you trying to control something on the PC specifically, or just MIDI in general? Just curious as I have a number of ethernet-capable .NET Micro Framework devices sitting around here, and have build MIDI implementations for a few of them.

    I haven't done anything with wireless MIDI. Looks interesting.

    Pete

    Well, this is how I see it working in it's simplest form.
    Phone app - MIDI over wireless - Network MIDI software on PC - out to MidiYoke - in a Midi Yoke port in DAW of choice

    The way I've done it from an iPad is to use the amazing TouchOSC app that comes with a desktop app for building interfaces that you then send the the mobile device. The iPad/Phone then sends OSC data over a port to your computer. Because it's OSC and not MIDI it then needs to be converted to plain old MIDI using something like PureDATA (lots of fun to mess with actually) which then sends it out to a Midi Yoke port.
    It would be great to avoid using OSC because it just adds extra work and extra software that needs to always run in the background.

    It would be amazing to be able to build these interfaces in Expression Blend and simply assign MIDI Note On/Off or MIDI CC properties to buttons and sliders, press F5 and it's on you phone.

    I've been able to send MIDI CCs and Notes using EtherMIDI from one PC to another PC perfectly in the past. What would be difficult is to make an app the sends data that EtherMIDI understands. I don't know what that data would look like. I used Wireshark once to see what Toybear's NET2MIDI sends over the network so I'm assuming it would work just the same with EtherMIDI.

    rtpMIDI is also nice looking but I'm not sure how easy it is to use without forcing users to install Bonjour (which I've seen cause too many problems in the past).
    It's a driver designed to be compatible with the network-MIDI included in OSX.
    http://www.tobias-erichsen.de/rtpMIDI.html

  • dentaku

    Just to update. More iOS MIDI controller apps have been showing up. They can be used wired or wirelessly.

    One is the classic Lemur which has been turned into an iOS app recently.
    http://liine.net/en/products/lemur/
    The other is MIDI Designer. This one lets you build the interface directly on the tablet itself. 
    http://mididesigner.com/tutorials-and-demos/

    Phones are a bit small for this kind of thing so they're pretty much targeted at tablets but it's still fun to use even on smaller screens.

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.