Releases: ntworm/rc-surface
Release list
RC Surface 1.0.0
RC Surface turns a phone browser into a performance, mix, mapping and sensor controller for Ableton Live 12. Nothing to install on the phone: open the panel in Live, scan the QR code, play. The host side is an Ableton Extensions SDK extension; the phone side is plain browser JavaScript served over your own Wi-Fi.
1.0.0 is the first release built and tested as a finished instrument, not a preview. Everything since 0.7.0 (2026-08-27) went into making the control path trustworthy: every write to Live goes through one measured, serialized lane per parameter; every modulator (LFO, stutter, pad envelope, snapshot morph) obeys the same tempo and the same ceiling; every control can be configured in place; and the whole thing was rehearsed on real hardware before this tag was cut.
Em português: Guia do usuário · Instalação · FAQ
Why this is 1.0
The write path is measured, not guessed. RC Surface writes to Live parameters through a single-flight actuator: one write in flight per target, the newest value always wins, no queue of stale positions behind a slow parameter. On the reference setup (Live 12.4 Beta, Windows 11) that lane sustains 48 writes per second per parameter (21 ms per completed write), and every LFO shape ceiling in the product is derived from that number: sine up to 4 Hz, triangle and ramps up to 3 Hz, square up to 12 Hz. Faster settings slow down by musical octaves instead of turning into noise, and the interface shows the effective rate. The same limit shapes stutters, pad envelopes and snapshot morphs, so nothing in the surface promises Live something it cannot record as automation.
One clock for every modulator. LFOs and stutters lock to Live's tempo through AbletonOSC when it is installed and fall back to the SDK clock or a free-running clock otherwise. Rate and subdivision changes keep the oscillator phase; Play, resume and seek re-align it to the beat. SYNC offers straight, triplet and dotted divisions from 8 beats down to 1/64, and Auto picks the subdivisions that are actually reachable at the current tempo.
Every control is configurable where it lives. Config Mode (CFG) gives each pad, knob, fader, toggle, stutter and XY pad its own overrides: mode, LFO shape, subdivision, swing, XY friction and bounce. Open CFG from the phone header, or right-click a control in the desktop client. Changing an LFO's shape while it runs is pushed to Live immediately. Long-press CFG to clear every override.
Rehearsed on hardware. The release candidate went through owner acceptance sessions on a phone and a desktop browser against Live 12.4 Beta: all six tabs, MAP, snapshots, transport, trigger notes and every LFO shape printed to Live automation. The bugs those sessions found are fixed in this build.
What changed since 0.7.0
Identity
- Renamed from "Ableton RC Surface" to RC Surface, following Ableton's branding and trademark guidelines for Extensions. Manifest, UI, documentation, landing page, kit and artifact names all changed.
- The data folder moved from
worm.ableton-rc-surfacetoworm.rc-surface. The release kit ships a migrator (Migrate-RC-Surface-Data.cmd/.ps1on Windows,Migrate RC Surface Data.commandon macOS) that copies your mappings, presets and certificates into the new folder without moving or overwriting anything.
Performance surface
- Config Mode (CFG) — per-control overrides for mode, LFO shape, subdivision, swing and XY physics, persisted per control; a clear-all gesture; CFG appears only on the tabs where it applies.
- LFOs — five shapes (sine, triangle, ramp up, ramp down, square) with a live waveform preview in the SYNC settings, per-shape ceilings, phase-preserving rate changes, slower subdivisions up to 8 beats, effective-rate readouts and beat re-alignment on Play.
- Stutters — horizontal drag sets the rate, vertical drag sets the depth, with a depth bar inside the gate; swing and ratchet aware; unsupported divisions are disabled by tempo instead of failing silently.
- Pads — mode D exposes its envelope in Deep Sync Settings: under SYNC the burst length comes from a subdivision grid and the attack is a percentage of it.
- XY pads — the physics puck no longer sticks in corners; friction and bounce are per-pad CFG settings.
- MIX — eight knobs and eight faders; faders move one finger pixel per thumb pixel regardless of screen height; double-tap or double-click resets a fader to unity (or centre for bipolar targets).
Mapping
- MAP on the phone — bind any control without leaving the surface: a hierarchical Song / Main / Track / Return / Device / Parameter picker with search, per-axis XY selection, presets, inline ranges and curves, and Trigger Note.
- Target Scale — Auto, Linear or Geometric conversion. Auto keeps mixer and tempo travel conservative and gives frequency and cutoff parameters musically useful sweeps; feedback applies the exact inverse, so pickup and the curve dot agree with Live.
- Every mapping family clamps and quantizes at Live's real boundary; removing a mapping cancels its unsent writes and releases held notes.
Snapshots
- The SNP tab is complete: capture, recall and clear slots; morph between them on a grid with a Free (seconds) or Sync (musical length) transition; or blend four slots at once with the XY vector, which applies instantly.
- Recalling a snapshot restores only what was captured — stutter depths that were zero stay zero.
Audio (AUD)
- Twelve mappable descriptors: transient, kick, snare, brightness, centroid, rolloff, flux, flatness, spread and low/mid/high bands. Kick and snare are attack-weighted spectral heuristics, each measured inside its own band against that band's recent energy, so a kick and a hat drive different controls.
- K-weighted loudness (ITU-R BS.1770-4): momentary, short-term and integrated, with the band controls mapped in LU and the gain knob acting as a dB offset.
- Continuous short-window capture through AudioWorklet with a labelled compatibility fallback; superseded values are discarded instead of replayed as stale attacks.
- A live 2.5-second signal timeline, grouped controls, browser audio-input selection with explicit failure and unplug feedback, and a contextual CALIBRATE that sets control gain from five seconds of you actually playing.
Vision (VID)
- Single-hand tracking with bundled MediaPipe Hands (no CDN, works offline).
- Only intentional inputs are exposed: direct X/Y/Z, four opt-in detectors, Victory rotation, Pinch Clutch X/Y/Z that holds its value between pinches and re-anchors after a brief release, and three numbered learned-pose slots.
- Learned poses are hand-specific: teach a pose with the hand you will perform it with. Recognition presets (Precision / Balanced / Flexible) and per-axis smoothing are exposed where they matter and hidden where they do not.
- Contextual CALIBRATE checks light and tracking and enables only the camera modes it could confirm; hand loss, camera stop and absent-hand cadence share one release contract.
Transport and sync
- Transport Lite over AbletonOSC: play/stop, previous/next locator, jump by name, a visual metronome on the TRN button (beat one green, other beats blue), and Deep Sync Settings for clock source, subdivisions, phase offset and swing.
- The link survives Live's own restarts: Live rebuilds the AbletonOSC control surface after a Set loads, which used to leave RC Surface with dead listeners; the extension now detects a quiet link and re-registers. It also stopped polling Live's selection twice a second, which had been filling the AbletonOSC log.
Max for Live devices
- RC-Midi-Receiver v2.2 — no network at all. Trigger notes travel through a versioned SDK parameter with ordered note on/off and captured releases; old UDP receivers are rejected instead of broadcasting. SDK Notes arms itself after the device finishes loading, after discarding anything the Set restored, so a pad plays without clicking the device first. Panic disarms until clicked.
- RC-Audio-Sender v2 — an actual Max audio effect with transparent stereo pass-through, feeding the Receiver over Max's internal bus as an explicit opt-in.
Desktop client
- The phone UI runs in a desktop browser with keyboard nudges on every continuous control, right-click CFG, and layouts that give the camera and the audio workspace real width. Use one controller at a time: phone or desktop.
Security
- LAN traffic is HTTPS/WSS only; plain HTTP is loopback-only for the Live panel.
- Controller and admin tokens rotate on every server start; a stale QR, cookie or open page cannot keep write access after a restart.
- The panel page, which embeds both tokens, is served only to the admin token; its assets stay public and token-free.
- Every registered command is authorized explicitly; WebSocket payloads and connections are bounded and heartbeat-reaped; shared surface history is capped; Live track and device names are inserted as text, closing an HTML-injection path.
- Diagnostics and request logs redact credentials; CI runs with read-only tokens and every third-party Action is pinned to a commit.
- The Ableton Extensions SDK and CLI tarballs are no longer part of the repository;
vendor/README.mdexplains how to obtain and verify them.
Documentation
- Landing page with a plan view of every tab, a "New in 1.0" card and bilingual copy; a User Guide (EN and pt-BR) with a new Config Mode chapter; Install, FAQ, Security, Privacy, Compatibility and Customization guides in both languages.
Removed
- Follow Detected Note, the tonal DSP controls, the velocity editor and Audio Lab (unreliable musical results); the native Max LFO experiment; t...
Ableton RC Surface v0.6.0
Ableton RC Surface v0.6.0
Consolidated source release — 2026-08-14.
Highlights
- Phone performance surface with PERF, MIX, snapshots, sensors, audio and
single-hand Vision pages. - Mobile MAP mode for Ableton Live parameters and MIDI trigger notes.
- Transport overlay and optional AbletonOSC Deep Sync.
- Safe-input takeover and loss recovery for continuous controls.
- Per-set
.rcsurfaceprofiles, import/export and local mapping presets. - Controller/admin session roles, rotating tokens, same-origin checks,
bounded WebSocket traffic and multi-phone session isolation. - Atomic mapping/profile persistence with rollback and serialized mutations.
Install
- Download
Ableton-RC-Surface-0.6.0.ablx. - Double-click it and confirm installation in Ableton Live 12.4.5+ Suite.
- Open Extensions → Ableton RC Surface → Show panel.
- Scan the Performance QR code and keep that controller URL private.
MIDI trigger notes require the included RC-Midi-Receiver.amxd in the Ableton
User Library. AbletonOSC is optional and required only for Deep Sync and
locator transport.
Validation
- Node.js 24.16.0 / npm 11.13.0.
- 327 static tests, 263 backend tests and 16 Playwright desktop/mobile tests.
- TypeScript, ESLint and production build pass.
- Dependency audit: 0 known vulnerabilities.
- Package SHA-256:
8BE4B74E83DE79E7DC0B8F4563B7E3E3DDFC3558BA2BC0B6403E17F1719C6B56.
Final acceptance in Ableton Live and on the intended phone hardware remains a
manual performance check.
Ableton RC Surface v0.5.9
Ableton RC Surface v0.5.9
Note
This is an archived historical milestone. Version 0.6.0 is the current supported release.
Connection, layout, and sensor finalization milestone sourced from the verified pre-0.6.0 stabilization snapshot.
Ableton RC Surface v0.5.8.4
Ableton RC Surface v0.5.8.4
Note
This is an archived historical milestone. Version 0.6.0 is the current supported release.
Audio analysis and Stage mode stability milestone optimizing continuous control processing and live performance views.
Ableton RC Surface v0.5.7
Ableton RC Surface v0.5.7
Note
This is an archived historical milestone. Version 0.6.0 is the current supported release.
Consolidated Ableton RC Surface milestone introducing dedicated controller surface layouts, mapping profiles, and responsive performance controls.
Ableton RC Bridge v0.5.0
Ableton RC Bridge v0.5.0
Note
This is an archived historical milestone. Version 0.6.0 is the current supported release.
Modular backend architecture milestone restructuring service boundaries, WebSocket routing, and extension lifecycle management. Source archive only; no historical package is attached.
Ableton RC Bridge v0.4.28
Ableton RC Bridge v0.4.28
Note
This is an archived historical milestone. Version 0.6.0 is the current supported release.
Sensor mapping stabilization milestone improving motion processing and input responsiveness. Source archive only; no historical package is attached.
Ableton RC Bridge v0.4.16
Ableton RC Bridge v0.4.16
Note
This is an archived historical milestone. Version 0.6.0 is the current supported release.
Mobile HTTPS milestone introducing local secure transport and responsive mobile interface support. Source archive only; no historical package is attached.
Ableton RC Bridge v0.2.0
Ableton RC Bridge v0.2.0
Note
This is an archived historical milestone. Version 0.6.0 is the current supported release.
Initial project milestone: Ableton RC Bridge extension providing baseline connection between browser interfaces and Ableton Live.