Open the Debug panel in XOSC first — it answers most of these questions immediately.
Is the input being captured?
Press the bound key/button and watch the debug log. You should see an entry from the input source on every press. If nothing shows up:
- Make sure the capture source in the inspector matches your hardware (keyboard / MIDI / gamepad / serial).
- Keyboard inputs only fire when the XOSC window has focus.
- For MIDI, confirm the device shows up in your OS's MIDI configuration. Disconnect / reconnect if needed.
- For serial, reopen the port in the inspector and check that the baud rate matches your firmware's
Serial.begin().
Is XOSC sending OSC?
Watch the debug log for an entry from the osc source like → 127.0.0.1:7000 /composition/.... If you see it, the packet left the building. If you don't, check that the input is wired to the output node — an unwired input has no destination.
Is Resolume listening?
In Resolume: Preferences → OSC → OSC Input Port must match what XOSC is sending to (default 7000). The "OSC Input Enabled" checkbox must be on. If you've changed Resolume's port, change it in XOSC's output node too.
Firewall
Local-loopback OSC (127.0.0.1) is always allowed. If Resolume is on a different machine on the LAN and the packet shows in XOSC's log but Resolume doesn't react, that's almost always Windows Firewall on the receiving machine — allow inbound UDP on the OSC port for the Resolume executable.
Address is wrong
The fastest way to verify an address: in Resolume, Shortcuts → Edit OSC, click the control you want to fire, copy the address that appears, paste into XOSC. There's no version skew because you took it directly from your build.
Still stuck
Click Copy in the debug header, paste it somewhere, share it. Every event and packet is in there.