Snapback & Auto Arm for Ableton Live

Snapback & Auto Arm for Ableton Live

I built and sold a plugin to streamline looping in Ableton Live

25.03.2024

Intro 🎵

Snapback & Auto Arm

I've been producing and performing with Ableton Live

Favicon
for many years now. It's a fantastic piece of software that allows for a lot of creativity and flexibility. However, there are some things that have always bothered me about it.

The Snapback Issue 🔴

Performing live with Ableton Live

Favicon
means using the Session View, where you can trigger clips and loops in real-time. However, recording clips live is a serious liability:

If you stop recording a clip just a millisecond too late, it will always keep recording until the next bar.

There is no way to change this behavior. This can be incredibly frustrating and throw off your entire performance. Snapping to the nearest bar is absolutely essential in my opinion and the default on hardware loopers such as the Boss RC-505

Favicon
.

The Auto Arm Issue 🟥

Another issue I've encountered is the need to manually arm MIDI tracks. Say you're playing live and want to switch to a different instrument. You have to manually arm and disarm the MIDI tracks, which can be a hassle and disrupt your flow. Some MIDI controllers have a feature that automatically arms the track when you select it, but not all do. I wanted to have this feature available at all times.

There is an auto arm feature you can enable using "the Secret Options File"

Favicon
, but that works differently from the controller auto arm feature and is not compatible if you want to have any other track armed.

The Solution 🎉

I decided to build a plugin that solves both of these issues. I called it Snapback & Auto Arm. It's a simple plugin that snaps the end of recorded clips to the nearest bar and permanently enables auto arm for MIDI tracks. It's a small quality-of-life improvement that makes a huge difference in my live performances.

It's available for purchase on Gumroad

. If you can relate to the issues I've described, I highly recommend checking it out. If they never bothered you, you probably don't need it.

How I Built It 🛠️

The plugin registers itself as a MIDI Remote Script in Live. These usually define and implement the behavior of MIDI controllers, but they can also be used to add custom functionality.

They're written in Python and use an undocumented proprietary API. Ableton Live ships with all of it's MIDI Remote Scripts as .pyc files, which are compiled Python code. I decompiled these files using decompyle3

Favicon
to understand how they work and built my own script from there.