Skip to content

Repository files navigation

ALFA - Ableton Live File Analyzer

Python PySide6 License Release

ALFA (Ableton Live File Analyzer) is a desktop app that analyzes and version-controls Ableton Live projects.

  • Browse tracks, devices, racks, samples, and plugin parameters without opening Ableton.
  • Diff: Check added/removed tracks and devices, and changed parameter values between snapshots.
  • Find and play any sample used in your project, and save favorite track chain to a library.

⬇️ Download

  1. Download the latest ALFA-Setup-X.X.X.exe from the Releases page.
  2. Run the installer and launch ALFA.

Currently only Windows 64-bit builds are provided.

⚠️ The app is not code-signed, so Windows SmartScreen may warn on first launch — click More info → Run anyway.

Your projects and snapshots will be stored in Documents\ALFA.


✨ Features

Deep .als Analysis

  • Full track list (volume, pan, mute), group structure, and plugin chains
  • Rack - Instrument / Audio Effect / Drum / MIDI Racks, including nested chains and macros
  • Find Sample across the whole project, with missing-file detection

Snapshot Diff

  • Check added/removed tracks and devices, changed parameter values between snapshots.

Save Favorite Chains

  • Keep favorite sounds and their device chains.

Notes

I started this project because opening Ableton every time just to check plugins and samples was too inconvenient.

This is still an early version. Some features are still in development and may lack polish. I plan to keep refining the UI and expanding plugin/device support.

The app has been tested as much as possible, but bugs may still exist. If you find any issues or have suggestions, feel free to open a Discussion or reach out directly.


🛠 Tech Stack

  • Language: Python 3.12
  • GUI: PySide6
  • Parsing: lxml, zstandard + cbor2
  • Environment: uv
  • Distribution: PyInstaller + Inno Setup 7 installer

📁 Project Structure

src
├── app.py               # Entry point
├── core
│   ├── als_extractor.py     # .als (gzip + XML) → snapshot data, recursive rack traversal
│   ├── diff.py              # Snapshot diff engine (exact / coarse / info tiers)
│   ├── snapshot_manager.py  # Project & snapshot storage under Documents/ALFA
│   └── plugin_parsers       # fabfilter, xfer, valhalla, waves, generic...
└── ui
    ├── main_window.py       
    ├── screens              # Home / Project Detail
    ├── tabs                 # Browse, Tracks, Samples, Snapshots, Diff
    ├── translations         # ko.json, en.json
    ├── widgets              # AudioPlayer, SampleList, SearchBar, icons..
    └── i18n.py              # JSON catalogs + retranslate_ui pattern

🚀 Build from Source

Requirements: Python 3.12+, uv

git clone https://github.com/hemisus/alfa.git
cd alfa
uv sync

uv run python src/app.py

Packaging as a Windows installer - PyInstaller + Inno Setup

# 1. Build the app (output: dist\ALFA\ALFA.exe)
uv run pyinstaller ALFA.spec --noconfirm

# 2. Build the installer (output: installer_out\ALFA-Setup-X.X.X.exe)
& "C:\Program Files\Inno Setup 7\ISCC.exe" installer.iss

📄 License

Uses PySide6 (Qt for Python) under LGPLv3.

This project is licensed under the MIT License.


📬 Contact

About

Ableton Live Project File Analyzer

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages