none
MIDI devices

    Question

  • What API calls should developers use to communicate with MIDI devices from a Metro style application?
    Wednesday, September 14, 2011 12:52 PM

Answers

All replies

  • There are no modern APIs to interface with MIDI devices.
    Jeff Lambert, Microsoft This posting is provided "AS IS" with no warranties, and confers no rights.
    Wednesday, September 14, 2011 3:46 PM
  • So what about all the PC MIDI hardware out there (USB or PCi based), and all the hardware that's made around it (synthesizers, dum machnies, work stations, performance tools etc). Does this mean there never will be ANY MIDI API update ?
    Thursday, September 15, 2011 4:35 PM
  • While I'm sure you understand the repercussions of this, I will point it out to others viewing this who may not.

    No Midi Support in Metro == No Midi support on any Windows 8 ARM devices

     

    MIDI will still work in Windows 8 Desktop (x86/x64) in non-metro apps using the following to legacy Win32 APIs:

    MME API (Written for Windows 3.0 in 1991)

    DirectMusic API (Written for Win 95 in 1996)

     

    I hope that you haven't frozen the API for Windows 8 and there is still a chance for MIDI Support. A new MIDI API would be great. Why you didn't write one when you created WASAPI in Vista is beyond me. I can acknowledge that this is probably a lot of work and it is late in the Windows 8 development cycle, however, this is not your only choice. You are already making some Win32/COM APIs available in Metro. Why not add the MME MIDI APIs to this list?

     

    One only has to look at the iPhone/iPad to look at all the wonderful MIDI music apps possible. Windows 8 ARM device users should be able to enjoy the same type of apps.

     

    I encourage anyone interested in Audio or MIDI to post a reply to this thread and show Microsoft that you want MIDI Device Support in Metro.


    • Edited by anon30524 Thursday, September 15, 2011 4:44 PM
    Thursday, September 15, 2011 4:42 PM
  • I was under the impression that you could write a metro app in c++ and still use all of the win32 apis (except for the few that will be deprecated) that are available for desktop applications.

     

    Could you please clarify?

    Thursday, September 15, 2011 5:41 PM
  • You can write a metro app in C++ and use some of the win32 APIs. You will not be able to use the vast majority of Win32 APIs, like the MIDI API.

     

    You can view which Win32 APIs you are allowed to use in Metro apps here:

    http://msdn.microsoft.com/en-us/library/windows/apps/br205757


    • Edited by anon30524 Thursday, September 15, 2011 6:25 PM
    Thursday, September 15, 2011 6:24 PM
  • Thank you very much.
    Thursday, September 15, 2011 6:51 PM
  • No Problem.

     

    While we are talking about Pro Audio, maybe Frank Yerrace or someone else from the Windows Sound team can let us know if USB 2.0 Audio support made it into Windows 8.

    Thursday, September 15, 2011 7:17 PM
  • All that's needed for basic MIDI input is: midiInGetNumDevs, midiInGetDevCaps, midiInOpen, midiInStart, midiInStop, midiInReset, midiInClose. The API is so simple that it takes a couple of hours max to write a WinRT wrapper for it.

    Not supporting MIDI input would mean no software synths etc. for metro. I don't understand why Microsoft would want that.

     

    Friday, September 16, 2011 1:29 AM
  • They should also add MIDI output while they are at it. They don't even need to write the WinRT wrappers, so long as the API is "approved" anyone can write their own WinRT wrappers. We just need to get the midixxx APIs onto the approved list.

     

    From the discussions at build, the Win32 subset hasn't been finalized so there is still hope. It would definitely helpful if others would reply to this message to show that this functionality is desired by a lot of people. I don't think Microsoft is going to care if all of 3 people want to see this in there.

    Friday, September 16, 2011 4:58 PM
  • Tablets were made for MIDI control, especially the ten multi-touch type. Even only generic usb device support would be fine. We need MIDI.

     

    Saturday, September 17, 2011 1:17 AM
  • Wow, MIDI is the most important thing to me in a touchscreen device. They're perfectly suited for making custom multitouch control surfaces. Music making in general is one of the most popular things on iOS and considering Win8 is a full desktop OS in the first place it should be even better than iOS for this kind of stuff EVEN when using Metro apps.

    Saturday, September 17, 2011 1:21 AM
  • I agree about the midi support in metro....this is very important to me and could be the differentiator for musicians who want more than an eReader device. 
    Saturday, October 01, 2011 3:48 AM
  • Well I guess I need to put in my two cents. I would love to control my gear via a Windows 8 tablet. One of the things that I have experimented with in the past is MIDI over UDP. In this scenario one PC talks to another PC via UDP. The MIDI over UDP server converts the UDP packets to MIDI and outputs them via a MIDI device attached to the PC. This scenario has allowed me to sync multiple DAW PCs to a common MTC source. I would imagine that a similar solution could be employed from a metro style application. The tablet talks UDP/TCP/HTTP with a controller PC with MIDI I/O device connected issuing commands to the attached devices. With wireless networking you now have a completely wireless remote control. I think that would be a really cool solution. If anyone gets this up and running let me know J

     

    James

    Global Technical Escalations Lead

    Windows Media SDK Technologies

    Microsoft Developer Services

    http://blogs.msdn.com/mediasdkstuff/

    Wednesday, November 02, 2011 12:56 AM
  • One thing I looked into was using a TCP/UDP socket and looping back on the same machine allowing metro to bridge into some of the desktop world via this socket, however, this thing is also blocked. A developer can override this on an unlocked machine, but it takes some registry magic and is not a real solution for a customer.  I was disappointed that my efforts were once again thwarted.

    Certainly, we could do as James Da suggests and use a secondary machine, but it sort of blows the purpose of having a really cool, capable tablet device sitting on my keyboard with all my music loaded on it and having it punch up the program settings on the fly via midi....bummer.  When doing gigs, you would hate to have to haul another PC, and setup a wireless network.  I have enough gear to carry as it is.

    I hope midi gets included soon.

    Saturday, November 26, 2011 9:25 PM
  • Doing stuff like playing music on a computer seems to get people to become emotionally attached to their PC. WHY ?????? would Microsoft not want people to bond with their gear (don't they want fantatically loyal users like Apple). A few positive users especially in the media world can go  along way to getting Microsoft better percieved. Also if a muscan is using MS product what great free advertising. Why give this away for no reaqson to your opposition ??????? No wonder Apple with a few technically boring devices are able to threaten Microsofts PC business. Maybe the answer is Apple thinks about how the product will be used, and the ergonomics on their products is good. PLEASE PLEASE sort out the music thing. If we need to look to the future and have to connect to music instruments using wireless eg 802.?? that may be a step forward.

    Music tutors from companies like Emedia are now possibly better than going to a real music teacher. As a lot of kids should learn music this is almost a killer app on its own. Why exclude yourself from this market and miss making these kids pro Microsoft.

    Thursday, February 16, 2012 4:33 AM
  • So the Consumer Preview has come and there is still no MIDI Device functionality to be found in Metro.

    Rumor has it that Windows 8 is in Feature Freeze/API Freeze, which doesn't bode well, but I will still hold out hope that someone will do us a solid and bring Metro MIDI device support in the RC build.

    James, is there an Escalation Engineer on the Windows Sound Team that can chime in?

    If not, could you ping the PM of the Windows Sound Team (John B.?) and see if such an API is even being considered or developed?

    Saturday, March 17, 2012 3:02 PM
  • Hello Anon,

    I am the Escalation Engineer for the Windows Audio team :)

    I would love to have MIDI available for Windows 8 Metro style apps since I am an electronic musician as well as an engineer (http://www.jamesdailey.com/Music.aspx). I just want to be completely honest and say that MIDI really isn't on the radar at this time. The reality is that we are focusing on high quality low latency audio in Windows 8 to support the trend toward VOIP. 

    The recording industry is quickly moving away from HW synths to SW based synthesis. Personally I have all of my MIDI gear plugged in and ready to go but I don't know that I've turned it on for over a year. My go to keyboard, an Axiom 49, plugs in via USB. I have a handful of "legacy" MIDI HW synths but hundreds of soft synths (its an addiction). My guitar amp is even gathering dust thanks to NI plug-ins.

    So at this time we really don't see a super compelling need to support legacy MIDI devices in Metro style apps. My guess is that MIDI will stay on the desktop until its completely eclipsed by soft synths and USB based devices. What I really want to see is a MFT wrapper around the VSTi SDK so I can load my soft synths in Metro. Unfortunately this isn't likely to happen either due to our new Metro style app distribution model. VSTi ISVs would likely need to provide "WinRT friendly" versions of the instruments to be packaged with your application. Unfortunately I just don't see this as a reasonable model.

    I really wish we had a better story for professional musicians wanting to write or use Metro style apps. I am currently pursuing the shared VSTi scenario with our PMs but in reality we aren't going to see anything like this for RTM. If anything changes I will certainly let you know.

    I hope this helps,

    James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Tuesday, March 20, 2012 10:33 PM
  • It's not that we need to interface to old-school hardware synths, it's that we have hardware keyboard controllers hooked up to our soft-synths. I have my piano-like keyboard controller on my desk. How do I interface that to my Metro software synth?

    I am a VSTi developer, I am super keen to get VSTi-style instruments and effects onto Metro, but I can't play 'Bad Romance' on a PC keyboard!

    Monday, March 26, 2012 10:46 PM
  • Hey Jeff,

    If the device has a USB option the device manufacturer could in theory create a Metro API extension to allow for this functionality. To that end you could theoretically create a USB to MIDI device extension for Metro. This would require the manufacturer to crate something specific for Metro. I'm honestly not a device expert so I'm not entirely sure how this would work but I'm told that it should be possible.

    I hope this helps,

    James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Tuesday, March 27, 2012 12:44 AM
  • I hope this will be addressed at some point. The iPad is amazing as musical instrument and controller but I *really* want to buy a Windows 8 tablet instead. These devices really allow people to express their creativity in new ways but Windows 8 Metro will be lacking for musicians.

    Saturday, May 19, 2012 10:28 AM
  • Really, James? I got rid of my hardware synths a decade ago but I still need MIDI every time I get up on stage. My bandmate needs it so he can trigger drum sounds from my laptop and I need it so that I can play synths and switch/mute vocal effects with my controller. Right now I cannot even get MIDI up on the desktop - the controller list in my sequencer remains empty, no matter which or how many controllers I attach. So with this news, it is back to Win7 for me, with no prospect of ever being able to use Win8.
    Tuesday, May 22, 2012 7:52 AM
  • Hello NovaKill,

    What MIDI device are you using? Almost every USB device that works on the Windows 7 desktop should also work on the Windows 8 desktop. If there are MIDI devices that don't work on the desktop on Windows 8 please let me know so we can verify this and work with the manufactures to update their device drivers. Again no update should be needed for Windows 7 to Windows 8 desktop devices (as long as the device driver is signed).

    Thanks,

    James 


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/


    Tuesday, June 05, 2012 9:09 PM
  • Can you nudge RME to get working (firewire) drivers out for their gear? It does not work on Windows 8. 

    I've tried, got the run around, then, well "we'll get to it eventually maybe".

    The apps work just fine on the legacy desktop. The only music software anyone would run on a tablet would be something like GarageBand, and using midi with it is not really practical either, so I agree, not a priority. Things like rptMidi should eventually work just fine for remote control applications.

    Sunday, July 29, 2012 6:46 AM
  • Adding my voice to this thread. I was thinking about creating a Windows 8 app that could receive input from a MIDI controller but it seems like that won't be possible. It's really a shame. I do not think MIDI has become irrelevant at all. All digital pianos are equipped with midi or midi-though-usb ports and the midi api is the only way we can communicate with those devices. I use this regularly. Vendor-provided metro-specific APIs are a very bad idea because we'd have to support each vendor separately instead of using the tried and tested win32 midi api.

    This is bad news :/

    Saturday, August 04, 2012 1:30 AM
  • The recording industry is quickly moving away from HW synths to SW based synthesis. Personally I have all of my MIDI gear plugged in and ready to go but I don't know that I've turned it on for over a year. My go to keyboard, an Axiom 49, plugs in via USB. I have a handful of "legacy" MIDI HW synths but hundreds of soft synths (its an addiction).


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Ofc there are many who still uses MIDI hardware and especially vintage gear. Just because you are moving away from your HW it doesn't mean everybody else does it. Indeed, reading forums, blogs and magazines gives me the impression that many uses a mix of both worlds. A tablet is perfect for touch control apps like TouchOSC and Lemur and it's great to be able to control vintage MIDI HW as well as more recent USB and software.

    Let me ask this. My Oxygen8 connects to a computer via USB but it also has a MIDI output that I can connect to my HW. Can I send control messages from the Oxygen into the music software via USB and then output the data back through the USB and then forward it through the MIDI interface on the Oxygen? Or is the MIDI api still necessary?


    • Edited by Trackdriver Monday, August 06, 2012 1:17 PM
    Monday, August 06, 2012 1:06 PM
  • Hello Trackdriver,

    You need to contact the manufacturer of your Oxygen8 and ask them this question. Technically they could provide a driver that would allow your device to work as a virtual "MIDI hub".

    -James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Monday, August 06, 2012 9:37 PM
  • I would love to have MIDI available for Windows 8 Metro style apps since I am an electronic musician as well as an engineer (http://www.jamesdailey.com/Music.aspx). I just want to be completely honest and say that MIDI really isn't on the radar at this time. The reality is that we are focusing on high quality low latency audio in Windows 8 to support the trend toward VOIP. 

    The recording industry is quickly moving away from HW synths to SW based synthesis. Personally I have all of my MIDI gear plugged in and ready to go but I don't know that I've turned it on for over a year. My go to keyboard, an Axiom 49, plugs in via USB. I have a handful of "legacy" MIDI HW synths but hundreds of soft synths (its an addiction). My guitar amp is even gathering dust thanks to NI plug-ins.

    So at this time we really don't see a super compelling need to support legacy MIDI devices in Metro style apps. My guess is that MIDI will stay on the desktop until its completely eclipsed by soft synths and USB based devices. What I really want to see is a MFT wrapper around the VSTi SDK so I can load my soft synths in Metro. Unfortunately this isn't likely to happen either due to our new Metro style app distribution model. VSTi ISVs would likely need to provide "WinRT friendly" versions of the instruments to be packaged with your application. Unfortunately I just don't see this as a reasonable model.

    I really wish we had a better story for professional musicians wanting to write or use Metro style apps. I am currently pursuing the shared VSTi scenario with our PMs but in reality we aren't going to see anything like this for RTM. If anything changes I will certainly let you know.

    Just because "recording industry is quickly moving away from HW synths to SW based synthesis" doesn't mean our old hardware isn't worth a nickel of development time. 

    So the bottom line is that "Metro" apps are so isolated that it won't be possible to share VST plugins, or any sort of shared objects? (And I am not refering to the "Sharing" functionality in Windows 8, but plugins of any sort (as exist in Visual Studio, Office, MMC, etc.).

    This also means that a Metro host (e.g. Cubase) is not possible then?

    I sure hope you guys come up with something that will overcome this, and fast. I mean, show that you are Microsoft, not Apple.

    What happened to the open to all technologies and all possible ways of doing things policy.

    Rob

    Sunday, August 26, 2012 2:28 PM
  • Well I guess I need to put in my two cents. I would love to control my gear via a Windows 8 tablet. One of the things that I have experimented with in the past is MIDI over UDP. In this scenario one PC talks to another PC via UDP. The MIDI over UDP server converts the UDP packets to MIDI and outputs them via a MIDI device attached to the PC. This scenario has allowed me to sync multiple DAW PCs to a common MTC source. I would imagine that a similar solution could be employed from a metro style application. The tablet talks UDP/TCP/HTTP with a controller PC with MIDI I/O device connected issuing commands to the attached devices. With wireless networking you now have a completely wireless remote control. I think that would be a really cool solution. If anyone gets this up and running let me know J

    James

    Global Technical Escalations Lead

    Windows Media SDK Technologies

    Microsoft Developer Services

    http://blogs.msdn.com/mediasdkstuff/

    Just yesterday I was testing out rtpMidi on 2 old machines connected to the same router and it works very well and I did it WITHOUT installing Bonjour because Bonjour is pretty much malware on Windows machines (seriously, it's messed up so many machines after people install iTunes).

    I've used UDP to send MIDI between Windows machines and even an iPAd in the past but it involved either converting OSC (which has network support for built in) to MIDI or using virtual MIDI cables like MidiYoke or LoopBe along with less-than-reliable software like Net2Midi/Midi2Net or EtherMidi.

    rtpMidi works differently in that it creates a virtual MIDI device of it's own and handles all the sending of MIDI over the network through a simple service.
    http://www.tobias-erichsen.de/software/rtpmidi.html
    It's compatible with the network MIDI that's already part of OSX and I believe it also works with the new MIDI stuff included in iOS.

    I don't particularly care about making any sounds at all on a tablet but I can see how much fun it can be with apps like Animoog which are basically the tablet equivalent of a VST instruments. I just want to be able to use a Win8 pro tablet to send MIDI to my desktop computer (with the faster processor and ASIO soundcard) over the network. It should be possible while using traditional Windows apps like Usine Pro / Pure Data/ MAX etc. in Desktop mode but it would be nice to be able to do this from within modern Win8 "metro" apps too.
    Wouldn't it be great if Grantophone could be used to send MIDI to another computer? iOS music apps that don't include MIDI in or out, now that it's possible, get laughed at all the time by electronic music geeks because it's THAT important of a feature for your app to be taken seriously. Without MIDI it's just another toy.

    I SO want to see something like TouchOSC available for Win8.

    After posting this I found something I had not heard of yet named YECO. http://www.multitouchmusic.com/
    I'd love to try this on a multi-touch Win8 device like the Surface Pro. It's just a shame that it's not possible to make a Win8 app that you would get in the app marketplace like this and you'll have to use it in Desktop mode. (If I understand correctly)

    • Edited by dentaku Tuesday, August 28, 2012 3:21 PM
    • Proposed as answer by Christian Gradl Monday, September 02, 2013 3:20 PM
    • Unproposed as answer by Christian Gradl Monday, September 02, 2013 3:20 PM
    Tuesday, August 28, 2012 2:25 PM
  • Hello Rob,

    Here are the answers to your questions:

    Q. So the bottom line is that "Metro" apps are so isolated that it won't be possible to share VST plugins, or any sort of shared objects?
    A. You are correct. The current architecture of Windows strore apps is such that you cannot install a VST or VSTi and share the component between 3rd party applications. However you can ship them for use in your own app.

    Q. This also means that a Metro host (e.g. Cubase) is not possible then?
    A. It  is totally possible. Cubase could partner with a device manufacturer to bundle their Windows store app as a device app for the MIDI device. Cubase could then bundle their own VSTs or VSTis and load them into their app. What can't be done is to share the VSTs, VSTis or MIDI device HW with any other 3rd party apps.

    Q. I sure hope you guys come up with something that will overcome this...
    A. As stated perviously I have made recommendations to the architecture team to allow for shared plug-ins in future versions of the OS. As an advocate of the development community I have taken up the challenge of convincing the architects that a shared plug-in feature is both necessary and feasible. As always there are no guarantees but rest assured there are those of us here at Microsoft that feel strongly that we need to make sure musicians continue to be welcome on Windows.

    Thanks,

    James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Tuesday, August 28, 2012 9:28 PM
  • This seems like a good opportunity for a fresh restart in the Windows software music world. Although VST's are the standard on Windows machines  they are propriety technology of Steinberg and seem to, due to a lack of standards/documentation to cause a lot of compatibility issues. It's still quite common for a VST to work perfectly in one host but have problems in another. Microsoft could work with the leading VST developers to create a new open standard  plugin format which would work on Metro. I can't see a reason DAW's could not be converted to Metro if it supported low latency audio, Midi and shared plugin installs. You could then share the same technology on the Desktop for more powerful production and a tablet for portability.
    Friday, August 31, 2012 10:27 PM
  • Our game applied MIDI for sound effects.

    Charlie Chang L

    Saturday, September 01, 2012 2:43 AM
  • Q. This also means that a Metro host (e.g. Cubase) is not possible then? 

    A. It  is totally possible. Cubase could partner with a device manufacturer to bundle their Windows store app as a device app for the MIDI device. Cubase could then bundle their own VSTs or VSTis and load them into their app. What can't be done is to share the VSTs, VSTis or MIDI device HW with any other 3rd party apps.

    So i did not get the point? Are Windows RT PC's able to recognize e.g. USB MIDI Keyboards? Do you mean Cubase has to integrate a common USB Midi driver in their MetroApp? So we will never see GarageBand on WinRT Tablets with MIDI support for common midi keyboards? You are jokeing?

    I'am fine with buying an App through Windows Store that is like GarageBand. But i do want to use my Midi Keyboard directly connected to my Surface tablet.

    Thursday, October 18, 2012 9:58 AM
  • Q. This also means that a Metro host (e.g. Cubase) is not possible then? 

    A. It  is totally possible. Cubase could partner with a device manufacturer to bundle their Windows store app as a device app for the MIDI device. Cubase could then bundle their own VSTs or VSTis and load them into their app. What can't be done is to share the VSTs, VSTis or MIDI device HW with any other 3rd party apps.

    So, we're back to device dependent behavior at the application level, just like in DOS where you would have to choose the sound card type in the application, provided the application supported it. In the pre-Metro APIs, you can plug in any USB MIDI device, sometimes needing a driver, sometimes using the USB generic class driver, and then access it through a generic API. Judging from everything that has been said in this thread, this won't be possible in Metro, because the relevant API is deprecated. Instead you're asking software publishers to team up with hardware manufacturers and make device dependent applications.

    If this was about any other class of hardware, the problem would be immediately obvious. The VoIP provider doesn't have a contract with producer of the sound chip in your laptop? Too bad, no VoIP for you, because we deprecated DirectSound, WASAPI and all other generic audio APIs. The game you want to play is made for NVidia? Too bad that you have an ATI chip, because we deprecated Direct3D. You want a keyboard with your tablet? Too bad that the word processor only supports this particular brand of Bluetooth keyboards. I could go on forever.

    Note that this is not just about legacy hardware synths, but compatibility with literally every computer music keyboard released over the last 10 years. What you're doing with this change is discouraging a whole market segment from investing the time and money it takes to make an application Metro compatible.

    Thursday, October 18, 2012 6:18 PM
  • @James Dailey - Great detailed reply, and it's good to see electronic musicians on the Windows Audio team!

    However, I don't know if it's me, but there seems to be some confusion.  The OP asked if there was going to be a MIDI API for WinRT, not compatibility with old-school MIDI devices (with 5 pin DIN connectors).  As you say, your go-to keyboard has a USB MIDI connector, and Surface has a USB connector - sounds like serendipity to me.

    I can't see any sane reason why there shouldn't be a WinRT API for class compliant USB MIDI devices.  OK, one sane reason - not time to do it yet, which is fair enough.

    Low latency audio (if it is truly low latency in WinRT) is precursor #1, and something Android have totally dropped the ball with.  Right now Apple's totally dominating the tablet/phone/musician scene and that's because they also have USB MIDI.


    Wednesday, October 31, 2012 1:21 PM
  • Hello,

    AFAIK there is no official USB MIDI specification. Each IHV has their own protocol and a driver that supports standard MIDI.  Yamaha tried a few years ago to create an IP based MIDI protocol but I don't think that it was widely adopted. One of the things that we have been talking about internally is the possibility of creating a MIDI device that communicates with the WinRT subsystem via a standard HID. So you would plug your musical keyboard into your device and it appears as a typing keyboard. Data could then be translated by a MIDI over HID aware application. This isn't a perfect solution but it would theoretically work.

    I hope this helps,

    James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Wednesday, October 31, 2012 6:53 PM
  • I'll freely admit that I'm no USB expert, but I have had a lot of experience with MIDI devices on iOS over the last two years.

    Most USB MIDI devices simply plug in and work on iPad via Apple's camera connection kit.  If they don't work then it's typically because they want to draw too much power rather than because there's a problem with the protocol.

    People seem to talk about 'class compliant MIDI devices', which they usually define as a device which works on most OS's without the need to install a custom driver.  I had a quick search through the USB standard and I agree that there doesn't seem to be an HID defined for MIDI.  Maybe it started as a gentleman's agreement and then developed as an unofficial standard?

    Here's a good list of all the USB MIDI devices which just plug in and work on the iPad : http://iosmidi.com/devices/

    Your Axiom 49's on it :)

    Wednesday, October 31, 2012 7:30 PM
  • Hi,

    The standard specification has been available at the USB web site for a long time.
    http://www.usb.org/developers/devclass_docs/midi10.pdf

    Regards,
    Pedro

    Saturday, November 03, 2012 11:14 AM
  • Hi,

    I agree with your proposal of using some communications layer to send MIDI messages between devices. This would fulfill reasonable use cases for people with small and portable devices like tablets and smartphones which usually are well equipped communications devices. My program VMPK (vmpk.sf.net) has an UDP multicast option in addition to using the operating system's MIDI devices for exactly this reason.

    Anyway, I want to share my negative experience about this. I've published some time ago a version of my program in the Nokia OVI store for Symbian devices. Symbian has a very bad soft synth with an indecent amount of latency, so this version has only the network UDP option, without any way to trigger sounds in the device itself. This is clearly stated in the product description at the store, but people expects that if a program looks like a piano, it should sound like a piano. It doesn't matter if the product description says that it doesn't produce any sound by itself. Dozens of comments in OVI Store page confirm that there is no hope that users read the description before downloading a program. Based on this experience, the next version for Nokia N9 has a soft synth embedded. You can download and try VMPK for Windows8 on Intel devices, but I have no plans at this time to support WinRT.

    Regards,

    Pedro

    Saturday, November 03, 2012 11:51 AM
  • I just downloaded Visual Studio Express 2012 for Windows 8 because i had an idea for a Midi app. Then i browsed the samples, and found no Midi sample. That's when i did a web search and found this thread...

    Microsoft team, it's just unbelievable that you didn't include a Midi API for Windows 8 Apps. It's the basis of most electronic music out there. Any one that follows current music tech knows that hardware synths aren't going to disappear anytime soon! They're on the front pages of music production magazines. Touch interfaces are incredible for electronic music, for music daws, etc etc. Any tablet should be allowed to send or receive midi signals, when attached with a compatible interface or hardware controller.

    Saturday, November 10, 2012 6:56 PM
  • It's not (only) about supporting old hardware. Windows-based music software is a multi-million dollar industry. How are we supposed to 'play' all our software synths? We need to plug in a USB MIDI controller and have that real tactile piano-style interaction with our software. The lack of any MIDI support is super lame, technically supporting MIDI in the OS is no more complicated than hooking up a qwerty keyboard or game controller (both of which Windows RT supports). Not good enough MS.
    Wednesday, November 21, 2012 7:10 AM
  • James,

    I created an account specifically to reply to your posts and clear up confusion.

    USB MIDI devices are generally class compliant.  There is a USB MIDI specification as part of USB Audio.  If you own a keyboard or other instrument that has a USB interface on it, it is going to be class compliant USB MIDI, with rare exceptions.

    I cannot stress enough that MIDI is not simply something you would call "legacy".  Brand new equipment being bought off the shelf today, and for the foreseeable future, uses MIDI over USB.  MIDI is not just a 5-pin DIN plug on my Juno-106 from 1984.  It is the de-facto standard protocol for all digital instrument control.

    You mention that you have an Axiom 49.  That's MIDI.  I use an APC40 with Ableton Live.  That's also MIDI.

    You say that Microsoft no longer cares about MIDI due to the industry moving to software synths... did you consider that all of those software synths use MIDI for control?  There is no alternative.  The closest available is OSC, which isn't supported by any commercial software package (to my knowledge).

    There seems to be a lack of understanding as to what developers and musicians are asking for.  Please fully understand the issue before making decisions that will make us leave the platform permanently.  The decision to not include MIDI APIs is a disaster.

    Sunday, December 02, 2012 6:21 AM
  • The closest available is OSC, which isn't supported by any commercial software package (to my knowledge).

    FYI,  Native Instruments supports OSC in their plug-ins.

    I've been following this thread and agree that native MIDI support, such as what Apple provides, would go a long way to promoting Windows 8 and Windows 8 tablet devices to musicians, both professional and amateur. 

    Sunday, December 02, 2012 9:22 PM
  • Hello,

    Thanks for your post. I don't know that there is any confusion here. This conversation appears to have diverged from MIDI support in WinRT (Windows Store apps) to platform support for MIDI. I really would like to guide this conversation back to support for musical instruments in the WinRT environment and future Microsoft products. Lets consider the future.

    IMHO The current implementation of the MIDI specification is arguably outdated and outmoded. This is particularly evident in the limited number of channels and limited number of controllers available. This is due to the 8 bit legacy nature of the protocol (there are workarounds but lets look to the future).

    What does the FUTURE of computer / instrument interaction look like? 

    I think that we all agree that some type of standardized computer / instrument / controller interaction would be a value-add for the Windows ecosystem including WinRT. However, I'm not convinced that simply porting the legacy MIDI protocol (and all of its limitations) to WinRT is the answer. I would ask the community to please weigh in on what the future of computer / instrument interaction should look like.

    Here is a list of the current and relatively "open" options (if I'm missing something please post):

    mLAN (Yamaha)

    RTP MIDI (Internet Engineering Task Force)

    OSC (Open Sound Control)

    HD-MIDI (HDWG)

    What is the general consensus? I'm personally torn between RTP MIDI and HD-MIDI.

    Thanks,

    James

    As a separate conversation: Unfortunately Billy Brackenridge (the Microsoft contributor on the USB Device Class Definition for MIDI Devices specification) is no longer at Microsoft. I'm trying to track down who took the specification from Billy when he left. AFAIK we are not currently shipping a USB Device Class driver for MIDI Devices. If you have an ongoing concern about this subject please start a new thread and link to it form here.


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Tuesday, December 04, 2012 1:43 AM
  • Hi James,

    this is a professional developer from Italy, usually working with Microsoft technologies :)

    I'm also a semi-professional musician, using both HW and SW instruments.

    I know that this forum is about Windows 8, but I imagine you are the man for this, too :)

    I had an idea for a MIDI app for iOS, but now, I own a brand new WP8 smartphone, so I'm interested in developing it for WP8. Also because I already have .NET skills, while I should learn Objective-C to develop on iOS :)

    Now, I read what you have written about an app that could send MIDI events to a PC that then could route them to MIDI devices.
    In my case, I just would like to have an app that could send MIDI event from the smartphone to my MIDI equipment, because I would like to use it on stage, instead of carrying a notebook for the same work.

    So, the question is: at this time, is it possible to create a WP8 app that could send MIDI event over its USB connection without re-inventing the wheel ? :) :) :)

    in addiction: it could be usefull also to be able to develop midi-over-bluetooth apps :)


    • Proposed as answer by Beatman1 Friday, December 07, 2012 12:57 PM
    • Unproposed as answer by Beatman1 Friday, December 07, 2012 12:57 PM
    • Edited by Beatman1 Friday, December 07, 2012 12:58 PM
    Friday, December 07, 2012 11:39 AM
  • My vote goes with RTP MIDI.

    I'd like to see the same kind of seamless OTA connectivity for MIDI between Windows based devices that Apple products support. MIDI may be ancient and 8 bit but it universally adopted by all music software and hardware and any attempts for creating alternative protocols have resulted in proprietary and niche products.

    Friday, December 07, 2012 4:21 PM
  • MIDI is about musical instruments. Let's decipher the acronym: Musical Instrument Digital Interface. It says musical instrument, not computer.

    MIDI was born because the needs of musicians demanding a way for their instruments to communicate. The scope was broaden early, including other devices like computers because its convenience: for sequencing, recording, editing, storing MIDI data...  but musicians' main tools are musical instruments, and always will be in that way. I am not talking only about professionals, but also students and amateurs. Each one with his own set of use cases. Do you really think that composing electronic music using soft synths in a computer is the only one?

    MIDI reached the age of 30 years old because it always worked quite well, and could be adapted to changing scenarios. Outdated and outmoded? Amati, Guarneri, Stradivarius instruments... are outmoded because its age? If you prefer names from last century: Marshall, Fender, Hammond. Do you see the pattern? musicians love musical instruments, and good instruments/tools are unlike to be trashed and discarded because its age, like you would do with current laptops and tablets. People is building nowadays MIDIfied Hammonds, and even pipe organs!. 

    Apple includes RTP-MIDI in all its products. It works wrapping MIDI events in network packets. It is a handy way for using MIDI software with Ethernet and wireless networks, but has the same channels and controllers limitations imposed by the MIDI 1.0 protocol. The MMA association members are working on some kind of MIDI2 specification for a long time. They announced HD-MIDI in 2005! and there aren't yet musical instruments following this new standard or including Ethernet/802.11 interfaces. Why? because there is not enough demand. It is a solution searching for a problem (to find customers!). Good luck.
    Sunday, December 09, 2012 7:29 PM
  • Hello James,

    Do you think something like Audiobus on the ipad will ever be possible in Metro?

    Have look here for how it works:

    http://audiobus.tumblr.com/

    Thanks,

    David

    Sunday, December 16, 2012 6:40 PM
  • I'm a reasonable capable Visual Studio developer - but without 64-bit MIDI class libraries in Microsoft .NET 4.5 it's a non-starter for me to work on MIDI applications for Windows.  Microsoft have not done anything since Windows XP days and so all the old MIDI related code is 32-bit only.  It is a clear differentiator between Apple and Microsoft, and is the reason why I will have to bite the bullet and start developing for iOS on the iPad instead of developing music applications for Windows 8/RT based tablets. 

    It's a great shame that Microsoft are not doing more for the musician market.  But given that Yamaha and Roland and others have fully embraced the iPad as the future controller for their MIDI instruments, it may be too late for Windows 8/RT I think.  It looks from this thread that Microsoft are yielding this musician market to Apple and making no further investments to try to catch up. 

    If I've got it wrong, and something is going to happen soon, please communicate further on this thread?

    Thanks,

    Rob


    If "Life's but a walking shadow, a poor player, That struts and frets his hour upon the stage", then how come I can't remember my lines?

    Friday, April 19, 2013 3:59 PM
  • I've wrote a sound synthesis system that generate audio data using FMS/Additive Synthesis; it allow you to create custom instruments,

    The generated data can be played using xAudio2 (from sharpdx)

    My first audio apps will be available soon on the market place. if you want more information, e-mail me at trolly@live.be


    Wednesday, May 15, 2013 10:16 AM
  • Hello,

    Thanks for your post. I don't know that there is any confusion here. This conversation appears to have diverged from MIDI support in WinRT (Windows Store apps) to platform support for MIDI. I really would like to guide this conversation back to support for musical instruments in the WinRT environment and future Microsoft products. Lets consider the future.

    IMHO The current implementation of the MIDI specification is arguably outdated and outmoded. This is particularly evident in the limited number of channels and limited number of controllers available. This is due to the 8 bit legacy nature of the protocol (there are workarounds but lets look to the future).

    What does the FUTURE of computer / instrument interaction look like? 

    I think that we all agree that some type of standardized computer / instrument / controller interaction would be a value-add for the Windows ecosystem including WinRT. However, I'm not convinced that simply porting the legacy MIDI protocol (and all of its limitations) to WinRT is the answer. I would ask the community to please weigh in on what the future of computer / instrument interaction should look like.

    Here is a list of the current and relatively "open" options (if I'm missing something please post):

    mLAN (Yamaha)

    RTP MIDI (Internet Engineering Task Force)

    OSC (Open Sound Control)

    HD-MIDI (HDWG)

    What is the general consensus? I'm personally torn between RTP MIDI and HD-MIDI.

    Thanks,

    James

    As a separate conversation: Unfortunately Billy Brackenridge (the Microsoft contributor on the USB Device Class Definition for MIDI Devices specification) is no longer at Microsoft. I'm trying to track down who took the specification from Billy when he left. AFAIK we are not currently shipping a USB Device Class driver for MIDI Devices. If you have an ongoing concern about this subject please start a new thread and link to it form here.


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    I know you want to gather information about the future, but I (for one) am here and now and I need MIDI. I am all for looking at the future, but that does not mean I will throw all my equipment out the door. I'd like to decide when that's due.

    Simply put: the "other mobile" OS devices can do MIDI, so IMO WinRT should be able to do it as well.

    MIDI is surely old, but still around. Devices being made still contain MIDI, by Roland, by Yamaha, by KORG, etc. The point of the matter is that many of us do have lots MIDI hardware that at least myself would like to continue to use.

    Of the options you mentioned none are as generally supported as MIDI is. WinRT needs to include MIDI into it's USB API and it's not there in the just released preview (8.1).

    Justin Angel lists some interesting things he found while reflecting ;) on 8.1 and surprisingly MIDI is on the charts: http://justinangel.net/Win81APIs. I understand that was just a "leaked" image, but why if it was already in, is it now out? Put it back IN!

    Thanks for listening, and please have them string pullers pull hard for MIDI.

     

    Wednesday, June 26, 2013 7:43 PM
  • Hi James,

    If you have any influence re MIDI support in Windows RT, then please focus on the mobile apps market for musicians as it exists, and forget all this speculation and irrelevant chatter about where it might be in the future?

    Since Apple IOS provides Core MIDI support for both conventional MIDI and MIDI over USB, that is currently the ONLY option available to music manufacturers such as Alesis, Korg, Roland, Yamaha, Behringer etc. for using a mobile device as a MIDI app engine.  Every one of these manufacturers provides MIDI over USB and every one of these manufacturers has innovative products into which you slot an iPad (or even an iPhone) as the controller.  I use my iPad very successfully as the main controller interface to my Roland BK-9 keyboard and it has all the attributes that make it suitable for use by on-stage performers.

    Do Microsoft want these manufacturers and musicians to consider a Windows RT device as an alternative option to an iPad?  Clearly the answer is no, Microsoft do not wish to play in this market.  Microsoft have precluded this market by offering no MIDI or MIDI over USB support in Windows RT.  Microsoft have ceded this market to Apple.  Windows RT is NOT for musicians.  Forget it.  Story over. 

    Speculation about the future of music interfaces in this thread is completely irrelevant, because whatever the future holds will happen between Alesis, Korg, Roland, Yamaha, Behringer, etc and Apple IOS.  It will not involve Microsoft Windows RT.

    The picture is broader than that, because Microsoft's inattention to MIDI support in Windows and Microsoft .NET means that no Windows device can offer anywhere near the level of performance that Apple offer to musicians in IOS-based laptops and computers.  So my conclusion is broader than Windows RT and it is this: "Microsoft have ceded the entire MIDI Music market to Apple".  If this is not the case, then where is the evidence that Microsoft cares a cent about Musicians and manufacturers of MIDI Music apps?

    Thanks,

    Rob Sherratt


    If "Life's but a walking shadow, a poor player, That struts and frets his hour upon the stage", then how come I can't remember my lines?

    Thursday, June 27, 2013 7:25 AM
  • Since it apparently was in a leaked version of Windows 8.1 (http://justinangel.net/Win81APIs), why not simply add it back it into or share the reason why it was left out of the preview version?


    Rob

    Thursday, June 27, 2013 2:42 PM
  • Add my voice to what Rob Sherratt said. The industry music creation is a huge market and if Microsoft wants to overcome the stigma of being "your father's OS" and become an influence with this demographic they need to put resources into a robust MIDI support and provide in the OS the same level of device discovery (Bonjour) that Apple supports. It's a terrible irony that Microsoft wants to become a leader in the selling of music, but completely ignores the industry that creates it.
    Thursday, June 27, 2013 2:49 PM
  • Now, that the documentation is becoming available, it's even more apparent that they HAD it in place. Check out the example (from UsbDeviceClasses) on the screen shot below which clearly shows that MIDI was in the pipeline, yet the property list excludes it:

    Windows.Usb.UsbDeviceClasses


    Rob

    Thursday, June 27, 2013 6:09 PM
  • WOW!!!!!!  ... USbDeviceClass(UsbDeviceClasses.Midi) ... just what was needed ...

    ... Bet someone from Apple spotted it in the 8.1 preview and asked Microsoft to remove it.  Does Microsoft have a secret agreement with Apple to leave the music creation market to Apple?  Isn't there some kind of law against that in the USA?

    ... If my theory is not true, then please will someone from Microsoft kindly speak up and tell us what the heck is happening?


    If "Life's but a walking shadow, a poor player, That struts and frets his hour upon the stage", then how come I can't remember my lines?

    Thursday, June 27, 2013 7:07 PM
  • I haven't read through this whole thread yet ... but I need to point out  "My go to keyboard, an Axiom 49, plugs in via USB"

    The Axiom 49 is a USB device yes, but it is a Midi-Class compliant usb device (it is Midi over USB). Your Axiom 49 keyboard is a midi device ... it is a big hunk of useless without a device that supports Midi to plug it into.

    Plugging it into a Windows RT tablet that doesn't have a midi API is the same as plugging it into clarinet ... nothing is going to happen. 


    Friday, June 28, 2013 8:04 PM
  • Hello All,

    I spent the last few days trying to track down our story surrounding MIDI device support in Windows 8.1 preview. As you all know I have been a champion of adding MIDI support to Windows Store apps. I wish I could give you all some good news. Unfortunately the official word is: "MIDI is supported via Desktop APIs as it has been for many Windows releases, but it is not supported for Windows Store Applications at this time."

    Keep in mind this doesn’t mean MIDI support for Windows Store apps is completely off the table. Hopefully we will see support added in a future release.

    I hope this helps,

    James


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/


    Wednesday, July 10, 2013 12:48 AM
  • Hello Dustin,

    Sorry for any confusion. The device manufacturer could theoretically create a custom driver and device app to support the control surface. The other option would be for the device manufacturer to supply a class driver for a compatible class such as HID. Either way it would be up to the device manufacturer to modify their firmware. 

    I hope this helps,

    James


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/


    Wednesday, July 10, 2013 12:55 AM
  • I am working on an app similar to TouchOSC for win8/wp8

    Currently i managed to send midi and osc messages from my surface to my Host PC. Latency seems to be low.

    I am looking forward to implement rtpmidi as well but to date i have no time and knowledge how to do that

    check out the video

    http://www.youtube.com/watch?v=3u3Bq1EQuuA

    Monday, September 02, 2013 3:24 PM
  • Hi all,

    This is a very old thread but I guess someone is still monitoring it :-)

    I have started a project to implement RTP-MIDI for Windows Store Apps. More specifically, it implements AppleMIDI (the dialect used by iOS which is the only de-facto standard). With this project, it will be possible to create applications to control various MIDI devices (hardware instruments, soft-synths, digital audio workstations, etc.) using touch on a Surface RT, for instance.

    The project is at a very alpha stage but is beyond the "proof-of-concept" stage since I'm now confident that this will work very well. However, not being myself a professional in audio and real-time protocols, I would probably need some help.

    If anyone could chime in and provide feedback, that would be awesome.

    Project page is winrtpmidi .codeplex .com

    Twitter: @WINRTP_MIDI

    Cheers.

    Maxime.

    Monday, September 30, 2013 1:21 PM
  • I've been working on an RTP MIDI implementation for sometime now and have a stable RTP MIDI communication stack that I'm using in an app that I'm going to be releasing soon. The app will have a keyboard, pitch, mod, volume and custom control sliders as well as a page with pads for playing percussion instruments. Here's a link to a video demo of an early prototype communicating with Cubase on a Mac Book Pro.

    http://www.youtube.com/watch?feature=player_embedded&v=jzsJljhmz_s

    Monday, September 30, 2013 2:39 PM
  • Are there any news regarding this topic? Windows 8.1 Update 1 is coming, and Windows 9 is in the pipeline.

    Rob

    Monday, February 17, 2014 10:27 PM
  • Are there any news regarding this topic? Windows 8.1 Update 1 is coming, and Windows 9 is in the pipeline.

    Rob

    If you're interested, check out the MIDI application I just published in the app store

    http://apps.microsoft.com/windows/en-us/app/0552f945-09eb-44a3-8cff-060f6f2f8106

    Monday, February 17, 2014 11:35 PM
  • I do appreciate the app, however my interests are with what's going on at Microsoft to address this concern. :)


    Rob

    Sunday, March 09, 2014 5:06 PM
  • Saturday, April 05, 2014 4:21 PM
  • **Update**
    Just yesterday Microsoft released a preview Windows Runtime API for MIDI.  Check out the //build/ session here:
    http://channel9.msdn.com/Events/Build/2014/3-548

    Links you might find useful:
    MSDN: http://msdn.microsoft.com/en-us/library/windows/apps/dn643522.aspx
    NuGet: http://www.nuget.org/packages/Microsoft.WindowsPreview.MidiRT

    Although a preview, apps can go live and be deployed to the Windows Store.  Please let us know what you like or don't like.  Happy app building!
    Saturday, April 05, 2014 8:14 PM
  • Cool. Anyway to convert old midi file of windows desktop to new win rt midi file?
    Sunday, April 06, 2014 12:53 PM
  • @KWerner@

    Thank you and the team in Microsoft for introducing "Windows Runtime API for MIDI".  This is a great step forward, although it will take some time to recover the ground lost to Apple and Linux.  I watched your video presentation and am pleased that the plan is to introduce a common Windows Runtime API for MIDI across all platforms.  I think it is essential that the new API is common for all releases of Windows 8.1, RT versions and full PC versions, because in these days of "softsynths" most studios will run power laptops and not RT devices.

    I will await the release of the API on full PC versions before I commit to writing Windows 8.1-based MIDI apps.  My personal interests are in a "power laptop" sound synthesis solution for keyboard musicians, with multi-VST hosting, a generic SF2 sample player and a flexible and intuitive MIDI patchbay software solution for routing incoming MIDI messages between the different sound and effects plug-ins.  I have co-developed Linux systems using VSTHost, Jack (MIDI patchbay) and Linux Sampler in the past.

    It would be helpful if your team can consider the requirements of MIDI routing via a software patchbay, and multi-VST hosting with standardized API support for these core system elements.


    If "Life's but a walking shadow, a poor player, That struts and frets his hour upon the stage", then how come I can't remember my lines?

    Sunday, April 06, 2014 6:07 PM
  • Hi Charlie,

    This API release only does device I/O and does not expose the capability to for MIDI file playback directly.  A Windows Store app would need to handle the file parsing and send the MIDI messages to a hardware synth or synthesize the audio within the app.  We are all ears on feedback.  Sounds like you'd like to see MIDI file playback but please let us know if there is anything else.

    Thanks,
    Kate Werner

    Thursday, April 10, 2014 6:09 AM
  • Hi Rob,

    Sounds like you're waiting for the API to be available to desktop.  But, we'd love to hear any feedback on the preview API surface so we can integrate those changes for the WinRT API for desktop and the windows store.  Also, thank you for the feature feedback.  If you think of anything else please let us know.

    Thanks,
    Kate Werner

    Thursday, April 10, 2014 6:13 AM
  • What do you mean by "full PC versions"?

    If you are writing Win32 desktop apps, the MIDI API of choice remains the MIDI portions of DirectMusic (although DirectMusic Producer an associated APIs are deprecated) which is available in the Windows 8.x SDK headers.

    The news here is that there is now a WinRT MIDI API available (at least in Preview) for use for Windows Store apps which cannot make us of DirectMusic.
    Thursday, April 10, 2014 6:33 AM