Windows: Multiple Client USB MIDI Drivers

Under Windows 7 and 8, some, if not all, USB MIDI drivers seem to disallow multiple programs (processes) to use them at the same time. I am having difficulties opening such a device for input with Juce, if another DAW or notation software also uses it. This conflict is reported by many users and is a real pain. Similar issues arise with ASIO drivers, although this can be resolved by using Steinberg’s multi-client ASIO driver.

There are no such conflicts on OS X, which supports any number of audio and MIDI clients to operate in parallel.

Questions:

Can you confirm this and how are you dealing with this?
Is this a limitation of Windows USB implementation? Or is the individual USB driver responsible?
Are there any generic drivers available as a resort?
Am I missing something fundamental?

Thanks for any feedback in advance!

Hi,

Yes indeed. And this “single client” MIDI port is not limited to Windows 7 and 8, it’s also the case with XP, Vista…
Actually there is a way to set the MIDI drivers multi-client under Windows, but to my knowledge there is a very few number of manufacturers providing such driver. Standard MIDI drivers are exclusive under Windows.

It is the standard way under Windows. Making drivers multi-client is quite tricky (we are currently trying to manage this in our virtual-MIDI driver).

I don’t think so, unfortunately…

/Phil

The RtMIDI (http://www.music.mcgill.ca/~gary/rtmidi/ it’s free) implementation uses KS (kernel streaming) on Windows to gain multi process access to ANY driver on Windows. You can try that.

my experience is that the generic, built in, midi drivers are not multi client.
(Like if you simply plug in a midi device and let windows take care of the driver)
But some midi devices are multi client on windows, i have done this many times.
Forr instance the motu and steinberg usb devices i have used can be used in more then one app at a time.
You need to install the drivers though.

As for asio general rule is that only one app can use the asio driver.
There are exceptions. RME devices, for example, are multi client.
That is the device can be used in more then one app at the same time, but they can not use the same output channels.
So you have to disable some of the channels in each app.
Inputs are no problem to share.

Just wanted to bump this as I ran into this issue with my app.    the driver that Korg provides for their Kronos keyboard is multi-client, and lets all applications talk to the kronos simultaneously.  

 

Is the verdict that this is a windows flaw?   Or a hardware manufacturer driver implementation flaw?    

The solution for me was to use LoopMIDI.    Set up your DAW as the primary receiver of MIDI info from your controllers, then set up an External MIDI instrument that sends to the LoopMIDI port.  Finally, set your standalone application to receive midi data from that LoopMIDI port.   Boom, both applications respond to a single Midi Controller simultaneously.