← Back

ofxAbletonLinkKit

github.com/ofxyz/ofxAbletonLinkKit · @ofxyz
OF 0.12 Sound Bridges

Purr in sync

0 0 Last commit 2mo ago Created 2mo ago

README

ofxAbletonLinkKit



Header-only ofxKit bridge for network tempo and transport sync via Ableton Link.

This addon wraps ofxAbletonLink — the openFrameworks binding for the Link SDK — and connects it to the shared ofxEnTTKit music ECS (ecs::clock_component, ecs::transport_control_component). It also registers a Link Sync ImGui window through ofxKit.

Quick start



#include "ofxAbletonLinkKit.h"

ofxAbletonLinkKit linkKit;

void ofApp::setup() {
    linkKit.setup(120.0);
    linkKit.setEnabled(true);
    linkKit.registerWithRuntime();  // View → Link Sync
}

void ofApp::update() {
    linkKit.update(ofGetLastFrameTime());
}


Open View → Link Sync to enable Link, see peer count, adjust BPM and quantum, and toggle start/stop sync.

How it works



Each frame, when Link is enabled, ofxAbletonLinkKit::update():

1. Polls ofxAbletonLink::update() for session beat, phase, tempo, and play state. 2. Writes beat/phase/BPM into every ecs::clock_component with externalSync = true. 3. Optionally mirrors Link play/stop into all ecs::transport_control_component entities when start/stop sync is on.

Sequencers and other systems that read the ECS clock (for example triggermachine::EcsBridge or triggermachine::LinkSync in ofxTriggerMachine) stay locked to the same network beat without each app reimplementing Link polling.

To opt a clock into Link sync, set externalSync = true on its ecs::clock_component, or use Sync all in the Link Sync window.

API highlights



MethodPurpose
setup(bpm)Initialise Link at a starting tempo
registerWithRuntime()Add the Link Sync panel to ofxKit
update(dt)Poll Link and drive synced ECS clocks
setEnabled(bool)Turn Link session participation on/off
link()Direct access to the underlying ofxAbletonLink instance
peers()Number of other Link peers on the network

License



Follows the licenses of ofxAbletonLink (GPL) and the Link SDK. See the ofxAbletonLink repository for details.

Get this addon

HTTPS
SSH