Skip to content

list all used VSTs in your projects and export them to sheets

License

Notifications You must be signed in to change notification settings

mrhymes26/ableton-project-analyzer

Repository files navigation

Ableton Live Project Analyzer

Version 1.0.0 - Fully functional version

A powerful Python tool for analyzing Ableton Live projects and extracting used VST plugins. Optimized for performance with multi-threading and batch processing.

πŸ“– Origin

This tool was created during a PC migration to help identify all VST plugins used across multiple Ableton Live projects. It was developed to simplify the process of setting up a new computer by automatically generating a comprehensive list of required plugins and their usage statistics.

Features

πŸ’‘ Note: This tool was created during a PC migration to help identify all VST plugins used across multiple Ableton Live projects. The "VST Requirements" feature helps you identify which plugins you need.

πŸš€ Performance-Optimized

  • βœ… Multi-Threading: Processes hundreds of projects in parallel (up to 16 threads, configurable)
  • βœ… Batch Processing: Optimized batch processing for better performance
  • βœ… Fast Extraction: Optimized XML parsing methods with header detection
  • βœ… Thread-Safe: Safe concurrent processing with proper locking mechanisms
  • βœ… Progress Tracking: Real-time progress updates during analysis
  • βœ… Memory Efficient: Optimized memory usage for large project collections

πŸ“Š Excel Export with 5 Sheets

  1. Project Overview - All analyzed projects with complete paths, track count, scene count, VST count, and main directory grouping
  2. VST Overview - Complete list of all used VST plugins with manufacturer, plugin name, filename, version, and project assignment
  3. Track Details ⭐ - Detailed track-VST mapping with track types (Audio, MIDI, Return, Master), track names, and VST assignments
  4. VST Requirements ⭐ - Complete list of all required VST plugins sorted by usage frequency, perfect for PC migration
  5. Statistics ⭐ - Overall statistics (total projects, different VSTs, total tracks), averages, VST frequency analysis, and manufacturer statistics

πŸ“ Flexible Export Options

  • βœ… Excel (.xlsx) - Detailed analysis with 5 comprehensive sheets

    • Color-coded headers for easy navigation
    • Auto-sized columns for optimal readability
    • Professional formatting with statistics
  • βœ… JSON - Complete project data for further processing

    • Includes timestamp and metadata
    • All project details, tracks, and VST information
    • Machine-readable format for automation
  • βœ… TXT - Recursive VST lists organized by directories

    • Individual VST list files per project
    • Organized by main directories
    • Includes track details with VST assignments
    • Summary files: Inventory Summary and VST Requirements

🎯 Additional Features

  • πŸ” Automatic search for Ableton projects (.als files)
  • πŸ“Š Analysis of project structure (Tracks, Scenes)
  • πŸŽ›οΈ Extraction of all used VST plugins with metadata (manufacturer, name, filename, version)
  • πŸ“‹ Detailed listing with manufacturer and plugin names
  • 🎯 User-friendly console output with progress tracking
  • πŸ”„ Recursive search for .als files
  • πŸ“ Main directory grouping for better organization
  • πŸ›‘οΈ Robust error handling - continues processing even if individual projects fail
  • πŸ”„ Support for multiple Ableton formats (ZIP, GZIP, XML) with automatic detection

πŸš€ Quick Start (Easiest Way)

Step 1: Install Dependencies (One Time Only)

Windows/Linux:

pip install pandas openpyxl

macOS:

pip3 install pandas openpyxl

⚠️ macOS Users: If you encounter Xcode license errors, run sudo xcodebuild -license accept first.

Step 2: Run the Tool

Windows:

python ableton_project_analyzer.py "Z:\Path\to\Your\Projects" --excel "output.xlsx"

macOS/Linux:

python3 ableton_project_analyzer.py "/path/to/Your/Projects" --excel "output.xlsx"

That's it! The Excel file will be created with all your project and VST information.

Windows Users - Even Easier:

  • Drag and drop a folder onto run_analyzer.bat (after installing dependencies)

Installation

Windows/Linux

# 1. Clone repository or download release
git clone <repository>
cd ableton-project-analyzer-release

# 2. Install dependencies
pip install -r requirements.txt

# 3. Ready to use!
python ableton_project_analyzer.py --help

macOS

# 1. Clone repository or download release
git clone <repository>
cd ableton-project-analyzer-release

# 2. Install dependencies
pip3 install -r requirements.txt

# 3. Ready to use!
python3 ableton_project_analyzer.py --help

πŸ’‘ macOS Note: macOS comes with Python 3 pre-installed. Use python3 and pip3 commands instead of python and pip.

Alternative: If you have Homebrew Python installed, you can use:

/opt/homebrew/bin/python3 ableton_project_analyzer.py --help

System Requirements

  • Python: 3.6 or higher
  • Dependencies: pandas, openpyxl
  • Operating System: Windows, macOS, Linux

Usage

Easiest Method (Windows)

Drag and drop a folder containing .als files onto run_analyzer.bat

The tool will:

  1. Automatically check for Python and dependencies
  2. Analyze all projects in the folder
  3. Create an Excel file with all results

Basic Usage (Command Line)

Windows:

python ableton_project_analyzer.py "Z:\Path\to\Projects"

macOS/Linux:

python3 ableton_project_analyzer.py "/path/to/Projects"

With Excel Export

Windows:

python ableton_project_analyzer.py "Z:\Path\to\Projects" --excel "C:\Temp\analysis.xlsx"

macOS/Linux:

python3 ableton_project_analyzer.py "/path/to/Projects" --excel "~/Desktop/analysis.xlsx"

With JSON Export

Windows:

python ableton_project_analyzer.py "Z:\Path\to\Projects" --json results.json

macOS/Linux:

python3 ableton_project_analyzer.py "/path/to/Projects" --json results.json

With VST Lists Export

Windows:

python ableton_project_analyzer.py "Z:\Path\to\Projects" --txt --recursive

macOS/Linux:

python3 ableton_project_analyzer.py "/path/to/Projects" --txt --recursive

With Multi-Threading

Windows:

python ableton_project_analyzer.py "Z:\Path\to\Projects" --excel "output.xlsx" --workers 16

macOS/Linux:

python3 ableton_project_analyzer.py "/path/to/Projects" --excel "output.xlsx" --workers 16

Using Network/SMB Paths (macOS)

The tool works with mounted network drives and SMB shares:

# If SMB share is mounted at /Volumes/data
python3 ableton_project_analyzer.py "/Volumes/data/Projects" --excel "analysis.xlsx"

# Example with SMB path
python3 ableton_project_analyzer.py "/Volumes/data/04_Projekte/Musikproduktion/CAMPFIRE/Studio/_Resources/_Ideas Bin/" --recursive --txt

πŸ’‘ Tip: Mount SMB shares first using Finder (Go β†’ Connect to Server) or command line:

mount -t smbfs //username@server/share /Volumes/mountpoint

All Options

python ableton_project_analyzer.py <path> [OPTIONS]

Options:
  --json <file>        Export results as JSON (includes timestamp and metadata)
  --txt                Export VST lists as TXT (requires --recursive)
  --excel <file>       Export as Excel with 5 comprehensive sheets
  --recursive          Recursive analysis with subdirectories (required for --txt)
  --quiet              Reduced output (less verbose progress updates)
  --workers <n>        Number of parallel threads (default: 16, recommended: 4-16)

Example Output

Searching for Ableton projects in: Z:\Path\to\Projects
Found: 3 project(s)
--------------------------------------------------
Analyzing: MyTrack.als
  βœ“ 5 VST(s) found
Analyzing: BeatProject.als
  βœ“ 8 VST(s) found
Analyzing: AmbientSong.als
  βœ“ 3 VST(s) found
--------------------------------------------------

=== SUMMARY ===
Analyzed projects: 3
Total VSTs: 12

=== PROJECT DETAILS ===

πŸ“ MyTrack
   Path: Z:\Path\to\Projects\MyTrack.als
   Tracks: 8
   Scenes: 4
   VSTs: 5
   Used VSTs:
     β€’ Native Instruments - Massive
     β€’ FabFilter - Pro-Q 3
     β€’ Waves - CLA-2A
     β€’ Serum - Serum
     β€’ Valhalla DSP - ValhallaRoom

=== ALL USED VSTs ===
β€’ FabFilter - Pro-Q 3
β€’ Native Instruments - Massive
β€’ Serum - Serum
β€’ Valhalla DSP - ValhallaRoom
β€’ Waves - CLA-2A

Output Files

Excel Export

Creates a single .xlsx file with 5 sheets containing all analysis data. The file is saved at the location you specify:

python3 ableton_project_analyzer.py "/path/to/Projects" --excel "~/Desktop/analysis.xlsx"

JSON Export

Creates a single JSON file with complete project data:

python3 ableton_project_analyzer.py "/path/to/Projects" --json "results.json"

TXT Export (Recursive)

When using --txt --recursive, the tool creates a vst_lists/ directory in the current working directory with:

  • Individual VST list files for each project (organized by main directory)
  • 00_INVENTORY_SUMMARY.txt - Complete inventory summary
  • 00_VST_REQUIREMENTS.txt - VST requirements list

Example structure:

vst_lists/
β”œβ”€β”€ 00_INVENTORY_SUMMARY.txt
β”œβ”€β”€ 00_VST_REQUIREMENTS.txt
β”œβ”€β”€ MainDirectory1/
β”‚   β”œβ”€β”€ Project1_VSTs.txt
β”‚   └── Project2_VSTs.txt
└── MainDirectory2/
    └── Project3_VSTs.txt

πŸ’‘ Tip: The output directory is created in the directory where you run the command, not in the project directory.

JSON Export Format

{
  "timestamp": "2026-01-03T12:34:56.789123",
  "project_path": "Z:\\Path\\to\\Projects",
  "total_projects": 3,
  "total_vsts": 12,
  "projects": [
    {
      "name": "MyTrack",
      "path": "Z:\\Path\\to\\Projects\\MyTrack.als",
      "vsts": [
        {
          "name": "Massive",
          "manufacturer": "Native Instruments",
          "filename": "Massive.dll",
          "version": "1.5.0"
        }
      ],
      "tracks": [
        {
          "name": "Track 1",
          "type": "Audio",
          "vsts": [
            {
              "name": "Massive",
              "manufacturer": "Native Instruments",
              "filename": "Massive.dll",
              "version": "1.5.0"
            }
          ]
        }
      ],
      "scenes": 4
    }
  ],
  "all_vsts": [
    "FabFilter - Pro-Q 3",
    "Native Instruments - Massive"
  ]
}

Technical Details

Project Format Support

  • Ableton Project Format: The tool analyzes .als files in multiple formats:
    • ZIP archives (Live 10+) containing XML files
    • GZIP compressed files (Live 9.x)
    • Direct XML files (Live 8 and earlier)
  • Automatic Format Detection: No manual configuration needed - detects format automatically

Processing

  • XML Parsing: Uses Python's built-in xml.etree.ElementTree for fast analysis
  • VST Extraction: Searches for VstPluginInfo elements in the project XML
  • Track Analysis: Extracts track types (Audio, MIDI, Return, Master) and their VST assignments
  • Multi-Threading: Thread-safe implementation with proper locking mechanisms
  • Batch Processing: Optimized batch processing for better performance

Error Handling

  • Robust Error Handling: Graceful error recovery - continues processing even if individual projects fail
  • Silent Error Handling: Silent error handling for better performance
  • Thread-Safe: Thread-safe error handling for concurrent processing

Compatibility

  • βœ… Ableton Live: 8.x and higher (supports all .als formats)
    • Live 10+ (ZIP format)
    • Live 9.x (GZIP format)
    • Live 8 and earlier (XML format)
  • βœ… Operating Systems: Windows, macOS, Linux
  • βœ… Python: 3.6 or higher
  • βœ… Network Paths: Supports mounted network drives and SMB shares (macOS/Linux)

Troubleshooting

"No Ableton projects found!"

  • Check the path
  • Make sure .als files are present in the directory
  • Use absolute paths if you encounter problems
  • macOS: Make sure paths use forward slashes (/) not backslashes (\)

"Error parsing XML file"

  • The project file might be corrupted
  • Try opening the project in Ableton Live and saving it again
  • The tool will automatically skip corrupted files and continue processing

"Warning: does not appear to be a valid Ableton project file"

  • The file might not be a real Ableton project file
  • Check the file extension (.als)

macOS-Specific Issues

"You have not agreed to the Xcode license agreements"

Problem: Python requires Xcode Command Line Tools license acceptance.

Solution:

sudo xcodebuild -license accept

You'll be prompted for your password. After accepting, Python commands will work normally.

"ModuleNotFoundError: No module named 'pandas'"

Problem: Dependencies not installed or using wrong Python version.

Solution:

# Make sure you're using pip3 on macOS
pip3 install pandas openpyxl

# Or install from requirements.txt
pip3 install -r requirements.txt

"python: command not found" (macOS)

Problem: macOS uses python3 instead of python.

Solution:

  • Always use python3 instead of python on macOS
  • Use pip3 instead of pip on macOS

Network/SMB Path Issues (macOS)

Problem: Cannot access network drives or SMB shares.

Solution:

  1. Mount the network drive first using Finder:

    • Go β†’ Connect to Server (⌘K)
    • Enter: smb://server/share
    • Mount point will be in /Volumes/
  2. Use the mounted path:

    # Check if mounted
    ls /Volumes/
    
    # Use the mounted path
    python3 ableton_project_analyzer.py "/Volumes/mountname/path/to/projects"
  3. Verify mount status:

    mount | grep smb

Permission Denied Errors

Problem: Cannot read files or write output files.

Solution:

  • Check file permissions: ls -la /path/to/projects
  • Make sure you have read access to project files
  • Make sure you have write access to output directory

Performance Issues

Problem: Analysis takes too long or uses too much memory.

Solution:

  • Reduce the number of threads: --workers 4 (default is 16)
  • Use --quiet for less output during analysis
  • For very large collections (>1000 projects), consider processing in smaller batches
  • Use JSON export instead of Excel for very large datasets to reduce memory usage

License

MIT License - Free to use for private and commercial purposes.


β˜• Support

If you find this tool helpful and would like to support its development, you can buy me a coffee:

Buy Me A Coffee

β˜• Buy Me a Coffee

Your support is greatly appreciated! πŸ™


Good luck with your projects! 🎡

About

list all used VSTs in your projects and export them to sheets

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published