Creating a new virtual MIDI device on Windows

Hey Jules (and the JUCE community),
I’ve made a Mac application that acts as a virtual MIDI device using your MidiOutput::createNewDevice() method.
I’ve got it working great, but I’ve noticed that this method doesn’t currently work on Windows, which is a shame as I plan to build a version of my app for Windows sometime in the near future.
Do you have any idea when you hope to implement this method for Windows?
Do you know of any other libraries/frameworks that allow you to create virtual MIDI devices that I could use in the mean time?
Thanks.

I don’t think Windows supports anything equivalent to that… (TBH it’s been a long time since I did any midi work in win32, so maybe someone can correct me there?)

There’s the old but still fully functional midiyoke, which through a windows driver creates a virtual MIDI patchbay.

I’ve been using this a great deal for routing MIDI between applications on windows without problem, and I think there may even be alternatives to it out there as well.

http://www.midiox.com/index.htm?http://www.midiox.com/myoke.htm

Some users are reporting issues with 64 bit applications on Win 7 64 bit, but other than that it should work fine.

Thanks, I’ll have a look into that.

It’s possible to do it as a self contained windows driver, like midiyoke and bassmidi does. I’m not sure if you can do it from a windows client application though.

You can find the source code for a DirectMusic and MME virtual driver here:
https://github.com/mudlord/bassmididrv

Is there any recent JUCE workaround to this problem? Simply put: On Windows, I want to send MIDI Messages out of my JUCE application and into a DAW. Is this possible in JUCE? Thanks!

I don’t think there is anything new in JUCE to support that use case. See this recent similar thread:

1 Like

Have you thought of turning your application into a midi plugin so it can be inserted as a normal plugin in the DAW?

1 Like

That definitely could be a workaround, thanks for mentioning that option! For my specific program though, I think it would make more sense to be an application.