u/mayerwin

Hi r/ableton. Sharing a small free open-source Windows utility I built. Solves a fairly painful gap between Ableton and Bluetooth MIDI keyboards on Windows.

The problem: pair a BLE-MIDI keyboard with Windows and Ableton just doesn't see it in MIDI preferences. Cause is that Windows only natively exposes BLE-MIDI through the WinRT API, which Ableton doesn't poll. The classic answer is MIDIberry + loopMIDI, which works but is fragile (the 20-second-disconnect bug bites a lot of people).

The app does the BLE side directly and routes the keyboard through the new Windows MIDI Services loopback so Ableton just sees a normal MIDI input.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

MIT, .NET 10, Avalonia, single ~21 MB exe, no installer.

I built it for my Roland FP-90X (which is what I've personally tested). Should work with the rest of the BLE-MIDI ecosystem, but I haven't confirmed. If you give it a try with Ableton and a different keyboard, an issue or a reply with what worked or didn't would be very welcome.

Pete from the Microsoft Windows MIDI Services team commented positively on it on r/synthesizers (https://www.reddit.com/r/synthesizers/comments/1szvuiq/comment/oj5ew9b/) which was nice.

reddit.com
u/mayerwin — 13 days ago
▲ 3 r/Reaper

Hi r/Reaper. Sharing a small free open-source utility I built that fills in a gap between Reaper and Bluetooth MIDI keyboards on Windows.

The problem: pair a BLE-MIDI keyboard with Windows and Reaper just doesn't see it. The cause is that Windows only exposes BLE-MIDI through the WinRT API, which Reaper doesn't poll. The classic answer is BLEAPER, MIDIberry + loopMIDI, or Korg's BLE driver, all of which work but are finicky.

The app does the BLE side directly and routes the keyboard through the new Windows MIDI Services loopback so Reaper just sees a normal MIDI input on the next time you scan devices.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

MIT, .NET 10, Avalonia, single ~21 MB exe, no installer.

I built it for my Roland FP-90X (which is what I've personally tested). Should work with any BLE-MIDI keyboard, but I haven't confirmed others. If you give it a try with Reaper and a different keyboard, an issue or a quick reply would be very welcome.

Pete from the Microsoft Windows MIDI Services team commented positively on it on r/synthesizers (https://www.reddit.com/r/synthesizers/comments/1szvuiq/comment/oj5ew9b/).

reddit.com
u/mayerwin — 13 days ago

Hi r/pianolearning. Sharing a small free open-source Windows utility I built to fix a frustrating gap many of you have probably hit: Bluetooth MIDI pianos that pair with your laptop but never actually show up in your practice app.

The reason this happens is that Windows only natively exposes BLE-MIDI through an API that almost no app uses. So Synthesia, Piano Marvel, Yousician, Midiano, etc. just don't see your paired piano. You end up needing a USB cable or a workaround stack of small bridge apps.

I built one app that does the BLE side directly and routes the keyboard through the new Windows MIDI Services so any practice app sees a normal MIDI port. Single ~21 MB exe, MIT, no installer, no account, no telemetry, free forever.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

There's also a Detect button that finds the right MIDI receive channel automatically, which matters because Roland's FP-X line silently receives on a different channel than its panel says (mine claims channel 1, the synth engine actually listens on 4). Notes you send on channel 1 get acknowledged at the Bluetooth layer and silently dropped.

Personally tested with my Roland FP-90X. Should work with Kawai, Yamaha (with the MD-BT01 adapter), Casio Bluetooth pianos and similar, but I haven't confirmed and would love to hear from anyone who tries.

Pete from the Microsoft Windows MIDI Services team commented on it positively on r/synthesizers (https://www.reddit.com/r/synthesizers/comments/1szvuiq/comment/oj5ew9b/) if that helps establish it's a legit project.

reddit.com
u/mayerwin — 13 days ago

Hi r/SideProject, sharing something I shipped last week.

Bluetooth MIDI on Windows has been quietly broken for years. You pair a BLE-MIDI piano with your PC, Windows says it's connected, but your DAW (or any web MIDI app) just doesn't see it. The reason is that Windows only natively exposes BLE-MIDI through the WinRT API, which almost no DAW polls. The classic fix is MIDIberry + loopMIDI, but that combo is fragile.

I have a Roland FP-90X and got fed up enough to write my own bridge. It does the BLE side directly and routes the keyboard into the new Windows MIDI Services loopback, so any DAW or Chrome Web MIDI site (like Midiano) just sees a normal MIDI port. There's also a Detect button that finds the right MIDI receive channel automatically because Roland pianos lie about it.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Repo: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

MIT, .NET 10, Avalonia, single ~21 MB exe, no installer, no account, no telemetry. Free forever.

A side project that's been pleasantly surprising in terms of how niche-but-real the audience is. Pete from the Microsoft Windows MIDI Services team commented on it on r/synthesizers (https://www.reddit.com/r/synthesizers/comments/1szvuiq/comment/oj5ew9b/), which was a fun validation moment.

reddit.com
u/mayerwin — 13 days ago
▲ 31 r/csharp+1 crossposts

A small Windows utility I just open-sourced. Bridges a Bluetooth LE MIDI keyboard into the new Windows MIDI Services loopback so any DAW or Chrome Web MIDI site sees the device as a regular virtual MIDI port. Built because Windows only natively exposes BLE-MIDI through WinRT and almost no DAW polls it, so paired keyboards never actually show up.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Repo: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

MIT, .NET 10, Avalonia, single ~21 MB exe, no installer.

I built it for my Roland FP-90X (which is what I've personally tested), but the BLE-MIDI side is generic and other devices should work. There's a Detect button that finds the right MIDI receive channel automatically (some Roland pianos receive on a different channel than the panel says, which silently drops every note).

Pete from the Microsoft Windows MIDI Services team commented on the BLE integration positively on r/synthesizers (https://www.reddit.com/r/synthesizers/comments/1szvuiq/comment/oj5ew9b/), which was nice validation.

Feedback or PRs welcome.

u/mayerwin — 13 days ago
▲ 3 r/piano

Hi r/piano. I bought a Roland FP-90X partly for the Bluetooth MIDI, then discovered Bluetooth MIDI on Windows is quietly broken in a few stacked ways. After a regrettable number of evenings I shipped a small free open-source utility that fixes the BLE side and exposes the keyboard to any DAW or Web MIDI app (like Midiano or Synthesia desktop) through the new Windows MIDI Services stack.

Three things were going wrong:

  1. Windows only natively exposes BLE-MIDI through the WinRT API, which almost no DAW polls. Pairing succeeds, MIDI apps still don't see the device.

  2. The FP-90X (and likely the rest of the FP-X line, though I only own the 90X) silently receives MIDI on a different channel than its panel says. Mine claims channel 1, the synth engine actually listens on channel 4. Notes I sent on channel 1 got silently dropped.

  3. BLE-MIDI in general has hidden quirks (encryption, write mode) the spec leaves open.

The app handles all three. There's a Detect button that finds the right channel in about 75 seconds and saves it per device, so you only do it once.

Personally tested only on my FP-90X. The library is generic, so other BLE-MIDI pianos (Kawai with Bluetooth, Yamaha with the MD-BT01 adapter, Casio Privia BT, etc.) should work, but I haven't confirmed. If you have one, I'd love to hear what worked or didn't.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

MIT, .NET 10, single ~21 MB exe, no installer. Pete from the Microsoft Windows MIDI Services team commented positively on it on r/synthesizers (https://www.reddit.com/r/synthesizers/comments/1szvuiq/comment/oj5ew9b/) if you want extra reassurance it's a legit project.

reddit.com
u/mayerwin — 13 days ago
▲ 3 r/Korg

I just open-sourced a small Windows app that bridges BLE-MIDI keyboards into the new Windows MIDI Services loopback, so any DAW (or Chrome Web MIDI site) sees the keyboard as a normal MIDI port.

I built it to scratch my own itch with a Roland FP-90X (which is what I've personally tested), but it's a generic BLE-MIDI client and should work with Korg's BLE-MIDI gear too (microKey Air, nanoKEY/nanoKONTROL Studio, etc.). I'd love to confirm that, so if you have one of those and have been fighting Korg's older WinMM driver on Windows 11, this might be a clean alternative.

It does the BLE side directly (no Korg driver needed) and exposes the keyboard through the WMS loopback. Single ~21 MB exe, no installer, MIT.

Site: https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

If you give it a try, an issue or a quick reply with what worked / what didn't would be very helpful. Especially the device pairing flow and channel handling.

reddit.com
u/mayerwin — 13 days ago

Just open-sourced something I built to scratch a personal itch. Bluetooth MIDI on Windows is a minefield: paired keyboards aren't visible to most DAWs, some devices need a fully encrypted link before they accept MIDI, a few only respond to WriteWithResponse, and at least one major piano line (Roland FP-X) silently receives on a different MIDI channel than the panel says.

The app handles each of those explicitly and routes the keyboard through the new Windows MIDI Services loopback so any DAW or Chrome Web MIDI site sees a normal MIDI port. There's a Detect button that fires test notes on each channel until you hear the burst, then saves the right channel per BLE MAC, so you only do it once per device.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

MIT, Avalonia, .NET 10, single ~21 MB exe. Tested with Roland FP-90X. PRs and device-test reports very welcome.

reddit.com
u/mayerwin — 13 days ago
▲ 5 r/midi

If you've been stuck with a BLE-MIDI keyboard on Windows that pairs but never shows up in your DAW, I just open-sourced a free MIT-licensed bridge for exactly that. It talks WinRT BLE-MIDI on the device side and routes through the new Windows MIDI Services loopback on the DAW side, so any DAW (or Chrome Web MIDI site) just sees a normal MIDI port.

Background: Windows only natively exposes BLE-MIDI via the WinRT API, which almost no DAW polls. Pairing succeeds, MIDI apps still don't see the device. Most existing solutions are MIDIberry + loopMIDI which is fragile (no encryption and no channel selection support). This is a single-app alternative meant to work flawlessly.

It handles a few BLE-MIDI corners that bit me on a Roland FP-90X: pianos that receive on a different channel than they advertise (keyboard settings shows Channel 1, actually receives on 4), devices that need pairing + encryption before they accept MIDI, and devices that only respond to WriteWithResponse. There's a Detect button that finds the right channel in about 75 seconds and saves it per BLE MAC.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

Single ~21 MB exe, no installer. Tested with Roland FP-90X. Would love feedback on devices I haven't hit yet.

reddit.com
u/mayerwin — 13 days ago
▲ 3 r/Roland

Hi r/Roland. I have an FP-90X and bought it partly for the Bluetooth MIDI. Took me embarrassingly long to figure out why my Windows PC could pair with it but neither my DAW nor any Web MIDI site (like Midiano, Synthesia desktop, etc.) actually saw the keyboard.

Three things turned out to matter:

  1. Windows only exposes BLE-MIDI through the WinRT API, which almost no DAW polls. Pairing succeeds, MIDI apps still don't see the device.
  2. The FP-X line receives MIDI on a different channel than its panel says. Mine shows Channel 1 but the synth engine only listens on channel 4. Notes go through, get acknowledged, get silently dropped.
  3. Several BLE-MIDI devices need pairing + encryption before they accept MIDI, and a few only respond to WriteWithResponse. None of them tell you, the connection just looks fine.

I wrote a small free open-source app that handles all three and exposes the keyboard through the new Windows MIDI Services loopback, so any DAW or web MIDI site sees it as a normal virtual MIDI port. There's a Detect button that finds the actual receive channel in about 75 seconds and saves it per BLE MAC.

Site (with screenshots): https://mayerwin.github.io/Perfect-Bluetooth-MIDI-For-Windows/

Source: https://github.com/mayerwin/Perfect-Bluetooth-MIDI-For-Windows

MIT, single ~21 MB exe, no installer. Works on FP-30X / FP-60X / FP-90X / FP-E50 (and probably the rest of the BLE-capable Rolands). Would love feedback on devices I haven't tested.

Roland if you read this, please change the receive channel to 1 in a future firmware update, or at least document this peculiarity prominently! A lot of people probably think their Piano just can't play notes over BLE MIDI which is luckily wrong (but extremely hard to diagnose).

reddit.com
u/mayerwin — 13 days ago