Skip to main content

Write Ableton Live extensions in Python (via the Bridge).

Project description

ableton-extensions

Write Ableton Live extensions in Python, on top of Ableton's official Extensions SDK.

Add right-click menu actions, read and write the Live Set (tracks, clips, notes, scenes, devices, parameters, racks, take lanes, cue points), show modal dialogs and progress bars -- all from Python. When you are done, build a single .ablx that installs on Windows and macOS with no Python on the user's machine.

Beta. MIT-licensed. Not affiliated with or endorsed by Ableton AG.

Install

pip install ableton-extensions

Write an extension

from ableton_extensions import Extension, MidiClip

app = Extension("My Tool")

@app.context_menu("MidiClip", "Humanize")
def humanize(clip: MidiClip):
    notes = clip.notes
    for n in notes:
        n.velocity = max(1, min(127, (n.velocity or 100) + 5))
    clip.notes = notes

if __name__ == "__main__":
    app.run()

Develop, then ship

ableton-ext install-bridge     # writes a small bridge .ablx -- drag it into Live once
ableton-ext run my_ext.py      # fast loop: right-click a MIDI clip -> "Humanize"
ableton-ext build my_ext.py    # -> one universal .ablx (~6 MB) to give to users

Your user drags the built .ablx into Live -> Settings -> Extensions. No Python, no Node, no Developer Mode, no native binary -- the Python runs as WebAssembly inside Live, so the same file works on Windows, Intel Mac, and Apple Silicon.

Limits

Request/response only: no observers, no transport/playback, no automation; device parameter values are raw internal numbers. The SDK can only do what Ableton's official Extensions SDK exposes.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ableton_extensions-0.0.4-py3-none-any.whl (6.5 MB view details)

Uploaded Python 3

File details

Details for the file ableton_extensions-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ableton_extensions-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b8fccf7dc3e96f3e7cd57be8c206c0c788d0e85cc59fbf13b122eee2a9a53401
MD5 37ad096077f0d4d14c3fa1db72cce30f
BLAKE2b-256 df7cdbf3921bf78f382537d3f84bc8af880153479a188a0d447bf1fdfb23fff6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page