Complete automation suite for organizing 1000+ Ableton projects with production-first priority and NAS integration.
# Clone and setup
git clone https://github.com/sxndmxn/ableton-organizer.git
cd ableton-organizer
# Install dependencies
./install_system_deps.sh
python3 install_dependencies.py
# Quick test (no real drives needed)
./quick_test.sh
# Real usage with your paths
python3 workflow.py \
--source "/path/to/your/ableton/drive/Ableton/Projects" \
--nas "/path/to/your/nas" \
--completeYour source drive should contain:
/path/to/your/drive/
├── Ableton/
│ ├── Projects/ # Your .als files (will be organized)
│ ├── Sample Packs/ # Left alone
│ └── Soulseek/ # Your music library (will be organized)
- Scans all
.alsfiles automatically - Extracts metadata: track count, plugins, complexity, BPM, duration
- Analyzes project completion status and file relationships
- Creates intelligent project database
- Categorizes projects into 6 smart categories:
- Production Ready (highest priority)
- Active Production
- Finished Experiments
- Development
- Complex Sketches
- Simple Ideas (lowest priority)
- Calculates usage priority for migration ordering
- Creates production-first directory structure on your NAS
- Sets up organized directories for music and samples
- Creates maintenance scripts and documentation
- Prepares Jellyfin integration paths
- Migrates projects in priority order
- Parallel processing with integrity verification
- Checksum verification for every file transfer
- Rollback capability and error recovery
- Real-time migration monitoring
- ASCII dashboard with progress bars
- JSON API for integration
- Detailed reporting and analytics
python3 workflow.py --source "/path/to/source" --nas "/path/to/nas" --phase 1 # Analysis only
python3 workflow.py --source "/path/to/source" --nas "/path/to/nas" --phase 2 # Classification only
python3 workflow.py --source "/path/to/source" --nas "/path/to/nas" --phase 3 # NAS structure only# Test migration without moving files
python3 workflow.py --source "/source" --nas "/nas" --phase 4 --dry-run
# Migrate specific category only
python3 workflow.py --source "/source" --nas "/nas" --phase 4 --category production_ready
# Limit to specific number of projects
python3 workflow.py --source "/source" --nas "/nas" --phase 4 --limit 50# One-time dashboard report
python3 workflow.py --source "/source" --nas "/nas" --phase 5
# Real-time monitoring (updates every 30 seconds)
python3 workflow.py --source "/source" --nas "/nas" --phase 5 --watch
# Custom refresh interval
python3 workflow.py --source "/source" --nas "/nas" --phase 5 --watch --refresh 60All scripts can be run independently for fine-grained control:
python3 scripts/project_scanner.py --source "/path/to/projects" --database "database/projects.db"python3 scripts/project_classifier.py --database "database/projects.db" --show-queuepython3 scripts/nas_structure_creator.py --nas-root "/nas/ableton-projects"bash scripts/migrate_to_nas.sh --category production_ready --limit 25python3 scripts/migration_dashboard.py --database "database/projects.db" --watch- Incremental migration: Process in batches, pause anytime
- Checksum verification: Every file verified after transfer
- Backup creation: Automatic backups before migration
- Rollback capability: Full rollback if needed
- Parallel processing: Efficient but controlled transfers
- Comprehensive logging: Detailed logs for troubleshooting
The system generates comprehensive reports:
- Analysis Report: Project complexity and completion breakdown
- Classification Report: Category distribution and migration priority
- Structure Report: Created directories and configuration
- Migration Report: Transfer statistics and success rates
- Dashboard Data: Real-time JSON API for integration
- Export-ready directory structure:
08_EXPORTS_FOR_JELLYFIN/ - Automatic metadata and organization
- Artist/album structure for media server compatibility
- Organizes Soulseek downloads by genre, tempo, mood
- Creates resampling-friendly structure
- Separates production samples from listening library
- Organizes commercial sample packs
- Creates producer-friendly directory structure
- Maintains original licensing information
# Optional - override in configs/migration_config.sh
SOURCE_DIR="/media/ableton-projects"
NAS_ROOT="/nas/ableton-projects"
BATCH_SIZE="25"
PARALLEL_JOBS="4"
DRY_RUN="false"Edit configs/nas_structure.json to customize:
- Category descriptions
- Directory structures
- Priority levels
- Subdirectory organization
Source directory not found
- Ensure external drive is connected and mounted
- Check path accuracy in command
- Verify drive permissions
Migration failures
- Run with
--dry-runfirst - Check
logs/migration.logfor errors - Verify disk space on NAS
Database errors
- Delete
database/projects.dband restart - Ensure Python sqlite3 module is available
- Check file permissions
All logs saved to logs/ directory:
workflow.log- Main workflow executionscanner.log- Project analysis detailsclassifier.log- Classification decisionsmigration.log- Transfer operationsnas_organizer.log- Structure creation
All reports saved to reports/ directory:
analysis_report.txt- Project analysis resultsclassification_report.txt- Category breakdownmigration_report.txt- Transfer statisticsdashboard_report.txt- Real-time status
- Run complete workflow with your actual paths
- Review reports in
reports/directory - Monitor migration with dashboard
--watchmode - Configure Jellyfin to point at organized exports
- Set up backup schedules using provided scripts
- Customize categories as needed for your workflow
This system prioritizes your most valuable projects first:
- Production Ready - Complete tracks, immediate access
- Active Production - Current work you're developing
- Finished Experiments - Complete but experimental work
- Development - Works in progress
- Complex Sketches - Promising ideas needing work
- Simple Ideas - Basic concepts and inspiration
This ensures your most important and valuable projects are accessible first, with less important material organized later.
For issues or questions:
- Check
logs/directory for detailed error information - Review
SETUP_INSTRUCTIONS.txtgenerated after first run - Use
--dry-runmode to test without file changes - Run individual phases to isolate issues
The system is designed to be robust and recoverable, with comprehensive logging and rollback capabilities at every step.