Ableton RC Surface v0.6.0 Source-available Independent · not affiliated with Ableton AG
1.0

Ableton
RC Surface

A phone browser, turned into a controller surface for Ableton Live. The surface is served from your own machine over local HTTPS; the phone connects to it over the same network. Nothing is installed on the phone.

Held in landscape. Seven pages, twelve pads, six knobs, six faders, two XY pads, three sensor inputs. This sheet is the operator's reference for build 0.6.0.

Version0.6.0
RequiresAbleton Live 12.4.5 or later, Suite edition
PhoneiOS 15.4+ Safari, or a modern Chromium browser on Android
HeldLandscape. Portrait is refused by the surface.
NetworkLocal HTTPS. LAN only. No internet needed.
LicencePolyForm Noncommercial 1.0.0, source-available
Sourcentworm.github.io/ableton-rc-surface
NoticeIndependent project. Not affiliated with Ableton AG.
1.1

The link — transport, ports and certificate

HostAbleton Live 12.4.5 Suite
BridgeRC Surface 0.6.0, running inside Live
ServedHTTPS, on a port the bridge picks automatically
SocketWSS, same port
CertificateSelf-signed, generated on first launch, current LAN IPs in the SAN list
OSC outUDP 11000
OSC inUDP 11001
SyncAbletonOSC, deep — optional, see 2.1
ReachOne local network. No outbound connections.

Requirements

  • Ableton Live 12.4.5 or later
  • Suite edition
  • A phone with a browser, held landscape
  • Both machines on one network
  • The local HTTPS certificate accepted once
  • AbletonOSC, only for Deep Sync

Control inventory is in 4.0. This section covers the connection only.

2.0

Signal chain — 4 nodes, 3 hops

┌─ NODE 0 ─────────────────────────────────┐
│ PHONE BROWSER          TOUCH IMU MIC CAM │◀─┐
│ PERF · MIX · SNP · SNS · AUD · VID · MAP │  │
└────────────────────┬─────────────────────┘  │
       HOP 1  ▼  HTTPS · LOCAL CA · WSS     
┌─ NODE 1 ─────────────────────────────────┐
│ RC SURFACE SERVER                 v0.6.0 │
│ SMOOTH · CURVE EVAL · MORPH · SNAPSHOT   │
└────────────────────┬─────────────────────┘
       HOP 2  ▼  OSC / UDP · 127.0.0.1:11000
┌─ NODE 2 ─────────────────────────────────┐
│ ABLETONOSC                 REMOTE SCRIPT │
│ UDP IN :11000       ·  UDP OUT :11001    │
└────────────────────┬─────────────────────┘
       HOP 3  ▼  LIVE OBJECT MODEL · IN PROC
┌─ NODE 3 ─────────────────────────────────┐
│ ABLETON LIVE 12.4.5                SUITE ├──┘
│ SESSION · DEVICES · MIXER · TRANSPORT    │
└──────────────────────────────────────────┘
▼ CONTROL, OUTBOUND      ◀ STATE, INBOUND

Both directions run at 30 Hz and both stay on the LAN. Outbound, a touch becomes a socket frame, the server resolves it against the curve and the current snapshot, and it leaves as OSC. Inbound carries tempo, beat and transport state, plus the current values of mapped parameters, so a fader moved in Live moves on the phone. Latency depends on router, distance, interference and host load, so no single figure applies. Measure on the target network before relying on it in performance.

2.1 · Clock source

ModeNeedsWhat you get
AbletonOSCAbletonOSCBeat-accurate. Transport metronome, subdivisions, swing, phase.
SDKnothingBPM simulator off Live's tempo. No beat phase.
FreenothingInternal clock. LFOs and stutters are not locked to Live’s tempo.

AbletonOSC is needed only for Deep Sync. Without it the surface still works — pads, knobs, faders, sensors, mapping and snapshots are unaffected. It installs separately, is added in Live as a Control Surface, and requires UDP 11000 out and 11001 in to be free.

Long-press SYNC on the phone for Deep Sync Settings: clock source, subdivisions, phase offsets, swing, and the shape used by LFOs and stutters. The header button itself only toggles SYNC and FREE; the three-state SYNCED / SDK / FREE readout lives inside the transport overlay behind TRN.

3.0

Surface map — fig. 1

Fig. 1 Handset in landscape — PERF page, the layout as built Scale none Proj. plan
PERF MIX SNP SNS AUD VID 120.0 BPM TRN MAP SYNC CALIBRATE STAGE ⚡ … OSC: SDK 1 8 9 2 4 5 6 7 PADS LFOS STUT UTIL 1 2 3 4 5 6 7 8 9 10 11 12 XY 1 0.50 / 0.50 XY 2 (Physics) 0.50 / 0.50 3 A B C D L1 L2 L3 L4 S1 S2 S3 S4 CAP OFF 1 EMPTY 2 EMPTY 3 EMPTY 4 EMPTY PLAN VIEW — DRAWN FOR THIS SHEET — NOT A SCREENSHOT — NOT TO SCALE
NRegionQtyWhat it is
1Page tabs6PERF, MIX, SNP, SNS, AUD, VID. MAP is the seventh page and opens over the current one.
2Pad grid12Four across, three down. Behaviour comes from the pad mode, not from the pad.
3Pad mode4A momentary, B hold, C toggle, D burst. Applies to all twelve pads at once. Carries no heading on screen.
4XY pads2Captioned XY 1 and XY 2 (Physics), each with a live 0.50 / 0.50 readout. Each axis maps on its own.
5LFOs4L1 to L4. Each toggle carries its own value bar.
6Stutters4S1 to S4. Rate and shape come from Deep Sync settings, not from the button.
7PERF UTIL6CAP captures, slots 1 to 4 recall, OFF exits. Six cells, two across.
8Live panel6BPM readout plus five buttons: previous locator, play and pause, next locator, TRN, MAP. Header, on every page.
9Sync block4SYNC, its settings gear, CALIBRATE, and STAGE. Header, on every page.
Plan view of the PERF page only. The other six pages are listed in 5.0. Drawn for this sheet: it is not a screenshot and carries no dimensional information. The surface refuses portrait: held upright it shows an orientation notice instead. All drawings here are landscape.
3.1

Detail — figs. 2 to 4

Fig. 2 · Pad matrix12
MODE A   PERF UTIL
┌──────┬──────┬──────┐
│ 1 ▓▓▓│ 2   │ 3 ▓▓ │
├──────┼──────┼──────┤
│ 4   │ 5 ▓▓▓▓│ 6   │
├──────┼──────┼──────┤
│ 7 ▓▓ │ 8   │ 9 ▓▓▓│
├──────┼──────┼──────┤
│10   │11   │12 ▓▓ │
└──────┴──────┴──────┘
A MOMENTARY  B HOLD
C TOGGLE     D BURST

Twelve pads. Four across, three down on the device; stacked here to fit the column. Bar levels are illustrative.

Fig. 3 · Fader bankMIX
MIX TAB        6 CH
 F1  F2  F3  F4
┌─┐ ┌─┐ ┌─┐ ┌─┐
││ ││ ││ ││
││ ││ ││ ││
││ ││ ││ ││
││ ││ ││ ││
└─┘ └─┘ └─┘ └─┘

KNOBS K1-K6 SHARE
THE SAME BANK AND
THE SAME MAP TABLE.

Six knobs, six faders. Both banks are on the MIX tab.

Fig. 4 · XY fieldPHYSICS
XY 2 (PHYSICS)
┌────────────────┐
│                │
│   ·            │
│    · ·         │
│       ·        │
│         ·     │
│                │
└───┴────┴───────┘
      0.50 / 0.50

X ▶ AXIS 1 MAPPING
Y ▶ AXIS 2 MAPPING
· TRAIL    HEAD

Two XY pads. Each axis maps on its own, so one gesture can drive two unrelated parameters. The second runs the physics model.

4.0

Control inventory — 18 rows

NModuleQtyPageSendsTarget in Live
00Performance pads12PERFMIDIClip, scene, or a trigger note
01Pad modes A–D4PERFlocalPad behaviour only
02XY pads2PERFOSCTwo parameters per pad
03LFOs L1–L44PERFOSCAny mapped parameter
04Stutters S1–S44PERFOSCAny mapped parameter
05PERF UTIL column6PERFlocalCAP, slots 1–4, OFF
06Knobs6MIXOSCDevice parameter
07Faders6MIXOSCTrack volume
08Morph slots8SNPOSCA whole controller state
09Transition time1SNPlocal0.1 s to 5.0 s, default 1.0 s
0AVector morph pad1SNPOSCBlends slots 1–4 by corner: TL TR BL BR
0BMotion6 axSNSOSCGX GY GZ, AX AY AZ
0COrientation3 axSNSOSCYaw, pitch, roll
0DAudio input1AUDOSCPitch, note, BPM, envelope, gate, clarity, bend
0ESingle-hand vision1VIDOSCOpen, fist, pinch, victory, fingers
0FMap picker1MAPlocalAssigns any row above
10Header live panel6headerOSCBPM, prev locator, play and pause, next locator, TRN, MAP
11Header sync block4headerOSCSYNC, settings, CALIBRATE, STAGE

Sends is the transport a row uses: OSC reaches Live through AbletonOSC, MIDI is a note the host receives, local never leaves the phone. Every OSC row is assigned in MAP mode — row 0F. Rows 10 and 11 sit in the header and are reachable from every page, which is why their Page column reads header rather than a tab.

4.2

The header — present on every page

BPM

Live's tempo, mirrored. Read-only.

Transport

Previous locator, play and pause, next locator. Controls Live's transport from the phone.

TRN

Full-screen overlay: PLAY, STOP, PREV, NEXT, REFRESH, a locator list and a search. Carries the SYNCED / SDK / FREE readout. Flashes green on beat 1, blue on the others.

MAP

Opens the mapping picker as an overlay on the current page. It has no tab of its own.

SYNC

A two-state toggle: the button itself reads SYNC or FREE. Long-press for Deep Sync Settings. See 2.1.

Settings

Opens Deep Sync Settings directly, without the long-press.

CALIBRATE

Re-zeroes motion and orientation to the phone’s current position.

STAGE

Locks the surface to the current page, preventing accidental page changes during performance.

Status

Link state and the phone's name. Tap to rename.

4.1

What each one does

Pads & PERF UTIL
Twelve pads with four behaviours — release, hold, toggle, burst — plus the PERF UTIL column: CAP to capture, direct snapshot slots 14 to recall, and OFF to exit. These four recall directly, without the transition applied to the SNP morph slots.
Knobs, faders, MIX
A mixer-style page for common Live controls, and a dedicated MIX tab on the phone with six mappable knobs and six mappable faders.
XY pads
Two-axis controls, typically assigned to filters, sends or macros. X and Y are exposed as separate mappable channels in the phone editor, so one gesture drives two unrelated parameters.
MAP mode
Select a highlighted control on the phone and bind it. The target picker is grouped by Song / Main / Master, normal tracks, return tracks, devices, and parameters. Tap Selected in Live to query the host and pre-fill the search.
Sensors
Motion, orientation, and microphone analysis are built in. Camera hand tracking is single-hand by design, with five built-in detectors: open, fist, pinch, victory, fingers.
Snapshots
Eight morphable slots for interpolating between controller states, plus the four direct capture and recall slots on the PERF UTIL column. Mapped Live values follow the transition while the morph runs. Transition time is adjustable from 0.1 s to 5.0 s.
MIDI trigger notes
Map a phone control to a note on a MIDI track. The bundled RC-Midi-Receiver.amxd is reused if it is already on the track, and falls back to manual insert on failure. Pads, LFOs, stutters, XY axes, knobs and faders all support trigger-note mappings.
TRN transport
A full-screen transport overlay reached from the header. Detailed in 4.2.
Deep Sync
Long-press SYNC for clock source, subdivisions, phase offsets, swing, and the shapes used by LFOs and stutters. See 2.1.
2D curve preview
The mapping editor includes a 2D response canvas with a live input-against-output dot, shown while adjusting range and curve. Idle value and per-control rate are configurable.
Local HTTPS
A self-signed certificate is generated on first launch so the phone browser will grant camera and microphone permissions. Current LAN IPs are written into the certificate's SAN list.
5.0

The seven pages — six tabs, plus MAP

TabPageWhat is on itRows
PERFPerformancePad grid, pad mode A–D, two XY pads, LFOS L1–L4, STUT S1–S4, PERF UTIL00–05
MIXMixerSix knobs, six faders06–07
SNPSnapshotsEight morph slots, capture and clear, transition time, morph mode, vector morph pad08–0A
SNSSensorsMotion GX GY GZ and AX AY AZ; orientation yaw, pitch, roll; local view0B–0C
AUDAudioPitch, note, BPM, envelope, gate, clarity, bend0D
VIDVisionCamera, confidence, learned poses G1–G3, built-in detectors, direct map0E
MAPMappingHierarchical picker. Overlays the current page; no tab of its own.0F
6.0

Where it fits

A controller surface for Live 12.4.5+ Suite, source-available under PolyForm Noncommercial 1.0.0. Intended for a local, auditable Live Extension workflow with mapping controlled from the phone.

FeatureAbleton RC SurfaceOther controller options
Install on phoneBrowser page served by the extensionUsually a native app or web app
CostSource-available for noncommercial useVaries by app
ProtocolLive's Extensions SDKOften OSC, MIDI, or a bridge app
Mapping workflowBinds parameters and trigger notes from the phoneDepends on each app
DAW supportLive 12.4.5+ Suite onlyOften broader DAW support
Phone sensorsMotion, mic analysis, optional camera trackingDepends on the app and platform
UpdatesManual .ablx releasesDepends on each release process
Source codeAvailable, PolyForm Noncommercial 1.0.0Varies by project
7.0

Installation — from download to a mapped parameter

Steps 01 to 03 establish the link shown in 2.0. Nothing responds until the phone is connected.

Clip 1 Install and first pairing, narrated mp4

Install the extension

Download Ableton-RC-Surface-0.6.0.ablx. Double-click it and Ableton Live prompts to install it under User Library / Extensions. Restart Live if it was already running.

If the Extensions menu does not appear, check that the Live 12.4.5+ Suite Extensions host is enabled, then restart Live.

Open the panel

Inside Live, open Extensions → Ableton RC Surface → Show panel. The panel shows a Performance QR code and the local connection status. The bridge picks an available port automatically, so the URL is not fixed between runs.

Connect the phone

Scan the Performance QR code. Accept the self-signed HTTPS certificate warning once. The QR encodes the current URL. Hold the phone in landscape; portrait shows an orientation notice instead of the surface.

Pick a pad mode

The twelve pads take their behaviour from the mode bar: A momentary, B hold, C toggle, D burst. Move between PERF, MIX, SNP, SNS, AUD and VID to reach performance controls, knobs and faders, snapshots, sensors, audio and vision.

Arm the sensors

Enable Motion and orientation, Audio microphone analysis, or Vision single-hand tracking as needed. The browser asks for permission locally. Raw camera and microphone streams are never sent anywhere — only numeric control values leave the phone.

Map a control to Live

Tap MAP on the phone, select a highlighted control, then bind it to a Live parameter or to a MIDI trigger note. The picker groups Song, Main and Master, normal tracks, return tracks, devices and parameters, so the target context stays visible. Trigger notes use the bundled RC-Midi-Receiver.amxd.

Optional: Deep Sync

Install AbletonOSC separately and add it in Live as a Control Surface, keeping UDP 11000 and 11001 free. Long-press SYNC on the phone to pick the clock source. Without it the surface runs on the SDK BPM simulator or its own internal clock — see 2.1.

8.0

Troubleshooting

Phone cannot find the host

Same Wi-Fi. Live allowed through the firewall. Rescan the current QR.

The port changes between runs, so an old URL will not work.

AbletonOSC not detected

Install it separately as a Live Control Surface.

Keep UDP 11000 and 11001 free. Only Deep Sync needs it.

Vision will not start

Accept the certificate, grant camera, reload.

All three are required, in that order.

Audio is silent

Grant microphone, then tap the audio control again.

Browsers require a user gesture before capture starts.

No Extensions menu in Live

Check the Live 12.4.5+ Suite Extensions host is enabled, then restart Live.

9.0

Frequently asked — setup, limits, privacy

Which Live versions?

12.4.5+ Suite (Beta).

It is built on Live's native Extensions SDK. Live 11 and standard editions have no Extensions host.

Android and iOS?

iOS 15.4+ Safari, or Chromium on Android.

iOS 14.5 and below cannot get past local self-signed certificate warnings.

Does it need internet?

No. Everything runs on your local network.

The MediaPipe hand-tracking runtime ships with the extension and is served locally.

Can I map from the phone?

Yes. MAP, pick a control, then Bind or Trigger Note.

The picker groups Song, Main and Master, tracks, returns, devices and parameters.

What about latency?

30 Hz both ways over local Wi-Fi. No universal number.

Router, distance, interference and host load all affect it. Measure on the target network.

Camera and microphone?

Processed inside the phone's browser. Never uploaded.

Only numeric control values reach Live, over the local WebSocket.

Official Ableton product?

No. Independent and source-available.

Not affiliated with, sponsored by, or endorsed by Ableton AG.

Is AbletonOSC required?

Only for Deep Sync.

Without it the controller runs on the SDK BPM simulator or its own internal clock.

How mature is it?

v0.6.0. tsc --noEmit clean; the production build produces a working .ablx.

Smoke-tested in Live 12.4.5+ Suite (Beta). Full validation on physical iOS and Android devices is outstanding.

10.0

Reference documents

Installation Guide
Setup for Windows and macOS, the local HTTPS warning, and first-run mapping checks.
Read INSTALL.md
User Manual
Pad modes, MAP mode, LFO and stutter controls, mixer pages, sensors, snapshot behaviour.
Read USER-GUIDE.md
Customization & Dev
Mobile mapping, target routing, trigger notes, extending scripts, adjusting the web interface.
Read CUSTOMIZATION.md
FAQ
Compatibility notes, diagnostics, and setup troubleshooting.
Read FAQ.md
Security Threat Model
Local network behaviour, HTTPS setup, WebSocket endpoints, current security assumptions.
Read SECURITY.md
Privacy Policy
Local media processing, where the hand-tracking runtime comes from, and zero telemetry.
Read PRIVACY.md
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░