View Single Post
Old 08-04-2017, 11:07 PM   #16
Join Date: Nov 2015
Posts: 406

Originally Posted by EvilDragon View Post
If MIDI over BT is really just UWP, chances of Reaper getting that are really slim, I'd say - unless somebody backports it to win32 (which is again, probably slim chance). UWP apps still cannot touch the performance of native win32 code.
Midi over Bluetooth is not UWP but, as of now, that is the only way microsoft allows one to enumerate those devices on windows machines. You can enumerate BT devices in other ways of course(non uwp and now uwp has it's own method).

As your probably aware, the traditional way to enumerate midi devices is using winmm. But those functions will not enumerate BT devices as midi devices(how could they? They were created before BT was even invented) and because microsoft has not extended them to do so(yet... or they have and my system is just fubar'ed).

I was able to use the example code in a non uwp app to enumerate the devices but I still had to call in to the uwp libraries. My bluetooth device was listed.

One simply has to go to device manager and look under software devices and sound, video, and game controllers. Not all the devices are listed in both. Specifically, Midi over Bluetooth devices will probably not be listed in the second category unless they were installed with a specific driver.

Windows just added Midi over BT support in windows10+ so all this is relatively new. I'm sure it will change in the future.

The main point I am making is that, unless I am proven wrong, reaper will not enumerate and list midi over BT devices in it's midi devices window and therefor cannot use them. At least, that seems to be the case on my machine, I have not seen any contradictions of it, and all the articles about Midi over BT supports my claim.

Now, I imagine it would be quite simple for someone to write some type of bridge so that midi over BT devices can be enumerated through the traditional techniques but I imagine this is non trivial and requires creating a normal midi device to wrap the midi over BT device so the winmm enumeration functions will find it. It's not difficult but I've not seen anything out there that does it.

Originally Posted by karbomusic
My Bluetooth speaker shows up as an audio device to the system even though it is regular BT. If I want to use it from Reaper, I choose it as my audio device. The end result here should be no different other than it shows up in MIDI Devices. With BT being a tiny bit special I see what you are saying but I don't agree it is the best path.
That is not necessarily true. Did you install any drivers what so ever for your audio? I am not familiar enough with BT audio device programming to say if it should be the same or not.

We are not talking about what should be but what is. It is obvious that with enough work anything can be done. But is Midi over BT devices are not enumerated as midi devices then one cannot access them as normal midi devices, simple as that and no easy way around it.

It may be that BT audio devices are also enumerated as normal audio devices by an internal bridge M$ created and so it isn't an issue.

1. "Let’s take a look at MIDI. Windows has had built-in MIDI support going back to the 16-bit days. Since then, most MIDI interfaces have moved to USB and our in-box support has kept pace, with a class driver and APIs that support those new interfaces."

2. "Those unfamiliar with music technology may think of MIDI as just .mid music files. But that’s only a tiny part of what MIDI really is. Since its standardization in 1983, MIDI has remained the most used and arguably most important communications protocol in music production. It’s used for everything from controlling synthesizers and sequencers and changing patches for set lists, to synchronizing mixers and even switching cameras on podcasts using a MIDI control surface. Even the Arduino Firmata protocol is based on MIDI.


New Bluetooth LE MIDI support in Windows 10 Anniversary Update


Now, the bullet point is what is important. It says that windows 10 anniversary is what adds support for Midi over Bluetooth. It does not specifically say if a win32 api can be used and is geared towards UWP though. Searching for win32 midi over bluetooth gives something like

"Until now, wireless MIDI products in the market have only catered to the macOS and iOS communities. When we set out to build ACPAD, we wanted to disrupt MIDI music industry. We wanted to make sure that each and every person who gets an ACPAD would be able to use all the features in their favorite operating system without having to make a switch from Windows to MacOS. Industry has ignored Windows users for far too long.

We are glad to reveal that our software team’s research and development has finally paid off and ACPAD is currently the only company in the market to provide ultra-low latency wireless MIDI on Windows 10 platform without any external hardware.

A big shout out to our software developer, Deepak Kumar, whose hard work has finally made it possible for all our users to use Wireless MIDI in Windows 10. You will be able to download the software from our website when we start shipping out ACPADs. If there is enough demand ACPAD may be looking at offering this general purpose application for use on all MIDI controllers."

Which, again, suggests that custom software is needed... which reaper does not currently have.

My main point is that reaper has to add these capabilities, like what was done before, if BT MIDI devices will be usable. That is it. I could be wrong, but again, hard proof is required rather than desire to contradict me. What I do know is that my BT MIDI device is not found by reaper nor other programs. (I think I read somewhere that Sonar supports such things but didn't investigate)

Just for clarity, we should keep data and transport mechanisms separate, USB, BT, BTLE, ETHERNET are all mechanisms for moving *data* from point A to point B. In this case the data is MIDI and it is the payload regardless of protocol used. Meaning, BTLE or carrier pigeon, both are carrying the actual MIDI data - a BTLE driver should unpack the data and present it as a local MIDI endpoint - that's sort of the entire point of abstraction - IOW, if MIDI is what is being transmitted, the application (in this case Reaper) should only need to deal with MIDI and MIDI "Devices".
Yes, that was my point with the long post. BUT the transport is what makes all the difference. Reaper maybe shouldn't have to support those those transport layers, but something has to. If reaper uses the old school communication layer then it will never be able to communicate with them until something bridges the gap. Reaper can do this internally itself(using the uwp code or possibly new Win32 routines) or someone could write a bridge utility that does it... sorta like rtpMIDI/MIDI over Wifi from Tobias Erichsen.

Reaper obviously does not have direct capabilities to do MIDI over Wifi, (well, it might, since it has a lot of stuff but no one has standardized MIDI over Wifi protocols that reaper could use directly in any sensical way). But obviously with rtpMIDI, which bridges the gap between MIDI and MIDI over Wifi, it can be done. The same thing can be done, and must be done with BT MIDI. It's not, which is unfortunate because I have such a BT MIDI device that is useless right now since it cannot be used with windows(works fine for mac stuff, since they already standardized the it).

Time and work will solve many of these problems, but reaper could take the initiative to provide support now if they wanted.

Again, my point with all this crap is very simple: Reaper is not listing my BT MIDI device. I'm not the only one... therefor, something needs to be done(By cockos, or others) to get them working.

Again, it could just be me. Maybe my system is screwed up and it's suppose to work and all this has been done. I only have one such device to test so I can't say. But I'm not the only one and I've not found any contradictory statements to my claims so I will stand by them until otherwise.
Airal is offline   Reply With Quote