ablx.directory

Send Arrangement to Sulion

v0.0.0

Personal Ableton Live Extensions — small tools that run inside Live (Extensions SDK) and bridge it into the Sulion family of services.

Chris Arsenaultmanifest author: SulionNo ratings yet

Unverified listing. This repo is new or has little community activity and the developer has not claimed it. Extensions run code inside Live — read the source, check the author, and only install things you trust.

README · rendered from GitHubView source

ableton-extensions

Personal Ableton Live Extensions — small tools that run inside Live (Extensions SDK) and bridge it into the Sulion family of services.

First and reference extension: send-to-sulion — right-click a MIDI clip → render it to a .mid file and upload it to Sulion over an authenticated HTTP call.

Status

The shared library (config, note serialization, device-pairing auth, Sulion client) is real and unit-tested, and the SDK is pinned: send-to-sulion is wired against the real @ableton-extensions/sdk 1.0.0-beta.0 (vendored locally under vendor/), with a fake Extension Host test harness and error UX in place; typecheck + test + build are green. The send transport is mid-migration from the old notes-JSON endpoint to a .mid file upload (Sulion now takes files). For exactly where things stand and what's next, read docs/backlog.md; for the verified SDK API, docs/extensions-sdk.md. Verification inside Live 12.4.5 is deferred to a single final pass.

Requirements

  • Node.js 24.16.0 (the SDK's runtime; pinned in .nvmrc). This machine has Node 20 — use nvm use or install 24 before building extensions.
  • Ableton Live 12.4.5 Suite (public beta) to actually run an extension.

Layout

shared/                     @sulion-ableton/shared — reusable, SDK-independent logic
  src/config.ts             env-driven Sulion config (base URL, credentials path)
  src/notes.ts              canonical MIDI note wire shape + SDK-note adapter
  src/auth.ts               device-pairing flow + token cache
  src/sulion-client.ts      authenticated POST to Sulion ingest
packages/
  send-to-sulion/           the first extension
    manifest.json           Live extension manifest (real schema)
    src/index.ts            SDK-facing entry point — the only file touching the SDK
    src/capture.ts          host-agnostic orchestration (real, tested)
vendor/                     @ableton-extensions/{sdk,cli} tgz — closed beta, gitignored; supply locally (vendor/README.md)
docs/                       design + contracts (read these first)

Develop

nvm use                 # Node 24.16.0
npm install
npm run typecheck
npm test                # vitest — shared + package unit tests
npm run build           # bundle each extension's dist/index.js (esbuild)
npm run lint            # eslint
npm run ci              # typecheck + test + build + lint (the local gate)
npm run package         # build each extension's .ablx archive

CI runs the same gate (.github/workflows/ci.yml), but it can't install the closed-beta SDK from a fresh checkout, so it fails until the SDK is published — develop locally with npm run ci for now.

Config (set in your shell, or via with-cred in the managed Sulion PTY):

Env varDefaultPurpose
SULION_BASE_URLhttp://localhost:8080Sulion backend base URL
SULION_CONFIG_DIR~/.sulionWhere the device token is cached
SULION_CREDENTIALS_PATH$SULION_CONFIG_DIR/credentials.jsonOverride the exact token path

The Sulion boundary

This repo talks to Sulion only over device pairing and a file-upload endpoint. The contract lives in docs/sulion-api.md; the matching backend handlers live in the sulion repo (not here). Keep the contract doc authoritative for both sides.

Rate this extension

One rating per account; you can change it any time.

No ratings yet — be the first

Comments

Sign in to join the discussion.Sign in

No comments yet.