Get the bridge running
The bridge is one Python file. It catches Traktor's broadcast metadata and MIDI clock, then republishes both as a WebSocket feed the renderer subscribes to.
Install Python deps
Python 3.9 or newer. Put both downloads in the same folder, then:
pip install -r requirements.txt python vbuddy_bridge.py --list-midi
On macOS python-rtmidi may needxcode-select --install first.
Virtual MIDI port
macOS: open Audio MIDI Setup → Window → Show MIDI Studio → double-click IAC Driver → tick "Device is online".
Windows: install loopMIDI and create a port.
Re-run --list-midi; the port should now appear.
Traktor: MIDI clock
Preferences → Controller Manager → Add… → Generic MIDI.
- Set Out-Port to your IAC / loopMIDI port.
- Preferences → MIDI Clock → enable "Send MIDI Clock".
- Start the master clock in Traktor (metronome panel).
Traktor: hotcues
Still in Controller Manager with the Generic MIDI device selected, Add Out… → Track Deck → Hotcue 1 State, repeated for hotcues 1–8.
| Deck | Hotcues 1–8 | MIDI notes |
|---|---|---|
| A | C1 → G1 | 36 – 43 |
| B | G#1 → D#2 | 44 – 51 |
Using different notes? Pass --cue-base <note>.
Traktor: broadcasting
Preferences → Broadcasting. This is how track names reach the bridge.
- Address
- 127.0.0.1
- Port
- 8000
- Mount Path
- /live
- Password
- anything
- Format
- Ogg Vorbis — lowest bitrate is fine
Activate broadcasting from the deck's broadcast button — Traktor only pushes metadata while the stream is live.
Run and connect
python vbuddy_bridge.py --midi "IAC Driver Bus 1"
Then open the visualizer and connect to ws://localhost:8765.
Rendering on a second machine?
# on the DJ laptop, note its LAN address ipconfig getifaddr en0 # macOS ipconfig # Windows # in the renderer on the other machine, connect to ws://192.168.1.42:8765
Prefer Resolume or VDMX?
The same bridge forwards everything over OSC, so you can drive a pro VJ host instead of the built-in renderer.
python vbuddy_bridge.py --midi "IAC Driver Bus 1" --osc 127.0.0.1:7000
Addresses: /vbuddy/bpm, /vbuddy/beat, /vbuddy/track, /vbuddy/cue.
Something not firing?
- No MIDI ports listed
- Enable the IAC Driver or create a loopMIDI port, then restart the script.
- BPM stays at 0.00
- Traktor's master clock isn't running — start it in the clock panel.
- No track names
- Broadcasting isn't active, or the port doesn't match --meta-port.
- Cues do nothing
- Check --cue-base matches the notes mapped in Controller Manager.
- Remote renderer can't connect
- Allow port 8765 through the DJ laptop's firewall.