Windows::Devices::Midi API support
Please let our ADS show!
This sites offers only FREE software and it's supported by a few advertisement boxes (no intrusive popups).
Please:
- disable your AdBlocker by adding CoolSoft website to whitelist
- give the proper cookie consent
- enable JavaScript for this website
This seconds wait is to let you update your browser configuration...
Ok, I've done the required changes... now show me your content!Pagine
- Nicholas
- Posts: 3
- Joined: 4 Dic 2017 - 22:28
- Nicholas
- Posts: 3
- Joined: 4 Dic 2017 - 22:28
Poking around a little more, it looks like Tobias' loopMIDI also shows up in both APIs. So, there might be some hints in his virtualMIDI SDK, here: http://www.tobias-erichsen.de/software/virtualmidi.html (That's the underlying component that powers loopMIDI.)
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
Nicholas, thanks for the info.
I've read something about the "new" MIDI layer and, honestly speaking, most of them are negative ;)
MS missed the MIDI train a long time ago, and now they're trying to hurry up and get users back...
The new APIs still have unfixed bugs (like the device names bug) and I'm really scared this could be a nightmare to support and then abandoned in a few months...
Back to the point, AFAIR both loopMIDI and LoopBe1 are device drivers (.sys) and not User Mode (.dll) devices, so they must be installed with an .inf file (and will also appear in Device Manager).
I'm looking for documentation on how to properly register an User Mode device, other than "switch to .sys driver" or "switch to DirectX device mode".
Already tried that way and abandoned (DirectX have an unacceptable latency and far moooore complicated SDK).
- Nicholas
- Posts: 3
- Joined: 4 Dic 2017 - 22:28
You're not wrong about the bugs. I'd barely call their new API an alpha version. The names that come back from the API are completely unusable, so Synthesia does some digging around in the device properties for each reported device to try to cobble together something a little more sensible (using the manufacturer and product name). It's mostly hit or miss.
It was only when I was composing my first post here that I noticed how wide-spread the negative feedback was. Crashes in the new MIDI API immediately became our #1 source of Windows crashes when the new release went out the door. So I've also been trying to think of alternatives that would allow users to have their Bluetooth MIDI support (and maybe the lower-latency built-in Windows synth) while still mostly using the old API. Some hybrid where Synthesia only uses the new stuff for Bluetooth MIDI devices. Those are still rare enough that most users would be able to avoid the crashes.
I'm not sure about the .sys vs. .dll stuff. I don't remember needing to agree to an unsigned driver when installing either LoopBe1 or loopMIDI... but the last time I did it was years ago, so it's almost certainly my memory failing me. That'd be a shame if the new API didn't allow user-mode drivers. Hrm.
Still, you may be right about this being too little, too late for Microsoft. If no one ever adopts the new stuff, it won't matter! Perhaps Synthesia was a little too early to the WinRT MIDI party.
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
Nicholas wrote:Still, you may be right about this being too little, too late for Microsoft. If no one ever adopts the new stuff, it won't matter! Perhaps Synthesia was a little too early to the WinRT MIDI party.
Well, I could be wrong but I've seen a lot of new and unbeatable technologies in the last 20 years; and that makes me feel skeptical about new things replacing well working existing ones.
I'll try to find some in-depth documentation in Windows 10 SDK and will share some info when/if I found something.
Feel free to do the same (even privately).
- KaleidonKep99
- Posts: 102
- Joined: 8 Mar 2014 - 22:29
I just tweeted Pete brown about it, to see if there's documentation about this.
I'd really like to add UWP MIDI API support to my driver, and to see Claudio do the same with VirtualMIDISynth. :P
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
Feel free to post here in case you have any update
- KaleidonKep99
- Posts: 102
- Joined: 8 Mar 2014 - 22:29
Direct quote from Pete Brown, on Twitter:
"Just checked with the devs. The Windows 10 MIDI API doesn't use the add-in/extension mechanism (not really drivers) that MME MIDI supports. It also does not support user-mode drivers. So kernel-mode only."
tl;dr: Existing MIDI drivers will work fine with the UWP MIDI API, as long as they're kernel-mode drivers.
The only way to use either OmniMIDI and VirtualMIDISynth with UWP MIDI API, is to use loopMIDI (which doesn't really support SysEx afaik).
VirtualMIDISynth 2.x would be easier to port to kernel-mode, since the listening library's duty is to send MIDI data to the synthesizer (VirtualMIDISynth.exe), but a digital signature is required for that.
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
This is really bad news, another bad move from MS.
I'm not going to rewrite my virtual driver to let it run in kernel mode (why the hell???) without any noticeable advantage.
And, mostly, I'll never go down to the driver-signature path, which is reliable only for companies that make revenues from their products.
VMS is free and I'd like it to remain so.
Microsoft driver signature is an useless (and expensive) hell for independant/open source developers, so I won't apply for that, sorry ;)
If one day the kernel mode will be the only available option, well, VMS will stop working on Windows and maybe we'll switch to something else ;)
- KaleidonKep99
- Posts: 102
- Joined: 8 Mar 2014 - 22:29
Here's his answer about it.
- Attachments (Only registered users)
- Screenshot_Twitter_20180810-210729.png
Pagine
Navigazione
Login
Clicca qui per supportare il mio lavoro con PayPal
oppure offrimi un caffè