5 ms·
Ableton Extensions SDK
- moralestapia 4mo 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.
- Kye 4mo agoYou could already use Node through M4L. I'm not clear on what this adds that wasn't already possible.
- moralestapia 4mo agoThey made extensions first class, chose JavaScript as the primary language, and chose node.js as its runtime.
- wahnfrieden 4mo agoWorks for all tiers too
- nopayne 4mo agoWith M4L you need to implement your feature in a device and add it to your project. My Ableton project template has a bunch of these on my main track. With extensions you use a context menu as the entry point which will hopefully be more lightweight. Hopefully they'll expose more of the object model over time and let us trigger these via keyboard/midi shortcuts.
- coldtea 4mo agoM4L is basically a plugin sdk. It loads as a VST would (roughly), just with access to Ableton UI elements. Ableton Extentions if a first class api to Live, kind of like AppleScript.
- AaronAPU 4mo agoI would imagine nearly every programmer who has ever used a DAW has thought “this would be cool to have its own scripting language.” They already had Python. Mentioning an architecturally obvious idea in a job application is likely to read as insulting, because it presumes their engineers weren’t already aware of that possibility.
- moralestapia 4mo agoI'd love to read those cover letters then. Then I can make a meaningful comparison.
- embedding-shape 4mo ago> Mentioning an architecturally obvious idea in a job application is likely to read as insulting, because it presumes their engineers weren’t already aware of that possibility. That's a bit much no, why would it be insulting? "Great minds think alike" would be my reaction, instead of "Ew, duh, of course we thought of that, you think we stupid?".
- macscam 4mo agoThis 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!
- iainctduncan 4mo agoYeah, that was what got me into Live in the first place! Writing custom control surfaces in python from the reverse engineered stuff. Nice to see they have put out options they will officially support though. I do admire that instead of saying "no you can't" they just said "we know those open python example scripts our there and we won't comment on them". :-)
- iainctduncan 4mo agoFor 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 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)
- lukaszkorecki 4mo agoI need to check this out, I bounced off Max 3 times now because I find the GUI approach so tedious
- windowliker 4mo agoMax itself can be manipulated through JavaScript. You can dynamically create and connect objects in it, set scheduler tasks, etc. Max goes a lot deeper than wiring some GUI boxes together. Have a dig around here: https://docs.cycling74.com/apiref/js/ https://docs.cycling74.com/apiref/js/
- iainctduncan 4mo agoThere's a big caveat there though that is widely misunderstood. Max has separate scheduler and UI threads. JS only runs in the UI thread, and thus cannot be used for reliable timing tasks - timing will seem to be ok until there is load and than the UI thread timing is out the window. One of the main reasons I wrote Scheme for Max (S4M) was to enable tightly timed scripting. You can pick which thread an S4M instance runs in, and each instance is totally isolated, which is very different model from the Max js objects (including the new V8) one. Those are global and only in the UI thread. S4M works very well for this, I use it in Max for Live and can get it synchronized perfectly underload with other sequencers. I started scripting max with JS and built Scheme for Max after banging into its limitations. My typical workflow is a mix of Max, Csound in Max, Gen and Scheme, with the fast majority of the work happening in Scheme.
- abstractbill 4mo agoA 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!
- coldtea 4mo agoDon't kick yourself. It's not possible with Google Docs either. All these collaborative document editors have been mostly gimmicks/wastes of time.
- hammyhavoc 4mo agoI use Nextcloud Office all the time with others. Prior to that, we used OneDrive/Office and Google Drive. With tight deadlines, there frequently isn't the time to not be working concurrently on the same doc, especially when it comes to anything technical.
- DesaiAshu 4mo agoWe should talk - I'm building a new DAW with this in mind :)
- brookst 4mo agoWe should talk - I’m building a Claude Code plugin for music composition and analysis, which currently integrates with Ableton using MCP and Ableton control surface (basically LOM) and an M4L patch. But it could easily work with any DAW that has the right primitives.
- PaulDavisThe1st 4mo agohttps://github.com/Ardour/ardour/blob/master/libs/surfaces/mcp_http/README.md https://github.com/Ardour/ardour/blob/master/libs/surfaces/m...
- peteforde 4mo agoI'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.
- dumbdumb125 4mo agoi could see this being something that AI takes a bite out of in the coming years i've been making my own vst instruments and effects with faust, and codex knocks it out of the park; it's basically a trivial task the only problem is that i have to use software that's external to DAWs. it's only a matter of time before this is first class in DAWs
- brookst 4mo agoIMO it’s going to work the other way around. I’m doing my best composition ever using LLM coding tools that just use Ableton as a rendering engine.
- jmole 4mo agoThere is zero "secret sauce" in max for live. Ableton and Max are totally separate codebases, and "Max for Live" is just a ~VST interface between them. I do agree that "scriptable Ableton" would be far better for production and sound design than Max, because they make all the hard parts easy: MIDI, sequencing, mixing, etc. In Max, you have to build everything from scratch, every time.
- peteforde 4mo agoI think we're talking past each other. I don't own Max for Live. If I want to use it, I either need to upgrade to Ableton Suite for $500 or I need to upgrade to Standard and buy Max for Live separately (also $500). There's a huge ecosystem of tools that are implemented as Max for Live packages which I cannot access because I haven't paid the toll. I see that even this new Extensions SDK is only available to people who have paid for the full Suite edition. I'd describe that as a market opportunity.
- deleted 4mo ago[deleted]
- processing 4mo ago[flagged]
- bbgm 4mo agoSomewhat 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.
- henry28256 4mo agoI've used the same metaphor for AI tools. The incumbents keep adding features to the old paradigm (like Cubase did). Then someone comes along and rethinks the interaction model entirely (like Ableton with Session View). AI tools are in that transition moment right now — most are just adding AI to old workflows, not rethinking the workflow itself.
- SoleilAbsolu 4mo agoAlso the fact that Ableton has stayed independent (and bought Cycling '74, maker of Max/MSP) is IMO critical to their ongoing success...Compare to how Native Instruments and iZoptope are mere rent-seeking shadows of their founders' visions since PE/VC took over. One of the features that got me hooked on Ableton Live was how easy it was to do "analog style" audio recording of whatever you're hearing in realtime...not bounce, render, or sample to another device (it can do all of these too). For the master bus - just create an audio track, arm for recording and set input to "Resampling". Can do the same with any number of tracks/groups. This is critical to me for capturing ideas in realtime and continually reprocessing/resampling as I go. I was astonished when I first started making digital music 20 years ago that this isn't a standard feature in every DAW. Some DAWs (REAPER, Bitwig, AudioMulch) do this as easily, others (Logic, Reason) have workarounds.
- moralestapia 4mo agoNative Instruments is bankrupt, unfortunately.
- PaulDavisThe1st 4mo ago
- krrishd 4mo agoThis 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.
- maxaw 4mo agoYes! Glad to see someone else having this thought. Will be interesting to see how it plays out
- Lucasoato 4mo agoAmong 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.
- analogpixel 4mo agoWoot, javascript in live, now we can have supply chain attacks in our daws; yay.
- jrickert 4mo agoI 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-extension 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.
- embedding-shape 4mo agoThanks a bunch for the summary! Overall seems like a great start, very similar to how Figma got started, really aggressive sandboxing, then slowly they'll open it up as they explore the exact API surfaces. Gotta say, slightly sad about the global time signature not being available to get/set, when I read about the new SDK yesterday my mind immediately jumped to bunch of use cases which all use the global time signature :P Oh well, I'm sure it'll be available in the future.
- brookst 4mo agoThank you! If I’m reading your findings correctly, this is focused on UI capabilities, and likely rides on top of the existing Live Object Model (LOM) rather than a new integration. Which is a bummer, because LOM is fantastic for what it does, but has many many many frustrating gaps. Like, it cannot add devices to the master/main track. It can’t read MIDI pitch bend events, etc.
- honkycat 4mo agoI 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.
- tomduncalf 4mo agoFWIW you can bypass quite a lot of the Max visual stuff by using the JS support, which now finally supports modern JS (the v8 object). A lot of the LOM (Live API) is exposed there though you will no doubt need to use Max objects for some stuff. They also have web UI support with jweb. I get the frustration coming to Max as a regular developer, but actually when I bothered to learn it was one of the most rewarding uses of time and I find it really quite fun to work in (and frustrating sometimes of course! But the JS support helps). You just need to forget everything you know about programming lol
- windowliker 4mo agoThe visual patching part of Max makes sense when you know the history of the program. It was built for musicians working at the forefront of interfacing MIDI with the power of the more compact mainframe computers of the day (PDP-11 IIRC). The 'programming' was done through a GUI running on the first Macintosh. At first there was no audio processing in Max itself, it was purely for generating and manipulating MIDI data. You can see this 'bare-bones' style of Max with Miller Puckette's continuation of his original work in Pure Data[1] (aka Pd). The nice thing about Pd is that it's open source, so all the scheduling and signal flow logic can be examined and understood. As I understand it, the basics of Pd are comparable to how Max still works under the hood, though no doubt there has been some deviation over the years. As it is now, Max offers a very smooth interface to the basic paradigm that was established 40 years ago, with many modern advances, but the fundamental idea hasn't changed all that much since it first came out. If you really hate having to work through a GUI for computer music there's always SuperCollider[2] and its many derivatives (Sonic Pi, TidalCycles, etc.). It's nice to have options! [1] https://msp.ucsd.edu/software.html https://msp.ucsd.edu/software.html [2] https://supercollider.github.io/ https://supercollider.github.io/
- arikrahman 4mo agoWish 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 https://github.com/ArikRahman/Nixwig
- embedding-shape 4mo agoBitwig has native Linux builds though? Should be very easy, last time I tried it, it was literally click-and-play basically. Ableton is another beast altogether, and I've also been trying to get it running for years at this point, no end in sight. Last time I tried, after being recommended https://github.com/BEEFY-JOE/AbletonLiveOnLinux https://github.com/BEEFY-JOE/AbletonLiveOnLinux (now sadly archived), I managed to get the actual UI to render and be interactive, but still couldn't get proper audio to work with my interface, only software rendered audio, so the quest continues...
- arikrahman 4mo agoYes Bitwig is simple. Getting it to work on Nix took the slim layer I made.
- PaulDavisThe1st 4mo agoNo layer is needed. Bitwig is Linux native.
- arikrahman 4mo agoYes I'm glad Bitwig 6 finally hit Nixpkgs making it truly natively reproducible and easy to use.
- ano-ther 4mo agoFor the Push 3 standalone they have ported Live to Linux, but it’s confined to their own hardware. > The challenges were many: we had to create an operating system, we needed to deal with porting Live to Linux, we needed to deal with all the gory details of WiFi and authorization. https://www.ableton.com/en/blog/the-evolution-of-push/ https://www.ableton.com/en/blog/the-evolution-of-push/
- barcoder 4mo agoI'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://iwsdk.dev/ https://github.com/ideoforms/AbletonOSC https://github.com/ideoforms/AbletonOSC
- nedt 4mo agoThe 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.
- _def 4mo agoGot some links to the Move hacks?
- _def 4mo agoAnswering my own question: schwung.dev Also: yes, this SDK is a great interface for AI. It was trivial for Claude to quickly write a MCP extension. There is a lot of room to open up the API more and to save on tokens, but I already had fun sketching out new songs or open older projects with clips in session view and just tell Claude "create an arrangement out of them".
- nedt 4mo agoYes Schwung is now the best. There is also the extending-move repo on github which has some documentation in the wiki. From time to time I look into the Abelton move reddit.
- coldtea 4mo ago>The have it buried in the FAQ, but that's pretty much the interface for AI. Well, they have it buried because it's not "the interface for AI", it's a programming interface, that could have existed 5 and 10 years ago, pre-AI. And in other DAWs, it did. It just happens that a programmatic interface is also very usable as an AI target. But that's orthogonal.
- 4mo ago