LAST UPDATES: 22nd August 2021

Live 11 MIDI Remote Python Scripts Sources uncompiled : github
Live 11 API Documentation : here

Live 10.1 MIDI Remote Python Scripts Sources uncompiled : github
Live 10.1.19 API Documentation : here




What are Python MIDI Remote Scripts ?

How to use hacked Python MIDI Remote Scripts in Live 9 ?

MIDI Remote Scripts Python Sources and docs

Specific section about PUSH

Live API 9.0

ALL Python _Framework and more documentations <<<<<<< NEW

Max for Live Book Julien Bayle

What are Python MIDI Remote Scripts ?

For instance, the Ableton Push Live Port you can see when you is used directly by some python scripts inside Live folders hierarchy.

A specific page about the PUSH is here: https://structure-void.com/ableton-live-push/

Basically, there are scripts related to each control surface (=controller) and that we can choose in Live preferences.
Let’s check at first these folders and scripts:

In Live preferences, we can see those control surfaces available:

Ableton Control Surfaces Remote Scripts Hack

That is strangely similar to folders isn’t it ? Of course.

Basically, these scripts (coded in Python language) configure our remote control surfaces directly with Live.
It provides a way to avoid any configuration steps and especially, provides nice way to control Live and get feedback from it on a VERY efficient way.

For instance, the clip grid can be observed permanently, and as soon as you add a clip, the Python script detects that and fire a message. That message can be anything, even OSC messages, sysex or whatever else (LiveOSC python hacks still work…). This was/is a nice way provided to constructors of MIDI controller for making their own code to directly connect the gear and have ALL configured without doing anything.

Python source codes aren’t available (officially). We only have those .pyc which are bytecode. This is a kind of  binary pre-compiled (this is not a compilation actually, I know that, mate)
You write a python code, you run it, the bytecode is created and run.
We would have to decompyle those .pyc in order to modify … for instance the step sequencer of the Push, or the way the piano roll grid works etc.

YES: Those python scripts ARE the brain. The device is amazingly genius, cute etc.. but the smart part is those scripts.
I already wrote about that concept of interaction design in my free ebook named The 6 rules to design the best user interfaces and available here

That means if you followed me correctly that we could create many other kind of features using those scripts and play with the PUSH in MANY other ways.
I have no information about Ableton delivering that officially. But, as Robert Henke said to me one day (the only one) I met him: “we know that you know those scripts are available, use them”

So, I decided myself to decompile all these native scripts and also those you can have used from other constructors.
If you ask politely, I can decompile them for you and publish them here.

How to use hacked Python MIDI Remote Scripts in Live 9 ?

Here is a VERY short tutorial about the How-To side of things.

A preferred solution is to go there: https://github.com/gluon/AbletonLive9_RemoteScripts and to clone the repository on your own hard drive.
On OSX, you have to type in a Terminal : git clone https://github.com/gluon/AbletonLive9_RemoteScripts
On Windows, please check that too.

As soon as you have the whole folders, I’d suggest you to backup your native files:
On OSX, backup the whole folder “/Applications/Ableton Live 9 Beta.app/Contents/App-Resources/MIDI Remote Scripts/”
On Win, backup the whole folder “C:\Program Files\Ableton\Live x.x.x\Resources\MIDI Remote Scripts”

Then copy paste all the folders included the zip you downloaded (or in your cloned folder on your disk)

NB: all *.pyc are “just” bytecode (=binaries= a bit like executables) of *.py which are the sources.

When you start Live, it compiles all __init__.py in all folders if they don’t already exist.
Then, when you choose a remote surface in Preferences / MIDI Sync, Live compiles all the corresponding *.py
BECAREFUL, even if we can read the opposite, sometimes it doesn’t and if you made a modification in you *.py sources files, removing the *.pyc and restart Live is good because it forces the recompilation.

Ableton Control Surfaces Remote Scripts Hack

Basically, you modify the scripts, you test them, you enjoy.
It requires to know python language and how the Live Python API is designed too.
ALL informations are and will be updated here: https://structure-void.com/ableton-live-push

Some people asked me why I should use them because we had Max for Live. Indeed, I am myself a lot involved in Max6 framework works.
But here are 2 reasons:
– I always want to have alternative and Python stuff is nice when you want to design by building-over already existing things. Especially with the PUSH scripts that I want to alter only, not to redesign from scratch
– Understanding things is every time interesting

BUT please keep in mind:

This website is more about my art. But finally, sometimes and often, my art is hacking too.

Thus, I decided to put here in a post all the sources of Ableton Live MIDI Remote Scripts you ever need.
It is more support/maintainable for me.

But please, keep these 3 rules in mind:
– I won’t fix or whatever your own scripts here. I’m just the python decompiler here.
– I’m not responsible of any of your problems with these scripts. You use them at your own risk
– I cannot guarantee any timing. Don’t try to ask me to make things faster, I won’t, except if you have a big check with many zeros.

I’m more a digital artist than anything else and my real activity is: creating my own art not to freely help the whole world.


Ableton Live 9 MIDI Remote Scripts Python Sources and documentations

If you don’t know how to use these scripts, please read the previous chapter (carefully) Basically, these scripts provide automapping and much more. You can modify them and customize your hardware behaviors with Live 9.

All Ableton Live 9 scripts I decompiled can be downloaded below, but the safest up-to-date place is this one on github.

These scripts decompilation aren’t illegal. Indeed, nothing forbid someone to uncompile the bytecodes and I just propose to make this step for you here.
Feel free to send me other remote surfaces python scripts.


– _Framework extracted docs
– Push extracted docs


I wrote a specific page on this website about PUSH: https://structure-void.com/ableton-live-push/

This is totally unofficial, but I have all push’ python remote scripts source. I didn’t have any help from Ableton here, and I didn’t ask help, by the way.
I decompiled them, unmarshalling some part of codes etc.

I’ll modify them quite soon in order to improve and change some PUSH behaviors in next days/weeks. The first idea is : find the way that fits my needs the MOST!

Here they are: AbletonLive9 Remote Scripts Sources


Here are some clues. You have to find the others 🙂

– modify default LEDs colors: https://github.com/gluon/AbletonLive9_RemoteScripts/blob/master/Push/SkinDefault.py
– TouchStrip mode:  https://github.com/gluon/AbletonLive9_RemoteScripts/blob/master/Push/TouchStripElement.py
– Add/Modify/Remove scales: https://github.com/gluon/AbletonLive9_RemoteScripts/blob/master/Push/consts.py


Python Live API unofficial documentation

Probably, Ableton would make this official.
And that would be better than my ugly HTML files… but, at least, there are already here.

Thanks to Hanz Petrov for his nice API walker scripts !

Here are the Python’s Live object documentation (BETTER TO CHECK IT WITH FIREFOX) :

Live 9.2 API documentation
– Live 9.5 API documentation
– Live 9.6 API documentation
– Live 10.0.1 API documentation
– Live 10.0.2 API documentation
– Live 10.1 API documentation
– Live 10.1.19 API documentation