Stream Deck MIDI not working? Fix it on Windows & macOS
Pressed a key and nothing moved? Almost every "MIDIRover isn't working" case comes down to a handful of things: the two sides aren't on the same MIDI port, the channel doesn't match, loopMIDI isn't running (Windows), or a MIDI Learn just didn't bind. Work down this page in order — it's symptom-first — and you'll be sending MIDI again in a couple of minutes, on Windows or macOS.
Quick symptom checklist
- Nothing happens at all. Open any key's settings and read the coloured line under MIDI Port — it says whether MIDI is leaving the plugin, and on which port. Red usually means the port isn't there: (Windows) loopMIDI isn't running, or your saved port has gone. See the port sections below.
- Your plugin isn't receiving. The port is right but the MIDI channel doesn't match, or the control was never learned. Check the channel and re-arm MIDI Learn.
- The MIDI Dial action is missing. The dial action needs a model with dials — the Stream Deck + and + XL are the ones with a touch strip. On every other model use a CC Sweep key instead.
- The value jumps instead of sweeping. Lower the dial's Step (or a Sweep key's Sweep time) and set a Range so the sweep stays in a useful window.
- MIDIRover’s actions have gone grey. That is the Stream Deck app disabling the plugin after it failed to start, not a MIDI problem at all — what it means and how to clear it.
Read the status line first
Before changing anything, drop any MIDIRover action on a key and open its settings. Under MIDI Port there's a live line that says what is happening right now, and it always names the port:
- Grey — MIDI is going out on the port you meant. If your software still hears nothing, the problem is on its side: check its MIDI input and the channel.
- Amber — MIDI is going out, but somewhere other than the port you meant. The line says where.
- Red — nothing is being sent at all, and the line says why.
It refreshes every time you come back to the panel, so you can start loopMIDI, click back into the settings, and watch it turn grey.
Windows: is loopMIDI running?
MIDIRover cannot create a MIDI port on Windows by itself, so it needs a loopback port that something else provides. Install the free loopMIDI and create one port — the default "loopMIDI Port" name is fine. One is all you need; extra ports just make it easy to pick the wrong one on one side. loopMIDI has to be running for the port to exist, so if nothing works after a reboot, open loopMIDI first. If no ports show up in MIDIRover's list, create a port in loopMIDI, then reopen the key settings so the list refreshes.
The port exists, opens fine, and carries nothing
This one wastes hours because every screen looks correct. A newly created loopMIDI port can come uplisted but non-functional: it appears in every dropdown, MIDIRover opens it without error, your plugin selects it happily, and not one byte crosses it. Nothing warns you, because from every application's point of view nothing is wrong.
We hit this twice on one Windows machine while testing, both times on a freshly added second port. The tell-tale sign: a MIDI monitor on that port shows zero traffic even when something is definitely sending to it.
This is a known Windows bug, and it has been fixed — it is not something loopMIDI got wrong. Creating a port in loopMIDI did not raise the device-arrival event that the Windows MIDI service watches for, so the service never learned the port existed and nothing could route through it. Microsoft tracked it asMIDI issue #835, closed as fixed and rolled out from late April 2026. The same bug affects the other virtual-port tools — loopBE, Bome and teVirtualMIDI — so if you moved away from loopMIDI to escape it, that is why it followed you.
Do not uninstall Windows updates to fix this. It is the natural instinct when MIDI stops working after an update, and here it makes things worse: the MIDI stack was rebuilt in these releases, so removing them takes the fixes with them. Microsoft's own note is blunt about it — uninstalling those updates “generally results in uninstalling the bug fixes and resulting in a worse or completely broken MIDI experience”. The direction that helps is forwards.
Try these in order. The first one is the actual fix; the rest are for machines that cannot take it yet:
- Install pending Windows updates and reboot. The fix shipped in the April 2026 Windows release. On an up-to-date machine this problem should not occur at all.
- Restart the Windows MIDI service. Press Win+R, run
services.msc, find Windows MIDI Service, and choose Restart. This is Microsoft's own workaround, and it makes existing ports visible again without touching loopMIDI. - Or quit loopMIDI completely and start it again. Its ports are re-created and the arrival event fires, which is what cleared it both times we hit this while testing.
- You don't need to restart the Stream Deck app for any of these. MIDIRover watches the port, notices it coming back — usually within about three seconds — and reopens on its own, both what it sends and its Feedback input. If it hasn't caught up, press a key or open any key's settings, which re-checks the port there and then.
- Re-adding the port is the one thing that does not help. Creating another port while apps are still attached reproduces the same dead port, which is why it can seem unfixable.
This is the strongest practical reason to keep to one port. Every additional loopback port is another thing that can fail this silently — and MIDIRover never needs a second one, since it recognises and discards its own echo (see the two-way feedback guide).
macOS: nothing to install
On macOS there's no setup — MIDIRover creates its own virtual port automatically. You don't need loopMIDI or any equivalent. Just make sure your plugin's MIDI input is pointed at MIDIRover's port (next section).
Pick the same port on both sides
This is the single most common fix. MIDIRover sends on the port you choose under MIDI Port (or leave it on Auto — the option reads Auto-detect (prefers loopMIDI) on Windows and Auto (virtual MIDIRover port) on macOS); the choice is shared by every key. Auto states a preference, not a promise: if there's no virtual port to find it takes the first port on the system, which can easily be a hardware synth or an interface's MIDI out. The status line turns amber and names the device when that happens, so pick your port explicitly if it looks wrong. Your plugin has to listen on that same port. Drop any MIDIRover action on a key, confirm the port, then open your Neural DSP plugin (or standalone / DAW) and set its MIDI input to the identical port. If you created more than one loopMIDI port, double-check both sides name the same one.
Your saved port disappeared
If the port you picked is no longer there — loopMIDI closed, a port renamed or deleted, a device unplugged — MIDIRover sends nothing. It will not quietly switch you to some other MIDI device: rerouting your rig into whatever else happens to be installed (a General MIDI synth, say) is worse than silence, so it doesn't happen.
You'll see it plainly. The status line under MIDI Port turns red and names the port that went missing, and the dropdown shows it as "your port (not present)" rather than pretending you're on Auto. Three ways out:
- Bring the port back under the same name — re-create it in loopMIDI (Windows), or reconnect the device. MIDIRover reopens it by itself, usually within about three seconds. Nothing to restart.
- Pick another port from the dropdown.
- Choose Auto at the top of the list to clear the saved port for good and let MIDIRover pick again.
If the name differs only in capitalisation, the status line says so — reselect the port to update the saved name.
On macOS it goes slightly differently: with your saved port gone, MIDIRover uses its own built-in MIDIRover port. That isn't a substitution — nothing reaches any device until your music software selects "MIDIRover" as its MIDI input.
Match the MIDI channel (1–16)
Right port but still silent in the plugin? Check the channel. MIDIRover sends each action on a channel from 1 to 16; your plugin only reacts if it's listening on that channel (or set to hear all channels). Set both ends to the same number and the message gets through.
MIDI Learn didn't bind? Re-arm and press once
If a control never responds, the mapping probably didn't take. In Neural DSP, right-click the control and choose Enable MIDI Learn again (or add it from the MIDI-port icon → MIDI Mapping window → "+"), then press the Stream Deck key once so it learns a single, clean message. A CC learned to a button toggles it, so use Fixed mode for one dependable value per press, or Toggle with Feedback on so the key light tracks the plugin's real state. A CC learned to a slider or knob is already absolute — nothing extra to enable. To flip a parameter between two settings without a dial, put two Control Changes on the same CC in Fixed mode with different values (a rhythm and a lead, say) — see the two-key parameter switch guide. Full walkthrough in the Neural DSP setup guide.
Learning Mode: know the rules
MIDIRover's own Learning Mode (on the Control Change, Note and MIDI Dial actions) reads a control on any MIDI controller and fills in the channel and number for you — handy, but it has a few habits worth knowing when it seems stuck:
- Listening stops after about 12 seconds if nothing arrives — just press Learn again to retry.
- The input port is only opened while you're learning, so if nothing fills in, confirm your controller is actually sending during that window.
- Click Learn a second time to cancel without changing anything.
No MIDI Dial action? That's a Stream Deck + feature
If you can't find the MIDI Dial action, you're likely not on a Stream Deck +. A touch strip is documented on the Stream Deck + and + XL — on the Mini, MK.2, XL, Neo and the Pedal the dial action is hidden by design. To ride a parameter by hand on those models, add a Control Change action and set Mode → Sweep: hold the key and the value sweeps. See the expression / wah pedal guide. One note: the Pedal has no screen, so you get the sweep but no on-key gauge or state light there.
See what's actually being sent
When you're not sure whether the problem is MIDIRover, the port, or the plugin, watch the traffic with a MIDI monitor. It shows you the exact channel and message arriving on the port in real time, so you can tell at a glance whether MIDIRover is sending, whether it's on the channel you expect, and whether your plugin is on the other end of the same port. For device-specific messages like NRPN or SysEx, always confirm the numbers against your gear's own MIDI implementation chart rather than guessing.
Still stuck?
If you've matched the port and channel, confirmed loopMIDI is running (Windows), and re-armed the learn and it still won't play, the MIDIRover user manual covers every action and setting in detail, including the full troubleshooting section.