Troubleshooting

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

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:

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:

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:

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:

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.