xo
v1.1.0Ableton Live extensions
xo extensions
Ableton extensions that are useful to me. I'm testing this mainly on my own material so use at your own risk!
Available Commands
All commands are available from the Ableton context menu for the matching object type.
AudioClip commands
Split at Warp Markers: Splits the selected clip in Arrangement view at each warp marker.Split at Grid: Splits the selected clip at each current grid line. The minimum supported grid size is 16th notes due to API clip-length limits.
AudioTrack commands
Sort Clips by Length: Reorders all clips on the selected track by clip duration and recreates them in sorted order.Rename Clips on Track: Renames each clip on the selected track to<track-name>-<index>with zero-padded numbering.Trim Clips to Grid: For clips longer than the current grid length, recreates them with the same start time and trims duration to exactly one grid unit.
Get Started
An Ableton Live extension built with @ableton-extensions/sdk.
Learn about building extensions: https://ableton.github.io/extensions-sdk/
Setup
The path to Ableton Live's Extension Host module is stored in .env as
EXTENSION_HOST_PATH. The generator filled this in for you; edit it if your
install moves.
Scripts
npm start # build + run in Live's Extension Host
npm run build # production bundle of src/extension.ts
npm run build:dev # dev bundle (sourcemaps, not minified)
npm run package # build for production + create a .ablx archive
Debug logging
To enable verbose troubleshooting logs for the split commands, run with:
XO_DEBUG_WARP_SPLIT=1 npm start
Releasing a new version
Use the release script to bump versions, sync manifest.json, build/package, commit, tag, and push tags.
# Bump patch version (1.1.0 -> 1.1.1)
npm run release -- patch
# Bump minor version (1.1.0 -> 1.2.0)
npm run release -- minor
# Bump major version (1.1.0 -> 2.0.0)
npm run release -- major
# Or set an explicit version
npm run release -- 1.2.3
# Preview steps without changing files/git
npm run release -- patch --dry-run
What npm run release -- <target> does:
- Runs
npm version <target> --no-git-tag-version(updatespackage.jsonandpackage-lock.json). - Runs
node scripts/sync-version.mjs(copies that version intomanifest.json). - Runs
npm run packageto build and create the.ablxarchive. - Runs
git add package.json package-lock.json manifest.json. - Commits with
git commit -m "release: v<version>". - Creates a git tag
v<version>. - Pushes tags with
git push --tags.
Use --dry-run (or -n) to print the exact commands and planned tag without modifying files, committing, tagging, or pushing.
If you also want to push the release commit to your branch:
git push
Rate this extension
One rating per account; you can change it any time.
Comments
No comments yet.