The Logic ProjectData container is decoded — 24-byte header, magic 23 47 C0 AB, little-endian FourCC records — and we can enumerate 22 chunk tags across 2,069 records. The payloads are not decoded.
That gap is the difference between "3 regions were added" and "the region 'Deep Down Shaker.1' moved from bar 12 to bar 16".
What is already known (see docs/FORMATS.md)
| Tag |
Meaning |
Observed across saves |
AuFl |
audio files |
35 → 37 (matches MetaData.plist exactly) |
AuCU |
plugins |
70 → 76 → 265 |
AuRg |
regions |
79 → 90 → 96 |
Trak |
tracks |
248 → 256 → 260 |
MSeq/EvSq |
sequences |
147 → 155 → 159 |
Region names are already readable directly from AuRg payloads.
The task
Pick one tag and map its payload structure: field offsets, types, and meaning. AuRg (regions) or Trak (tracks) are the highest value. Document findings in docs/FORMATS.md and, ideally, add a parser to experiments/.
Method that worked for the container
Diff the same record across sequential saves in Alternatives/000/Project File Backups/00..08 where you know what the user changed, and correlate with MetaData.plist.
Bonus: this also covers GarageBand. It uses the same container (23 47 C0 AB, gnoS), differing only in a version word — so one parser serves both.
⚠️ Work only on copies. Never modify a real project.
The Logic
ProjectDatacontainer is decoded — 24-byte header, magic23 47 C0 AB, little-endian FourCC records — and we can enumerate 22 chunk tags across 2,069 records. The payloads are not decoded.That gap is the difference between "3 regions were added" and "the region 'Deep Down Shaker.1' moved from bar 12 to bar 16".
What is already known (see
docs/FORMATS.md)AuFlMetaData.plistexactly)AuCUAuRgTrakMSeq/EvSqRegion names are already readable directly from
AuRgpayloads.The task
Pick one tag and map its payload structure: field offsets, types, and meaning.
AuRg(regions) orTrak(tracks) are the highest value. Document findings indocs/FORMATS.mdand, ideally, add a parser toexperiments/.Method that worked for the container
Diff the same record across sequential saves in
Alternatives/000/Project File Backups/00..08where you know what the user changed, and correlate withMetaData.plist.Bonus: this also covers GarageBand. It uses the same container (
23 47 C0 AB,gnoS), differing only in a version word — so one parser serves both.