MIDI Bluetooth Low Energy devices do not show up in GP (neither do they in most other DAWs). This is due to the fact that Microsoft only expose these devices using the WinRT/UWP APIs, not by the old MME APIs. Most DAWs and also GP use MME and thus do not ‘see’ the BLE devices. The reason for using MME is probably because it is rather stable and somewhat mature and developers has learned to live with it . Further more the WinRT/UWP subsystem is new (2016).
To overcome this issue, I’ve written a small program. It makes it possible to receive MIDI messages at one MIDI device and send them out on another device. These devices can be ‘normal’ MIDI device and/or BLE devices.
To make it work, you also need a virtual midi cable such as Tobias Erichsen’s loopMIDI (loopMIDI | Tobias Erichsen). When you create a virtual cable with the name ‘cable-a’ the flow looks like this:
Setup the router:
Unzip it to a folder
Scan the content for viruses: better safe than sorry!
Read the PDF, because you have to make a router config file and (hopefully) this tells you how
Start MidiUWPRouter.exe without extra arguments: That way you get all the device data that can be used in the filters. You can save these also to a csv by right-clicking in the device list
Create the router config file. There is one next to the application: routerconfig.txt, but that one was specific to my computer. Nonetheless, it might serve as a starting-point
Start MidiUWPRouter.exe with an extra argument that points to the configfile you created, for example:
You should see the program listing again all available devices, but also a log telling which devices got a assigned and alias and which routes were activated
In Gigperformer do not use the output device of the virtual cable you created in LoopMIDI: it must be available for the router to use!
Double-click the guitar-pedal icon in the upper-left corner to close the program.
I’ve also created an installer. That one takes care of downloading the right dotnet version, etc. (if needed), but I’m not too fond of installers myself, although I need them often enough.
This one I have to add (although I did my best): Disclaimer: Use at your own risk!
To gain some experience with BLE MIDI devices I just bought a CME Widi UHost device. No that we have your software router, Is there still an advantage to use a CME UHost to work together with a set of CME Widi Jack devices?
That might be the case (and I’m not malicious and thanks for the compliment, btw), but a supply chain attack is always a possibility. When someone (not necessarily a GP user) gains access to the back-end where the files are stored and replace them with infected files…
I don’t mean to cause panic, but I don’t want to encourage too trusting behavior.
I don’t know. When CME UHost works for you and you’re happy with it, there is maybe no need to use my utility. The reverse might also be true. The only purpose of the program is to make it possible to get these devices working with GP. If someone knows another way, he/she prefers:
To test my program, I downloaded a free app on my iPhone (Bluetooth Midi Keyboard). Pairing with Windows and getting MIDI working is the proverbial PITA, but you can get it to work. Don’t forget to activate ‘Advertise MIDI Service’ in the app. On the iPhone, you only have to do this in just 1 of the apps, in case you have more than one app installed (for example Bluetooth Midi Controller, also free).
It will stay free, so no worries there. Drawback is that I make no guarantees that I will always be able to update it when needed… That’s one of the reasons I publish these projects on github, so, when the time comes that I can’t do updates anymore for whatever reason, someone else can step up (or is it ‘step in’?) and take over.
Luckily there is a chance that in due time @dhj might try and see how to support MIDI via UWP in GP out of the box in a future release.
I just want to add something to this post as i see is related to windows and midi ble
It is possible to make windows to see and connect to midi ble devices. But there is an additional (korg) driver to be installed:
After installing the driver, i was able to pair my home made digital whammy bar with arduino. Its connected to widows and i can map it for example to the pitch shift effect of the amazing helix native. You can see the result here:
Anyone interested, i can share the code for esp32 boards
I tried the MikroKey by Korg as you suggested, however it would not see my bluetooth ble connection from my iPhone running Midimittr. I have yet to complete Frank1119’s suggestion, but am hopeful. His app seems to make the most sense. However I am still trying to figure things out in it.
(1) If I install the MidiUWPRouter-NoInstall, will I need to download something else. (2) So I believe you are saying, if I just start MidiUWPRouter, with either version installed, it should show me what devices I have available. Is that correct.
It needs a dotnet framework, but most people have that already. But when you’ve optimizing and did remove all dotnet frameworks (if that’s even possible), then you should at least get some complaints about missing dotnet, I would think.
Thanks for the quick reply Frank
I uninstalled the install version and just tried running NoInstall version which I will send a screen shot, then reinstall the other Install version to show you what I get. I still need to create a config file though, and working on how to do that now. I believe you intended to get the info for that by running MidiUWPRouter first and copy and paste what is needed. Looking now, I don’t see a way to share my screen shot.
Yep. That means it works. There is a pdf that explains how to create a configuration file. For the arguments in that file you can use the names and/or id-s you see on this screen.
After creating the configuration file (with notepad or something like that) you start the program follwed by the path to the configuration file.
This is in the pdf also
If I remember well, right clicking displays some options to copy the content of the screen to the clipboard