Ableton Extensions SDK

ableton.com

170 points by bennett_dev 2 days ago


jrickert - 2 days ago

I spent my day hacking on this to see what it’s capable of (built a simple little tool that displays MIDI clips as sheet music: https://github.com/madisonrickert/ableton-sheet-music-extens...)

My initial take on its strengths/weaknesses:

- Strong: Using the TS/JS ecosystem to render UI and tools

- Medium: Creating custom application windows in a web view. Window management features are pretty limited currently (can’t resize or render a native “close” button on the window chrome)

- Strong: Creating custom control panels for integrating with external services (like pushing and pulling audio clips or midi to/from an external service)

- Weak: Anything real-time, that’s still the domain of Max4Live or other control APIs, so don’t expect playback automation

- Medium: Tinkering with the Ableton project, clips, tracks, etc. API surface is still incomplete. Like I can read warp markers but not create them, for example. And I can’t access the global time signature settings.

The extensions are pretty aggressively sandboxed, and I appreciate that security consciousness in this season of the js ecosystem. It’s a hassle though if you want to save or load files outside of your little sandbox folder.

iainctduncan - 2 days ago

For people into this sort of thing, another option is using my foss Max extension, Scheme for Max, to script Live through the live API using Scheme. https://www.youtube.com/watch?v=j0sKBA-Pv2c&t=1s

The live object model is MUCH nicer to use in a lisp, as basically you do everything by making dynamic lists to represent what you want to access! There are examples in the Scheme for Max help file.

(Also, Scheme for Max can run in the scheduler thread, unlike JS in Max. Though of course calls to the Live API are deferred to the lower priority thread anyway)

bbgm - 2 days ago

Somewhat unrelated, but the number of times I have invoked Ableton as a metaphor of challenging the status quo is quite high. I was a Cubase user before Ableton showed up and completely upended the DAW world. And they've kept going.

This is just what I've been looking for. I never warmed to Max for Live for mods. But the extensions SDK I can get behind.

arikrahman - 2 days ago

Wish we could get some native compatiblity with Linux. The closest I've gotten on NixOS was with Bitwig, with a simple compatability script I wrote: https://github.com/ArikRahman/Nixwig

abstractbill - 2 days ago

A couple of times I've tried somewhat seriously to build "google docs for ableton" (meaning two people editing the same project on different computers, seeing each other's edits in realtime). Frustratingly I decided it was impossible to do a really good job of it back then. This sounds like it might finally make it doable!

peteforde - 2 days ago

I've often felt as though the way to make a DAW that competes with Ableton today would be to build the entire UI around composable scripted modules.

Far too much of Ableton's secret sauce is hidden away behind Max for Live and top-tier pricing only features. This is a great step in the right direction.

macscam - 2 days ago

This is great to see. Not widely known, but it's already been possible to write Python extensions for Ableton using the LOM, which I was doing via ClyphXPro. But this looks easier!

krrishd - 2 days ago

This is cool - feels great that there's a growing long-term incentive to implement open SDKs and APIs, for the sake of agent-forward prosumers, in the spirit of earlier internet stuff that used to do it but stopped.

nedt - 2 days ago

The have it buried in the FAQ, but that's pretty much the interface for AI. And a really good one. You can use it with just your old human intelligence, but then you can also get help if coding isn't your thing.

Biggest issue with having something so easy to work with is the huge amount of extensions we will be getting, which makes it harder to find the jewels.

Also wondering if we will get extensions for Abelton Move as well. There are already a couple of hacks that are adding functions that are running as a sidecar. This could give them an official API.

barcoder - 2 days ago

I've been experimenting with controlling Ableton with VR gestures. It's amazing how quickly I made a prototype using IWSDK and AbletonOSC.

Time to see what's possible with the new SDK.

https://iwsdk.dev/ https://github.com/ideoforms/AbletonOSC

Lucasoato - 2 days ago

Among the first examples they show Paulstretch for Live. I remember using Audacity to apply it in the past because it wasn't easily available in other DAWs :)

Try slowing the PSX opening sound by 5x to 10x, you won't regret it.

- 2 days ago
[deleted]
moralestapia - 2 days ago

>Extensions are built on the NodeJS platform, a free, open-source, cross-platform JavaScript runtime environment.

I applied for a job with them and proposed this exact thing about 8 years ago (got auto-rejected, I would've been very happy to work on it).

But I'm glad to see they finally did it.

honkycat - 2 days ago

I hate max so much. I wish this could extend to the push 3, I've been working on an orchid clone.

It would be TRIVIAL in any other language, but noooo, I have to write a fucking max patch and deal with their trash visual syntax and runtime.

processing - 2 days ago

[flagged]

analogpixel - 2 days ago

Woot, javascript in live, now we can have supply chain attacks in our daws; yay.