MIDI works. OSC works better for video — it carries floating-point values, meaningful addresses, and you can send anything to anywhere without a physical cable. This tutorial uses Ableton Live as the DAW but the OSC side is identical for any host. If your DAW cannot send OSC natively, there are bridging tools for every platform covered below.
The goal is not just synchronisation — it is integration. Your visuals should not follow the music. They should be the music, translated into light. Every parameter change in your DAW, every automation curve, every send level becomes a potential visual control. OSC makes that mapping explicit and precise in a way MIDI’s 7-bit resolution never can.
Step 1 — Enable OSC in Resolume
Open Resolume Arena or Avenue. Go to Preferences → OSC. Enable Input and set the port to 7000. Note the IP address shown — you will need it in a moment. Leave everything else at defaults for now. If you are running both applications on the same machine, the IP will be 127.0.0.1. If Resolume is on a separate machine, use that machine’s local network IP (typically 192.168.x.x).
Step 2 — Install an OSC bridge in Ableton
Ableton does not send OSC natively. You need a Max for Live device or a standalone bridge. The simplest option is OSCII-bot (free, cross-platform) or the Connection Kit M4L device from Cycling ’74. Install it, point the output destination to 127.0.0.1:7000 (same machine) or the Resolume machine’s IP on port 7000.
If you are using a DAW other than Ableton: TouchOSC Bridge works as a relay between any MIDI-capable software and any OSC receiver. You send MIDI from your DAW to TouchOSC Bridge, which translates and forwards it as OSC. Less elegant, but universally compatible.
For Max for Live users: the udpsend object gives you raw OSC control. Build a simple patch: a live.dial mapped to a track parameter → a prepend /composition/layers/1/video/opacity message → udpsend 127.0.0.1 7000. This is the full signal path in three objects.
Step 3 — Map an OSC address to a Resolume parameter
In Resolume, right-click any parameter — for example the Opacity of a layer. Choose OSC — Learn. Now send an OSC message from your bridge. Resolume will lock that address to the parameter automatically. You do not need to type the address manually for most things.
If you want to address parameters directly without Learn mode, the Resolume address format is structured and predictable: /composition/layers/[n]/video/opacity, /composition/layers/[n]/clips/[m]/connect, /composition/tempo/bpm. The full address map is in the Resolume documentation under OSC API — it covers every parameter in the application.
Step 4 — Test and debug the connection
Trigger something in Ableton — a clip launch, a macro knob, a beat marker. Watch Resolume’s parameter move in real time. If nothing happens, diagnose in this order:
- Firewall. Windows Defender blocks UDP by default. Open Windows Firewall → Advanced Settings → Inbound Rules → add a UDP rule for port 7000. On macOS you will get a prompt the first time — allow it.
- IP address. Confirm the destination IP in your bridge matches the machine running Resolume. If both are on the same machine, it must be
127.0.0.1, not the LAN IP. - Port conflict. Another application may already be using port 7000. Try 8000 or 9000 — change it in both Resolume preferences and your bridge simultaneously.
- Monitor incoming OSC. Download Protokol (free, Hexler) and open it on the Resolume machine. It will show every OSC message arriving at every port. If you see messages in Protokol but Resolume is not responding, the issue is inside Resolume (check OSC is enabled and the port matches). If Protokol shows nothing, the issue is in the bridge or network.
Step 5 — Map to something musical
Now map something meaningful. Here are three starting points that immediately make the visual-music relationship obvious:
Scene launch: In Ableton, use a MIDI note or a clip launch in a MIDI track to trigger /composition/columns/[n]/connect in Resolume. Each scene in Ableton activates a corresponding column in Resolume. Your visual sets change with your music sets, automatically, every time.
Filter sweep: Map a filter cutoff automation lane to /composition/layers/1/video/opacity or a blur effect parameter. As the music opens up, the visuals reveal themselves. As it closes down, they retreat. The audience feels the relationship even if they cannot articulate it.
Reverb send as space: A reverb return level mapped to a glow or diffusion effect creates a direct perceptual link — more space in the sound, more space in the image. This is the kind of mapping that makes a visual set feel composed rather than improvised, even when it partly is.
Start with one mapping. Test it in a rehearsal, not a show. Once you trust it, add another. The goal is not to automate everything — it is to build a vocabulary of connections that you can rely on, and then improvise around them.