Keep your Stream Deck in sync with your DAW (MIDI feedback)
A Stream Deck key normally only knows what you did to it. Press a MIDIRover toggle and its light flips on; but if your DAW or plugin then changes that same parameter another way — an automation lane, a recalled preset, a second controller — the deck has no idea, so the light stays on while the parameter is already off. The key is now lying about the state. MIDI Feedback fixes that: it lets incoming MIDI flow back into MIDIRover so the hardware follows the software. It works with any source that sends MIDI back — typically a DAW's automation output, or a second controller. One caveat worth knowing up front: Neural DSP plugins are receive-only — they take MIDI to be controlled but don't send their own state back out — so following a Neural DSP plugin means hosting it in a DAW that emits the parameter changes. On Windows or macOS, and free.
What bidirectional feedback actually is
Out of the box MIDIRover is one-way: your deck sends MIDI out to the plugin. Feedback adds the return path. You give MIDIRover a MIDI input to listen on, and when a matching Control Change arrives, the relevant action updates itself to match — silently, without sending anything back. The result is that the deck reflects the true state of the parameter instead of just remembering your last press.
- CC Toggle keys flip their light on or off to match the incoming value.
- CC Sweep keys move their value and redraw the on-key graphic (slider or knob).
- Note keys in Toggle mode flip their light to match an incoming Note On (on) or Note Off (off) on the same note number and channel.
- MIDI Dial encoders (Stream Deck +) move their value and touch strip display.
Feedback syncs from incoming Control Change and Note On/Off messages — the same message types these actions send: CCs drive the CC and dial actions, and Note On/Off drives a Note key in Toggle mode.
1. Turn on Feedback
Feedback is off by default — the input stays closed so it costs nothing until you want it. Open any MIDIRover action's settings and find the Feedback field. It is a shared MIDI input: the port you pick there is used by every MIDIRover action, just like the shared output port. Leave it empty to keep feedback off; choose a port to switch it on.
On Windows you need a virtual MIDI port for the return path — the free loopMIDI (one port is enough; you can reuse the same one you already send on — see below). On macOS, MIDIRover exposes its own virtual port, so there is nothing extra to install.
2. Route your DAW or plugin back to MIDIRover
Feedback only works if something is actually sending parameter changes to the port MIDIRover is listening on. In your DAW or plugin, set a MIDI output that carries the parameter's state, and point it at the same port you selected in the Feedback field. The exact steps differ per DAW (see the notes below), but in every case you are looking for wherever your software emits Control Change for the control you mapped — an automation or parameter output, or a MIDI send — and directing it to MIDIRover's input port. When it is routed correctly, moving the parameter in software should move the matching key or dial on the deck.
Routing the return path: Ableton, Logic, Studio One
Enable the virtual port for output so the DAW can send changes back, then point MIDIRover's Feedback field at that same port. Where each DAW exposes this:
- Ableton Live — in Preferences → Link, Tempo & MIDI, find your loopMIDI / virtual port and turn Remote on for its Output row so Live sends parameter status back (turn Track or Remote on for the input to receive). A CC used as a Remote mapping can't also be recorded on a track — pick one role. Ableton's documented loop warning is about turning Sync on for both In and Out of one device, so leave Sync off here.
- Logic Pro — add the port under Logic Pro → Control Surfaces → Setup. A plain virtual port won't auto-scan, so add it manually and set its Input and Out ports. Communication is two-way, so Logic echoes parameter changes back to the surface automatically; Bypass All Control Surfaces temporarily silences that while you troubleshoot.
- Studio One — under Preferences → External Devices, add a New Keyboard and set its Receive From to the virtual port to receive; set Send To only when you want Studio One to send MIDI back for feedback.
One preset-specific gotcha: Program Change preset recall needs the host to forward it to the plugin, and Ableton Live doesn't forward Program Change at all (Logic often doesn't to the AU either). In those DAWs, map presets to CCs instead — or run the plugin standalone. More on preset switching in the Neural DSP setup guide.
3. Toggle key lights follow the incoming CC
Once a CC Toggle key is set up, an incoming Control Change on the same CC number and channel sets its light to match: on when the value lines up with your On value (or, more generally, the upper half of the range), off when it matches your Off value. So if the plugin turns that parameter off some other way, the key goes dark on its own. If you use Latch groups to make several toggles behave like radio buttons, feedback lights the one the incoming value selects and clears the others — the deck shows one active at a time. Remember that on the plugin side a learned CC on a button simply toggles it; for reliable one-way scene recall, lean on Program Change as covered in the Neural DSP setup guide.
4. CC Sweep display follows the value
For a key in Sweep mode, an incoming CC on the matching number and channel moves the key's value and redraws its on-key graphic — so an automated sweep in your DAW is mirrored right on the key, in whichever orientation you chose. Feedback yields while you are actively holding the key to sweep it, so it never fights your hand. Note that the Stream Deck Pedal has no screen, so a Sweep key there still tracks the value but shows no gauge. For more on Sweep mode, see the expression / wah pedal guide.
5. MIDI Dial value and touch strip follow
On the Stream Deck +, a MIDI Dial whose CC and channel match an incoming message moves its value and updates the touch strip display — whether you have it set to Bar, Knob, or Knob (ring from centre). Automate that parameter in the DAW and the encoder's readout tracks it live. Unlike a Sweep key — which yields while you hold it to sweep — the dial simply shows the most recent value, whether that came from your turn or an incoming CC. (Dials exist only on the Stream Deck +; other models use CC Sweep mode instead.)
The matching rule: same CC number + same channel
Feedback pairs an incoming message to an action by two things only: the CC number and the MIDI channel must both match what the key or dial is configured for. If either differs, MIDIRover ignores the message and nothing moves. This is the first thing to check when a control refuses to sync — confirm the software is sending the exact CC number and channel your action expects. Because everything in MIDIRover (and in Neural DSP) is MIDI-Learn based, the simplest way to be sure is to learn both directions to the same control so the numbers line up by construction.
Avoiding feedback loops
A return path raises an obvious worry: could a message go round and round? MIDIRover is built to prevent that.
- Feedback never sends. When an incoming CC updates a key light, sweep graphic or dial display, MIDIRover changes the visuals only — it transmits nothing. The device is treated as the source of truth, so a sync can't kick off a new outgoing message.
- Your own echo is ignored. If you share a single loopMIDI port for both sending and listening, anything MIDIRover just sent that loops straight back is recognized as its own recent output and dropped — so it won't chase its own tail. That is why reusing one port is safe.
- Learning Mode yields the port. While you arm Learn, the feedback listener steps aside so the two never fight over the same input.
- Watch the DAW side. The real loop risk lives upstream: if your software is set to mirror every CC it receives straight back out on the same port, a press can bounce back at you. Conceptually, you want it sending the parameter's actual state or automation — not blindly echoing its own MIDI input.
For every action and setting, see the MIDIRover user manual.