VoidLinkAudio // Ableton Link Audio for Max/MSP and beyond (open-source, multi-host)

Julien Bayle's icon

Hi everyone,

I want to share VoidLinkAudio, a project we've been building at Structure Void over the past few weeks: an open-source multi-host integration of Ableton Link Audio.

The Max side gives you two MSP externals (void.linkaudio.send~ and void.linkaudio.receive~) packaged as a complete Max package with help patchers, refpages, and a vignette tooltip.

A note on context: I'm guessing Cycling '74 will release their own Link Audio Max package alongside Live 12.4 (May 5, 2026). We wanted to do some R&D of our own on this, exploring how the API behaves across very different hosts, what an open-source multi-host pattern looks like in practice, and how the timing primitives feel when exposed at audio rate vs as messages. The two efforts will coexist nicely, I think.

Thanks Peter for your CDM's post about it :

What I think might still be useful here:

Multi-host coverage in one project

The Max externals share a single C++ core (`LinkAudioManager`, ring buffer, threading model) that's also deployed across:

Pure Data vanilla 0.56-2+ / first public Pd implementation of Link Audio, to our knowledge

TouchDesigner / LinkAudioSend + LinkAudioReceive CHOPs

VCV Rack 2 / Send / Receive modules in the Structure Void browser category

openFrameworks / ofxAbletonLinkAudio addon in its own repo

VST3 / AU plugins for any DAW : here

So a Max patch can subscribe to a stem published by a Pd patch on another laptop, all in tempo with VCV running on a third machine. Single-machine inter-app routing also works (replaces BlackHole / Loopback / VB-Cable).

What's exposed in Max

Both objects expose Link timing as audio-rate signal outlets:

  • tempo~ — bpm as a signal

  • phase~ — beat phase (0..1, sample-accurate inside perform())

  • transport~ — transport state (0/1)

Plus R/W attributes for tempo and transport that propagate to all peers on the LAN. Change BPM in Max, every Link peer follows.

The signal-rate choice for outlets is deliberate: it lets you reset a phasor on phase wrap, scrub a sample by beat position, or modulate anything at audio rate from transport state — sub-block precision messages can't give you. Both objects also accept tempo/transport as input messages.

Builds

  • macOS Universal (arm64 + x86_64), Apple-notarized

  • Windows x64

  • Linux: planned for v0.3.0

Source and links

Disclaimer

Not endorsed, certified, or supported by Ableton or Cycling '74. "Ableton", "Live", "Link", "Max", and "Max for Live" are trademarks of their respective owners.

Bug reports, feedback, and questions about the Max integration specifically, very welcome here.

Cheers,

Julien

Ableton Certified Trainer · Max Certified Trainer

Julien Bayle's icon

Quick v0.3.0 update on VoidLinkAudio.

Linux support landed for VCV Rack 2 and Pure Data (x86_64 + ARM64). No change for Max users: Max stays Mac Universal + Windows x64, as before, since Cycling '74 doesn't ship Max for Linux.

Why mention it here: if you're running multi-host Link Audio sessions across machines, you can now have a Linux box in the mix as a VCV or Pd peer alongside your Max laptop. Same Link session, same sample-accurate sync, no driver and no virtual cable. Cross-platform Link Audio across Mac, Windows and Linux peers is now a thing.

Max/MSP and TouchDesigner remain Mac + Win only because neither Cycling '74 nor Derivative supports Linux on the editor side.

For those discovering the project, Peter Kirn's CDM coverage of the initial release:

Links:

Feedback and bug reports on the Max side still very welcome.

Cheers,

Julien