PLAY × LIVE / EXPERIMENTAL COMPANION
One clock.
Two playgrounds.
Audition Play alongside Live. Capture the notes. Keep the groove.
A small native companion joins the local Ableton Link session and shares its beat clock with your browser. Play follows tempo and launches on the next four-beat boundary. Live remains in charge.
Connect an iPhone or iPad / scan and play
Companion 0.3.4 sends notes and chord pressure as polyphonic aftertouch over all 16 MIDI channels to the native Spectrascope MIDI input in Live. No certificates, address entry or IAC bus are needed. The Mac setup currently requires Node and a browser window; a signed Mac application is still planned.
- On the Mac, download and unzip the source package. In its folder run:
npm ci
npm run build:midi
npm run start:pair- Open http://127.0.0.1:17899/ in Chrome on the Mac. Keep that window open and click Create pairing QR.
- Put your iPhone or iPad on the same Wi-Fi as the Mac. Scan the QR with its Camera, open Play in Safari, and tap Connect Mac. Click the highlighted Approve connection button on the Mac. Older companion versions label it Approve iPad connection. MIDI enables after a short clock measurement.
- Enable Link and Start Stop Sync in Live to follow its tempo and transport. In Live enable Track for the Spectrascope MIDI input. Set instrument tracks to channel 1 chords, channel 2 bass, channel 10 drums. Monitor In, or Auto and arm. Then tap Test MIDI connection in Play. Use Link for tempo; leave MIDI Sync off for this port. To hear the pressure changes, use an instrument that responds to polyphonic aftertouch.
QR invitations expire after 60 minutes for initial approval. Approved sessions can reconnect for 12 hours without rescanning; Disconnect / clear notes revokes the session. After reloading or returning to Play, tap Reconnect Mac. Approval is retained in this tab until Disconnect or session expiry. Keep the Mac companion window and Play open on your iPhone or iPad. The direct, encrypted WebRTC connection carries notes; our online service exchanges only temporary connection details. Cloudflare STUN assists discovery. This prototype has no relay fallback for restricted networks. Test MIDI delivery and audible alignment on your device before recording. No signed installer or unattended background operation is promised yet.
Advanced / desktop clock-only mode
- Enable Link in Live first, so the companion joins Live's existing tempo session. Link is peer-to-peer, not a fixed master/slave clock; the first peer establishes the initial session tempo.
- Install Node.js 22 or newer and Apple's Xcode Command Line Tools. This download contains source, not a signed Mac application.
- Unzip, open Terminal in the extracted folder and run:
npm ci
npm startThe native addon builds locally. The terminal prints a fresh pairing code; leave it running. Ctrl+C stops it. It listens only on this Mac's loopback address. No login item or firewall change is needed.
02 / Pair and play
- Enable Link in Live. Keep the computer on the same network as other Link peers.
- Open Play in desktop Chrome. Expand ABLETON / Link + MIDI below the transport, paste the companion code and click Connect Link. If Chrome requests local-network access for this site, allow it only if you trust this connection.
- Wait for LINKED and a nonzero peer count, then press Play scene or Play song. Launch is aligned to the next four-beat boundary, not Live's arrangement position.
- Enable Live's Start Stop Sync. Play follows tempo and Live starts automatically after pairing. Connecting unlocks browser audio; browser buttons never control Live. Use Live start event · beat 1 as the bar reference when following Live from its beginning. This uses the native transport timestamp, not browser message arrival. Restart the updated companion, re-pair, then Stop and Start Live on beat 1. Link does not transmit Live’s song position; choose Shared Link phase to use its continuous four-beat grid instead. Choose Live start · no extra bar wait to follow the transport timestamp, or choose a safe-bar wait to deliberately launch later. Late transport delivery catches up rather than adding a bar; notes whose time has already passed cannot be recovered. These waits are separate from recording count-in. Enable Stop / reset Play when Live stops to follow Stop too; leave it off for independent playback.
Supported Play tempo: 40–180 BPM, four-beat quantum. Keep the tab foreground. Browser output latency is compensated using the audio output timestamp where supported. Manual Play shows a queued message until the next Link bar. The timing-offset slider adds compensation by ear for remaining routing latency (positive delays, negative advances); changes apply during playback without stopping. If Link drops out during playback, Play continues at its last known tempo and shows a warning. Stop in Play always ends playback; Live Stop also does so when its follow option is enabled.
03 / Record MIDI into Live
- In macOS Audio MIDI Setup → MIDI Studio → IAC Driver, enable the device and create dedicated buses for Play.
- After pairing, Play automatically enables MIDI and restores valid saved routes or selects a single identifiable IAC bus. If several buses are available, select the intended routes. With the QR companion, routing to Spectrascope MIDI is automatic and no IAC bus is needed.
- In Live's MIDI settings enable Track for those inputs. Leave Sync off: Link already supplies timing. Choose the bus and channel on each MIDI track, arm and record.
Chords use channel 1, bass channel 2, drums channel 10. One bus is fine if tracks filter channels. Use dedicated buses to avoid feedback and accidental triggering elsewhere. Performed probability/Alternate results become real notes; synth patches, slides and parameter automation are not MIDI CC/pitch-bend streams. Stop clears queued notes and sends panic messages.
04 / Record audio directly
- Install BlackHole 2ch on your Mac separately. No driver is installed by this website.
- In Play expand ABLETON / Link + MIDI → AUDIO / Route Play to Live. Use Choose audio output, or Refresh outputs and select BlackHole 2ch. This changes only Play’s output; Link need not be connected.
- If your browser has no speaker chooser and shows only the default output, Allow device discovery requests microphone permission briefly to reveal devices. The input stream is immediately stopped; no microphone audio is connected, recorded or sent.
- In Live choose BlackHole 2ch as audio input. Add an audio track, select Ext. In → 1/2, arm it, set Monitor to Auto while armed (or In), and record.
- Keep Live’s audio output on headphones or your audio interface—not BlackHole—to prevent feedback. Listen through Live only. Choose Use system default to restore Play’s normal output.
Switching outputs stops Play; tap Play to relaunch with the new output latency. Device choices are not saved. Unsupported browsers must use macOS system audio routing instead. Capture is the stereo master mix, including sound and mix automation, not separate live stems. BlackHole’s Live recording guide ↗
The companion shares timing, not audio; it does not implement Link Audio. Existing WAV/stem downloads remain available. Actual BlackHole capture still requires a driver/routing test on your machine.
Clock interruptions and timing
The panel now distinguishes No Link peers, Link clock updates delayed and a clock phase reset. While Play is running, a clock interruption shows a warning and continues at the last known Link tempo. Live stop resets Play when Stop / reset Play when Live stops is enabled. Repeated start events do not restart an already playing sequence. The bar origin stays fixed for that run. Reload Play for the clock stability fix; restart the companion to update its native-to-browser beat conversion.
Timing offset applies to browser audio and MIDI together. Compare one sound path at a time: Live instruments receiving MIDI can add their own monitoring and plugin delay. Enabling both browser drums and a Live drum instrument can double the attacks. The panel shows the browser-reported output delay; it cannot measure the extra Live path.
Keep your setup through a reload
Tempo and Live-start follow are automatic. Timing offset and MIDI route choices are retained in this tab’s session storage. Approved QR sessions are remembered automatically for up to 12 hours; return or reload and tap Reconnect Mac without rescanning. The following manual-code option applies only to the older clock-only connection: Enable Remember pairing through reloads in this tab to retain a successfully paired code too. After reloading, click Reconnect Link to unlock browser audio and measure a fresh clock. MIDI is configured automatically after reconnection; a browser permission retry appears only when needed. Nothing connects or starts playing merely because the page reloads.
Disconnect clears the remembered pairing code. Closing the tab normally ends its stored setup; browser session recovery may restore it. Restarting the companion creates a new code. Audio output device and BlackHole layout still need selecting in the audio-routing panel.
Experimental, not magic
WebSocket snapshots estimate the native clock; audio and MIDI are scheduled ahead, not fired on message arrival. Existing 90 ms lookahead cannot retime notes already queued during tempo changes. Audible sample-accurate sync and long performance sessions are not certified; test your own routing before a set. The original desktop Web MIDI path still requires a compatible browser. iPhone and iPad network MIDI is experimental; background playback is not supported.
The companion verifies the browser origin, requires an ephemeral pairing code, accepts read-only clock requests in the default loopback mode, and additionally accepts validated MIDI in the opt-in native MIDI mode. It never writes Live tempo/transport. Do not expose ports 17896 or 17897 publicly or paste the code into another site. If your browser blocks loopback WebSockets, use a supported desktop browser; do not bypass security warnings.
Source and tests are included in the download. Wrapper dependencies are pinned; the native wrapper is MIT and its embedded Ableton Link SDK is GPLv2+ / commercially dual-licensed. Companion source is GPL-3.0-only. Ableton Live is not included.