Skip to main content
Live sound
Deckmatics Academy article cover: OSC, Ableton Link, Bitfocus Companion and Stream Deck
Deckmatics Academy article cover: OSC, Ableton Link, Bitfocus Companion and Stream Deck
Programming and advanced tools for technical artists · Intermediate · 6 min read

OSC, Ableton Link, Bitfocus Companion and Stream Deck

How to control a live system over a network: what OSC messages carry, what Ableton Link is for, and the roles of Resolume OSC, Bitfocus Companion and Stream Deck.

When a system grows, a cable stops being enough: one computer for visuals, another for sound, a lighting module and sometimes a tablet. That raises the underlying question, which is not “how powerful is my laptop?” but which protocol carries each command and who controls synchronisation.

This guide covers the five names that recur in any technical rig: OSC, Ableton Link, Resolume OSC, Bitfocus Companion and Stream Deck. You will see what each solves, where they overlap, and how to combine them without two systems fighting over the tempo.

OSC: addresses instead of channels

OSC (Open Sound Control) is a message format designed for network control. Whereas MIDI speaks in channels, numbers and values from 0 to 127, OSC speaks in paths: each message has a map-like address, such as /composition/layers/1/video/opacity, and can carry text arguments, decimal numbers or booleans.

That change in language has three practical consequences. First, there is no ceiling of 128 elements: a composition with forty layers will not run out. Second, precision: a fader can send a value with many decimal places, without receivers stepping between values. Third, the network: OSC runs over UDP, so it communicates between computers without installing drivers.

The downside is that OSC does not standardise the vocabulary: each programme decides which paths to expose and what to call them. That is why your first task with a new system is to open its address documentation and, in Resolume, enable the OSC server in Preferences before sending anything.

Two costs are worth keeping in mind from day one. The first is discovery: knowing which device is listening and on which port, solved with ZeroConf announcements when the programme supports them and a fixed address when it does not. The second is UDP: messages travel without acknowledgement of receipt, so some may be lost on a saturated network. With continuous values, you barely notice, because the next message corrects it; for discrete commands such as “trigger this scene”, it is advisable to send extra messages or repeat them.

Despite all its potential, OSC still does not replace MIDI within the instrument: for knobs and notes, MIDI remains the most direct route, as covered in the MIDI fundamentals guide.

Ableton Link solves a different problem from OSC: synchronisation. Its idea is for all compatible applications on a local network to agree on tempo, phase (where the bar is) and starting and stopping, without any of them acting as a master clock.

There is nothing to configure: applications advertise it and discover each other on the same network, including Wi-Fi. Each participant maintains an independent timeline: you can stop your set while the other keeps playing, or change the tempo in your app and see it reflected in the neighbouring DJ’s app. Phase is defined with a quantum, usually a bar, so the beats land together.

Link is the right piece when you work with live music and visuals or a second audio source in parallel: the general operation of Link and what each network packet carries are detailed in the official documentation covered in show-control synchronisation.

It is not for adjusting a particular visual application or changing a filter: that is OSC’s role. The rule is simple: Link for time, OSC for parameters.

Resolume OSC: sending commands to visuals

Resolume OSC is OSC from the visual application’s perspective. Resolume publishes an address namespace in which every element of the composition and each layer has its own path, letting you send opacity, mixing, playback or effect commands without touching the mouse.

The basic workflow is always the same. Enable the OSC server in Preferences, choose a port and address, and point the sender at those paths with the correct format: address, type tag and value, as defined by the OSC specification. If an integer arrives where the receiver expects a decimal, it is not processed; that detail is the most common error.

Two strengths make OSC useful compared with a MIDI mapping: it communicates between machines, so a laptop at the desk sends to the projection computer, and it supports feedback, so Resolume returns a parameter’s state and a physical control positions itself automatically.

Combined with Link, the typical setup is: Link maintains tempo, OSC triggers scene changes, and MIDI remains for the mixer knobs.

Bitfocus Companion: the button translator

Bitfocus Companion is the programme that turns a button surface into a proper controller. It runs on the control computer, scans your hardware — including Stream Deck — and exposes each key as a button with a state, colour and chained actions.

Its value lies in modules: for each audio, video or lighting device or application, Companion provides a module that already knows the correct commands. You choose the module, adjust the parameter and operate it; the programme translates to the network, serial or MIDI without you building the bridge manually. That is where it really saves work: mapping a programme from scratch, as covered in building a MIDI controller, costs more effort than using a ready-made module.

When you need logic, Companion supports that too: stateful buttons that change according to what happens, multiple actions sent to several devices at once, and screens populated with information. That logic is the boundary between “I trigger an action” and “my panel adapts to the show”.

Organisationally, Companion works with pages and buttons: each page is a screen on your surface, with its background and states, and navigation between pages lets you fit dozens of commands into twelve keys. What separates a production panel from a test panel is designing those pages around the show — output, visuals, lighting — rather than around the programmes: a new technician must be able to read the panel without you explaining each module’s internals.

Stream Deck: the physical surface for all of the above

Stream Deck is Elgato’s hardware: a row of customisable buttons with displays, each with an icon and a state you can read at a glance. It works over USB with its own software and integrations; on its own, it does not send MIDI.

Its role in a technical rig is twofold. As a direct trigger, it launches actions in the application you use: changing scenes, sending a cue, pressing play. As a Companion surface, it becomes the face of the system: each key is reassigned to a module, and colour stops being decoration and becomes state — green when the system is running, amber when paused, red if something has failed.

That state feedback is precisely what separates a professional panel from an improvised one. A button that only triggers works until something fails; a button that lights up when something fails saves you diagnosis in the middle of a show.

What you control with each protocol

The table summarises the decision without focusing on brands. If you need matching tempo, use Link; if you need to move parameters precisely or between devices, use OSC; if you need action sequences and state, use Companion; if you need a finger to reach everything, use Stream Deck; and if it is an audio knob, it is still MIDI.

Which tool for each control task
What you need Tool How it travels
Synchronise tempo and phase between applications Ableton LinkDiscovery and packets on the local network
Move parameters in a visual application OSC (Resolume OSC)Messages with addresses such as /composition/...
Trigger actions on several devices Bitfocus CompanionNetwork, serial, MIDI and OSC modules
Operate everything with a finger Stream DeckUSB HID to the computer
Physical knobs and faders MIDIChannel, number and value from 0 to 127

Link handles synchronisation, OSC provides the network vocabulary, Companion handles action logic, and Stream Deck is the physical surface.

Next step

With network control resolved, it is time to move into creative work: programming your own sound and screens. Continue with Creative programming with Max, TouchDesigner, VirtualDJ and AI, where Max for Live, Max/MSP, TouchDesigner, VirtualDJ scripting and artificial intelligence tools are used to build what is not provided out of the box.

Frequently asked questions

Does OSC replace MIDI?

No. OSC was created for controls and visuals with many more information channels and without the limitation of 128 numbers; MIDI still leads in compatibility with musical hardware. Most live systems use both: MIDI within the instrument and OSC between applications.

Does Ableton Link work without a network cable?

Yes. Link advertises itself on the local network you already have, including Wi-Fi or a connection created between two computers. You do not need to configure IP addresses or install anything: compatible applications discover each other automatically and share tempo and phase.

Do I need to know how to code to use Bitfocus Companion?

Not to start. Ready-made templates and modules exist for common equipment; programming comes in when you want your own logic, such as a button changing state according to what is playing or launching a sequence of actions on several devices at once.

Can I control Resolume with an ordinary MIDI controller?

Yes, Resolume accepts MIDI with mappings for functions and properties. OSC differs in scope: many more addresses, decimal values and network control between machines, compared with the 128 numbers of a MIDI channel.

Does Stream Deck send MIDI?

Not on its own: it works over USB with its own protocol and software. To communicate with a DAW, you need an intermediate layer, either Companion or the MIDI actions in its official integrations.

Continue learning

Next lessonCreative programming with Max, TouchDesigner, VirtualDJ and AI

Program your own sound and visuals: Max for Live and Max/MSP for audio, TouchDesigner for video, VirtualDJ scripting and AI tools in the workflow.

Sources

  1. Open Sound Control 1.0 Specification Technical standard Stanford University / CNMAT · accessed on

    The classic OSC specification: a message consists of an address pattern, type tags and arguments, with high numeric resolution and transport over UDP, TCP or a local network. It defines the rules subsequently applied by Resolume and any control module.

  2. Ableton Link Documentation Official documentation Ableton · accessed on

    Documents how Link synchronises tempo, phase, and starting and stopping between applications on a local network, with independent sessions: each participant can play and stop without taking the others with them, and phase is calculated using a quantum.

  3. Resolume support — OSC Official documentation Resolume · accessed on

    The official guide to OSC in Resolume: enabling it in Preferences, address namespaces for composition and layer components, floating-point values, and automatic machine discovery. It is the protocol's specific manual from the visual application's perspective.

  4. Bitfocus Companion (repositorio oficial) Official documentation Bitfocus · accessed on

    The Companion programme repository, which turns button surfaces such as Stream Deck into controllers with modules for audio, video and lighting equipment and software. It contains the supported module list, which you choose from before building a panel.

  5. Elgato Stream Deck Official documentation Elgato · accessed on

    The Stream Deck range's product page: a customisable button surface with its own software to automate actions and control applications. It explains the hardware's actual workflow before adding it to a control chain.

Review pending · software-version review · last technical review: 01/10/2026.