Exhibit B: reverse engineering.

Moves projects between Logic Pro, Ableton Live, and Pro Tools.

Reverse-engineered Logic Pro's undocumented binary project format to extract note-accurate MIDI (pitch, velocity, position, and duration) with no public spec to work from. Verified against Apple's own shipping demo songs.

The 15-byte Logic note-record signature, byte by byte

01 · Six directions, one release train

One project, six conversion directions.

WorkflowInputOutputBest for
logic2abletonLogic Pro .logicxAbleton Live .als + native MIDI tracks + copied media + conversion reportMoving Logic sessions into Ableton Arrangement View
ableton2logicAbleton Live .alsLogic import package with track stems, timestamped clip WAVs, Logic timeline MIDI, and transfer reportRebuilding Ableton sessions inside Logic with much cleaner layout recovery
protools2abletonPro Tools .ptxAbleton Live .als with trimmed clips at session positions + native MIDI tracks + conversion reportOpening Pro Tools sessions directly in Ableton
protools2logicPro Tools .ptxLogic import package with timestamped clip WAVs and MIDI + transfer reportRebuilding Pro Tools sessions inside Logic
ableton2protoolsAbleton Live .alsPro Tools import package with spot-to-timestamp WAVs, MIDI files, manifest, and import guideHanding an Ableton session to a Pro Tools studio
logic2protoolsLogic Pro .logicxPro Tools import package with spot-to-timestamp WAVs, MIDI files, manifest, and import guideHanding a Logic session to a Pro Tools studio

02 · How it was cracked, Logic

Logic's MIDI has no public spec. Apple never published one.

A Logic project's MIDI doesn't live in a sidecar file. It lives inside ProjectData, a single, undocumented, proprietary binary blob. There is no public spec. Apple has never published one.

The method: generate a Standard MIDI File with deliberately fingerprintable notes, pitches 61, 73, and 85, velocities 99, 77, and 111, one beat apart. Drive it into Logic Pro by automation to save a .logicx. Diff the resulting binary against the known values.

What fell out is a fixed-layout 15-byte record: the byte inspector at the top of this page shows those three fingerprint notes, field by field.

Read the full deep dive ↗

03 · How it was cracked, Pro Tools

A second binary, obfuscated instead of merely undocumented.

Pro Tools sessions have no public specification either. This project ships a clean-room Python parser, verified against real sessions.

The XOR key

key[i] = (i * delta) & 0xFF

The schemes differ in how the key is indexed: PT 5-9 by byte offset, PT 10+ by 4 KiB page. A consequence of the page-indexed scheme: key[0] is always zero, so the first 4 KiB of every .ptx is effectively plaintext.

MIDI note events live in fixed 35-byte records after an MdNLB marker: position (u40 ticks), pitch (byte 8), length (u40 at byte 9), velocity (byte 17). Pro Tools ticks run at 960,000 per quarter note, a thousand times finer than a typical MIDI file.

Credit

The byte-level facts were originally established by Damien Zammit's ptformat project, which reverse-engineered the container for Ardour's session importer. This parser is an independent, MIT-licensed implementation built from those documented facts. No code was copied, and it was re-verified against real sessions.

Read the full deep dive ↗

04 · What works, what doesn't

Owning the tradeoffs, in the project's own words.

Logic to Ableton


Works

  • MIDI notes decoded from Logic's binary project data land as native Ableton MIDI tracks inside the .als, placed at their absolute arrangement positions.
  • Audio tracks land in Ableton Arrangement View, placed from bundled WAV BWF timestamps and Logic AIFF MARK chunks.
  • Tempo, time signature, and distinct per-track colors carry over, with arrangement clips matching their track color.

Limits

  • MIDI tracks are named MIDI 1, MIDI 2, and so on. Binding Logic's track names to its binary note sequences is still being reverse-engineered.
  • Software instruments, their settings, and MIDI effects are not recreated. Reload instruments in Ableton.
  • Automation is not recreated.

Pro Tools lanes


Works

  • Audio clips keep their exact source trims and land at their session positions, with stereo tracks reassembled from Pro Tools' per-channel lanes.
  • MIDI notes decoded from the session become native Ableton MIDI tracks or Logic-importable MIDI files.

Limits

  • Session tempo is not recoverable from .ptx yet. Audio positions are sample-exact regardless, but beat positions are computed at an assumed tempo (default 120 BPM, override with --tempo).
  • Plugins, inserts, sends, automation, clip gain, and fades are not transferred; crossfade renders are skipped.

If a project lands imperfectly, the first thing to inspect is the generated report. It is the primary support artifact for this project.

05 · Quick start

CLI or desktop app.

CLI workflow

pip install logic2ableton

logic2ableton "path/to/MySong.logicx" --output ./output

protools2ableton "path/to/MySession.ptx" --output ./output --tempo 128

--report-only writes the report without generating output files

Desktop workflow

  1. 1Launch the app.
  2. 2Drop any session file, .logicx, .als, or .ptx, into the window. The app detects the source DAW.
  3. 3Pick the destination DAW and review the preview.
  4. 4Select an output directory, run the transfer, and inspect the report if anything looks off.

06 · Install & downloads

Get logic2ableton.

Python 3.11+, any platform.

pip install logic2ableton

macOS builds are ad-hoc signed but not notarized, so Gatekeeper quarantines them on first download. If macOS says the app "is damaged and can't be opened," clear the quarantine flag once after copying it to Applications: xattr -dr com.apple.quarantine "/Applications/Logic Ableton Transfer.app". 423 automated tests run in CI on Windows and macOS on every push.

07 · Read the deep dives

Move a project between Logic, Ableton, and Pro Tools.

Free and open source. Every run writes a report on what transferred cleanly and what needs a second look.