Skip to content

Toolkit to analyze and reverse-engineer Logic Pro project files (.logicx).

License

Notifications You must be signed in to change notification settings

geoffmyers/logicx-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LogicX Analyzer

Complete toolkit for analyzing Logic Pro projects (.logicx) with advanced binary format reverse engineering.

πŸ“ Directory Structure

logicx-analyzer/
β”œβ”€β”€ scripts/                                  # Production analysis tools
β”‚   β”œβ”€β”€ logic_project_analyzer_enhanced.py    # ⭐ Main analyzer (use this!)
β”‚   β”œβ”€β”€ binary_format_analyzer.py             # Low-level binary structure analysis
β”‚   β”œβ”€β”€ chunk_structure_analyzer.py           # File structure mapping
β”‚   β”œβ”€β”€ extract_plugin_data.py                # Plugin/preset extraction
β”‚   β”œβ”€β”€ extract_track_names.py                # Standalone track name extractor
β”‚   β”œβ”€β”€ hex_dump_analyzer.py                  # Hex dump investigation
β”‚   β”œβ”€β”€ logic_project_analyzer.py             # Original basic analyzer
β”‚   └── experimental/                         # Archived research scripts
β”‚       └── README.md                         # See experimental/README.md
β”œβ”€β”€ docs/                                     # Complete documentation
β”‚   β”œβ”€β”€ BINARY_FORMAT_FINDINGS.md             # Technical format specification
β”‚   β”œβ”€β”€ MULTI_FORMAT_OUTPUT.md                # Output format examples
β”‚   β”œβ”€β”€ QUICK_REFERENCE.md                    # Command quick reference
β”‚   β”œβ”€β”€ README_BINARY_ANALYSIS.md             # Binary analysis guide
β”‚   └── RESEARCH_SUMMARY.md                   # Complete research findings
β”œβ”€β”€ CLAUDE.md                                 # AI assistant context
β”œβ”€β”€ CONTRIBUTING.md                           # Contribution guidelines
β”œβ”€β”€ LICENSE.md                                # GPL 2.0 license
└── README.md                                 # This file

πŸš€ Quick Start

Analyze All Projects in Current Directory

cd "/path/to/your/logic/projects"
python3 "/path/to/logicx-analyzer/scripts/logic_project_analyzer_enhanced.py"

Output

  • Comprehensive markdown report with:
    • Musical attributes (BPM, key, time signature)
    • Binary structure analysis
    • Plugin usage and presets
    • Session Players configurations
    • Track and region names
    • Audio resource counts
    • Alchemy library references

πŸ“Š What Gets Analyzed

From MetaData.plist (Standard)

  • βœ… Tempo (BPM)
  • βœ… Key signature
  • βœ… Time signature
  • βœ… Track count
  • βœ… Sample rate
  • βœ… Audio file lists
  • βœ… Logic Pro version

From ProjectData Binary (Advanced) ⭐ NEW

  • βœ… Plugins detected (Alchemy, Sampler, Retro Synth, etc.)
  • βœ… Session Players presets with full parameters
    • Preset names ("Sweet Memories", "Night Flight", etc.)
    • Character types (Electric Bass, Acoustic Piano, Drummer)
    • All parameters (intensity, dynamics, humanize, variation)
  • βœ… Binary structure
    • Chunk counts (Track, MIDI, Audio Region, etc.)
    • File complexity metrics
  • βœ… Alchemy synthesizer data
    • Library references (oscillators, LFOs, formants)
    • Synthesis complexity
  • βœ… Track names (partial - generic names work)
  • βœ… Region names
  • βœ… Tempo candidates from binary data

πŸ”§ Main Scripts

1. logic_project_analyzer_enhanced.py ⭐ RECOMMENDED

The complete analyzer with all features.

python3 scripts/logic_project_analyzer_enhanced.py

Features:

  • Complete metadata extraction
  • Advanced binary format parsing
  • Plugin and preset detection
  • Session Players analysis
  • Binary structure mapping
  • Comprehensive reports

Output:

  • logic_projects_advanced_YYYYMMDD_HHMMSS.md

Use Cases:

  • Full project analysis
  • Plugin usage tracking
  • Session Players preset documentation
  • Project complexity assessment
  • Binary format research

2. logic_project_analyzer.py

Original basic analyzer (metadata only).

python3 scripts/logic_project_analyzer.py

Features:

  • MetaData.plist parsing
  • Basic statistics
  • Simple reports

Output:

  • logic_projects_report_YYYYMMDD_HHMMSS.md

Use Cases:

  • Quick metadata check
  • When binary analysis isn't needed
  • Baseline compatibility testing

3. extract_track_names.py

Standalone track name extractor.

python3 scripts/extract_track_names.py

Features:

  • Extracts track names from ProjectData
  • Generates simple report

Output:

  • track_names_report.md

Use Cases:

  • Quick track name check
  • Testing track name extraction
  • Minimal analysis needed

πŸ”¬ Binary Analysis Tools

Located in scripts/ - these are advanced tools for format research.

binary_format_analyzer.py

Deep binary structure analysis.

python3 "scripts/binary_format_analyzer.py" "path/to/ProjectData"

Capabilities:

  • Finds all magic markers (karT, gRuA, qeSM, etc.)
  • Extracts strings with multiple methods
  • Identifies numeric patterns
  • Analyzes data structures

Output:

  • binary_analysis_*.txt

chunk_structure_analyzer.py

Complete file structure mapping.

python3 "scripts/chunk_structure_analyzer.py" "path/to/ProjectData"

Capabilities:

  • Maps all chunks in file
  • Counts chunk types
  • Extracts metadata
  • Finds track name candidates

Output:

  • chunk_structure_*.txt

extract_plugin_data.py

Plugin and preset extraction.

python3 "scripts/extract_plugin_data.py" "path/to/ProjectData"

Capabilities:

  • Extracts JSON presets
  • Identifies plugins
  • Finds Alchemy references
  • Analyzes audio file paths

Output:

  • plugin_data_*.txt
  • plugin_data_*.json

hex_dump_analyzer.py

Hex-level investigation.

python3 "scripts/hex_dump_analyzer.py" "path/to/ProjectData"

Capabilities:

  • Creates annotated hex dumps
  • Analyzes marker contexts
  • Multiple string extraction attempts
  • Numeric data interpretation

Output:

  • hex_analysis_karT_*.txt (Track markers)
  • hex_analysis_gRuA_*.txt (Audio regions)
  • hex_analysis_tSnI_*.txt (Instruments)
  • hex_analysis_LFUA_*.txt (Audio files)

πŸ“š Documentation

README_BINARY_ANALYSIS.md

Complete guide to binary format analysis.

Contents:

  • Binary format overview
  • Tool usage examples
  • Data extraction capabilities
  • Format specification
  • Quick reference

RESEARCH_SUMMARY.md

Complete reverse engineering findings.

Contents:

  • Executive summary
  • Key discoveries
  • Data types decoded
  • Chunk specifications
  • Session Players parameters
  • Next research steps

BINARY_FORMAT_FINDINGS.md

Technical format specification.

Contents:

  • File structure
  • Magic markers
  • Data encoding methods
  • String formats
  • Numeric types
  • Plugin data structures

UPGRADE_SUMMARY.md

Recent enhancement details.

Contents:

  • Version 2.0 changes
  • New features added
  • Test results
  • Before/after comparisons
  • Performance metrics

πŸ“ˆ Example Output

Summary Statistics

Total Projects: 39
Total Tracks: 588
Track Names Extracted: 394
Audio Regions Extracted: 1,066
Plugins Detected: 604
Presets Found: 642
Average Tempo: 99.74 BPM

Plugin Usage

| Plugin              | Projects |
|--------------------|----------|
| Sampler            | 11       |
| Q-Sampler          | 10       |
| Retro Synth        | 9        |
| Alchemy            | 7        |

Session Players Characters

| Character                        | Usage |
|----------------------------------|-------|
| Electric Bass - Modern R&B       | 183   |
| Acoustic Piano - Strummed        | 120   |
| Keyboard - Supporting Pad        | 66    |
| Acoustic Drummer - Neo Soul      | 63    |

Per-Project Details

### Example Project

**Musical Attributes:**
- Tempo: 120.0 BPM
- Key: C minor
- Time Signature: 4/4
- Tracks: 15

**Binary Structure:**
- Total Chunks: 801
- Track: 320
- MIDISequence: 169
- EventSequence: 169
- AudioRegion: 38

**Session Players Presets:**
*Electric Bass - Modern R&B:*
- **Steady Rolling** (Type_ElectricBassV2)
  - intensity: 79, dynamics: 100, riffiness: 3

🎯 Use Cases

For Musicians/Producers

  • Track plugin usage across projects
  • Identify most-used Session Players presets
  • Analyze musical patterns (key, tempo, time signatures)
  • Document project complexity
  • Archive project metadata

For Researchers

  • Reverse engineer Logic Pro format
  • Document binary structures
  • Extract embedded configurations
  • Study plugin architectures
  • Develop third-party tools

For Project Management

  • Inventory audio resources
  • Track sample usage
  • Document project settings
  • Generate project reports
  • Analyze workflow patterns

βš™οΈ Requirements

  • Python: 3.7 or higher
  • Dependencies: None (standard library only)
  • Platform: macOS (tested on Sonoma 14.x)
  • Logic Pro: 10.x - 11.x

πŸ” Technical Details

Binary Format

  • Chunk-based structure (similar to IFF/RIFF)
  • Reversed FourCC markers (e.g., karT = "Trak" backwards)
  • Mixed endianness (primarily Big-Endian)
  • Multiple string encoding methods
  • JSON-embedded configurations

File Locations

Project.logicx/
β”œβ”€β”€ Alternatives/000/
β”‚   β”œβ”€β”€ MetaData.plist          # Metadata (analyzed)
β”‚   └── ProjectData             # Binary data (analyzed)
β”œβ”€β”€ Resources/
β”‚   └── ProjectInformation.plist # Version info
└── Media/                       # Audio files

Performance

  • Typical project (2-3 MB): 1-2 seconds
  • Large project (10+ MB): 5-10 seconds
  • Memory usage: 100-200 MB

πŸ“ Version History

Version 2.0 (December 2025) - Current

  • βœ… Advanced binary format parsing
  • βœ… Plugin detection and analysis
  • βœ… Session Players preset extraction
  • βœ… Binary structure mapping
  • βœ… Alchemy library reference extraction
  • βœ… Tempo extraction from binary data
  • βœ… Enhanced reporting with 6 new sections

Version 1.0 (November 2025)

  • βœ… Basic metadata extraction
  • βœ… Track name extraction (partial)
  • βœ… Audio resource counting
  • βœ… Musical attribute analysis
  • βœ… CSV export

🀝 Contributing

If you discover new patterns or decode additional chunks:

  1. Document findings in markdown
  2. Add test cases to analyzers
  3. Update RESEARCH_SUMMARY.md
  4. Submit a pull request

See CONTRIBUTING.md for detailed contribution guidelines.

πŸ“œ License

This project is licensed under the GNU General Public License v2.0 - see the LICENSE.md file for details.

Educational/Research Use Only

This research is for educational purposes and personal project analysis. The Logic Pro file format is proprietary to Apple Inc. This reverse engineering is conducted for interoperability and archival purposes only.

No Warranty: Tools provided as-is. Always backup projects before analysis.

Not Affiliated: Not affiliated with or endorsed by Apple Inc.

πŸ“§ Support

For issues or questions:

  • Check docs/ folder
  • Refer to docs/RESEARCH_SUMMARY.md for technical details

πŸ”— Quick Links


Last Updated: January 2, 2026 Version: 2.0 (Advanced Binary Analysis) Status: βœ… Production Ready

Contributors

Languages