I've been reverse engineering Ableton Live's internals

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

Reverse engineering Ableton Live 12 - what would you change?

I've been spending the last month reverse engineering Ableton Live 12 on Windows. Not the scripting API, not Max for Live, the actual application. The C++ code, the internal objects, the resource packages, everything.

At this point I have injected a DLL that runs inside Live's process with access to the app singleton, internal functions, the full object hierarchy, and vtable calls. I can call the same functions Ableton's own code calls. I also decoded the .alp resource packages: the GUI layouts (GUI.alp), the graphics(Graphics.alp) , and the language files (Languages.alp) .

To give you an idea of what this means in practice, here's what's working right now:
  • I can call any internal function, the same ones Live uses to create views, look up slots, toggle visibility, build the second window
  • I dumped the entire UI tree, 16000 nodes, every named panel, button, splitter, meter in the app
  • I can read and write to internal objects at runtime: flags, properties, state
  • The .alp files give me the XML that defines every view layout, every skin graphic, and every localized string. I can modify these or add new ones
This isn't just about moving panels around. Having access to the internal function table and object model means you can potentially hook into or extend almost any behavior in the application. Think about what that could mean: new features, fixed annoyances, workflow tools that operate at the native level instead of fighting Max for Live or Remote Scripts limitations.

I'm curious what you guys would actually want out of something like this. Not just UI stuff, anything. What has Ableton refused to implement that drives you insane? What's broken? What's missing? What would make Live actually perfect for your workflow?

Some areas I know are reachable: UI layout and panels, transport and playback behavior, view management, the slot/content system, toolbar and controls, localization. Probably more once I dig further into the vtables.

Anything goes. So what's the one thing you'd fix or add to Live if you could?


Small progress update.

Got a custom overlay rendering directly inside Live's window showing real-time stats like sample rate, buffer size, thread count, and audio engine ticks. Also injected a custom TEST button into Live's own toolbar. All running from inside the process. More to come.

Image
Last edited by xterminatorapps on Sun Feb 22, 2026 2:45 pm, edited 1 time in total.

Post

funnily enough i just suggested some stuff to someone else, but its unreachable from M4L.

basically presets for all sorts of configuration stuff like

midi mapping setup
control surface setups
Default Set presets and management (instead of a single DS, inherit from multiple .als files including multiple instances of tracks/groups saved as .als)
presets for sets of device defaults (ie what's in User Library/Defaults)
browser tag database management (for sharing across machines)
dummy clip presets and management
on-the-fly swapping between core folder setups (eg User Library, Packs maybe even Plugins folders)
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post

Midi preview, let me browse through midi files and play them back through the selected track's instrument, instead of a sine wave like it currently does.

Post

whyterabbyt wrote: Fri Feb 20, 2026 1:04 pm funnily enough i just suggested some stuff to someone else, but its unreachable from M4L.

basically presets for all sorts of configuration stuff like

midi mapping setup
control surface setups
Default Set presets and management (instead of a single DS, inherit from multiple .als files including multiple instances of tracks/groups saved as .als)
presets for sets of device defaults (ie what's in User Library/Defaults)
browser tag database management (for sharing across machines)
dummy clip presets and management
on-the-fly swapping between core folder setups (eg User Library, Packs maybe even Plugins folders)
This is exactly the kind of stuff I'm looking at. You're right, M4L can't touch any of that because it's all handled at the native C++ level, not through the scripting API.

MIDI mapping and control surface setups are stored as internal state on objects I already have access to. In theory you could snapshot and restore those configurations. Same with device defaults — it's all in the user library folder structure but the actual binding between "this is the default compressor preset" and the browser lookup happens internally.

Browser tag database is interesting, I've already decoded the browser tree structure so that's definitely on the radar.

No promises on timeline but this list is gold, saving it.

Post

mrcleats wrote: Fri Feb 20, 2026 1:09 pm Midi preview, let me browse through midi files and play them back through the selected track's instrument, instead of a sine wave like it currently does.
That's an interesting one. The MIDI preview going through a sine wave is such a weird design choice considering the instrument is right there on the track.

I haven't dug into the audio preview/playback routing yet, my work so far has been focused on the UI and view system. But I know the preview player is a separate internal object — it would be a matter of finding where it picks its output (the sine generator) and rerouting it through the selected track's instrument chain instead.

Definitely adding this to the list, it would be a massive workflow improvement for anyone browsing MIDI files.

Post

Play from last locate position disregarding the selected clip
Multi clip selection, trim and fade

Post

I want Bars 'n Pipes type piano roll features.
I know we're almost there but being able to draw patterns and automation with a modular framework system effecting the output of the mouse pointer is just so amazing

Post

Sounds really cool. I’d love to see how you do this. Is it on GitHub?

Post

andypryce wrote: Fri Feb 20, 2026 7:20 pm Play from last locate position disregarding the selected clip
Multi clip selection, trim and fade
totally agree, having it jump to the clip instead of where you left off is annoying. That's on the list.
Multi clip selection with trim and fade would be huge. I'll look into it.

Post

Ben.juodvalkis wrote: Sat Feb 21, 2026 2:57 am Sounds really cool. I’d love to see how you do this. Is it on GitHub?
Thanks! Not on GitHub yet , still in the early stages and a lot of it is messy research. Once things are more stable and documented I'd love to share it. Stay tuned :D

Post

Can you put this on git hub?
This actually goes against the End User License Agreement. I personally don't see a problem with you doing this and I think it should be allowed, but software that is not open source is extremely strict about this.
If you were to put this online I imagine there would be some legal issues with it.

Post

Does this update the currently opened set as you're using it, or does it just configure things for the next time you open it?

Post

A rectangle selection tool for automation points.
Automatic simplifying of drawn in curves.
Pianoroll enhanced with normal MIDI note tools like "octave up" etc. :lol:
Soft Knees - Live 12, Diva, Omnisphere, Slate Digital VSX, TDR, Kush Audio, U-He, PA, Valhalla, Fuse, Pulsar AUDIO, NI, OekSound etc. on Win11Pro R7950X & RME AiO Pro
https://www.youtube.com/@softknees/videos Music & Demoscene

Post

Nathanananan wrote: Sat Feb 21, 2026 8:14 pm Can you put this on git hub?
This actually goes against the End User License Agreement. I personally don't see a problem with you doing this and I think it should be allowed, but software that is not open source is extremely strict about this.
If you were to put this online I imagine there would be some legal issues with it.
Maybe not on GitHub, since it's American, but on a European website, surely. EULAs are mostly void in the EU.

Post

Ghost/mirrored midi clips. Been requested for years, the devs "don't see the point".

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”