Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

This simple web app allows the user to upload an Ableton Live .als project file containing markers and export them as a .cue file. This is helpful in order to import these markers into an app such as Podcast Chapters.

Demo installation

If you're not a developer and just need this tool, you can use my demo install at

How to use this thing

You can either run this with Python (it requires Flask, so pip3 install flask)


Or you can use the lucatnt/als2cue_web Docker image

docker run -p 5000:80 lucatnt/als2cue_web

Either way you will end up with a webserver running on port 5000.


I record my podcasts in Ableton live, and I use Live's markers to save when we switch topics. Each topics then becomes a chapter with its own title, and I embed these titles and timestamps into the mp3 files themselves using the awesome Podcast Chapters Mac app.

Manually creating chapters in Podcast Chapters, however, is pretty laborious, especially given that I already have the timestamps saved as Ableton Live markers in the .als project file.

So I wrote a little script, als2cue, to extract the markers' timestamps and export them in a .cue files, which Podcast Chapters can read.


Thanks to offlinemark's awesome dawtool, als2cue is able to inspect Live's .als project files and extract all the relevant data.

How it used to work

Before I found dawtool, I parsed Live's .als project files manually, and I wrote what follows, it might still be helpful for somebody.

.als project files are basically zipped XML files.

I examined one of them and determined that markers are saved in the Locators array. Each Locator element has a Time field, which determines the marker position, in "beats" (and this shows that Live is supposed to be a music production program that I'm forcing into a podcast editing app).

To convert beats into minutes and seconds, the projects's tempo has to be taken into account, and it can change throughout the project (thanks to @dokfranco for the tip).

In Tempo > AutomationTarget > Id we can find the automation that regulates the tempo, we can then analyze the envelope to construct a tempo map throughout the arrangement. Given the tempo map and the position of each Locator, it is relatively trivial to calculate the timestamp of each one of them.

Note: this only worked with Live >= 10, version 9 used a different XML structure that wasn't supported by my DIY parser.


Simple web app to extract Ableton Live markers from .als files and save them in a .cue file






No packages published