Apple does not publish this format. The facts on these pages come from the Library of Congress’s description and from open-source readers, written by studying files from recent versions of Logic Pro: LogicFiles, and LogicProFormatWriter for Logic 11.2.2 and 12.0.1.
Package layout
Logic saves a project in one of two forms with the same contents.
Project.logicx/
Resources/
ProjectInformation.plist
Alternatives/
000/ the first alternative
ProjectData
MetaData.plist
DisplayState.plist
DisplayStateArchive
WindowImage.jpg optional
Undo Data.nosync/ may be empty
Project File Backups/
001/ further alternatives, optional
Media/
Audio Files/ may be empty
Project/ a plain folder
.musicapps-project-folder an empty marker file
Audio Files/
Project.logicx/
Resources/ProjectInformation.plist
Alternatives/000/…
A project needs only ProjectData, MetaData.plist,
ProjectInformation.plist and any audio to open; the window image and
display state can be missing. The Library of Congress also lists playlists
(.plst) and images in Resources.
Alternatives
Each numbered folder in Alternatives is a full saved state of the project.
000 is the default. Their names are in
ProjectInformation.plist, and they share the project’s media.
Files in an alternative
| File | Kind | Holds |
|---|---|---|
ProjectData | Binary | The arrangement, tracks, automation, mixer, plug-ins and MIDI. See ProjectData. |
MetaData.plist | Binary property list | A summary of the project. ProjectData wins if the two disagree. |
DisplayState.plist | Binary property list | Windows and editors. Not documented. |
DisplayStateArchive | Keyed archive | Display settings; a binary property list starting bplist00 |
WindowImage.jpg | JPEG | A screenshot of the project window |
Undo Data.nosync/ | Folder | Undo history; the suffix keeps it from syncing to iCloud |
Project File Backups/ | Folder | Earlier copies of the project |
ProjectInformation.plist
| Key | Type | Meaning | Example |
|---|---|---|---|
BundleVersion | Integer | Format version | 2 |
LastSavedFrom | String | The app and version that last saved it | Logic Pro 12.0.1 (6590) |
HasProjectFolder | Boolean | True in the folder form | false |
projectAssetFlags | Integer | Asset settings; values not documented | 8265 |
VariantNames | Dictionary | Alternative number (as text) to name | {"0": "Project"} |
VariantNamesV2 | Dictionary | The same, with template tokens | {"0": "{PROJECT_NAME}"} |
WasOnceSavedFromLPX | Boolean | Saved at some time by Logic Pro X | true |
MetaData.plist
| Key | Type | Meaning |
|---|---|---|
BeatsPerMinute | Number | Tempo |
SampleRate | Integer | Sample rate in Hz. Setting it alone does not change a project’s rate. |
SongKey | String | Musical key |
SongGenderKey | String | Mode, such as major |
SignatureKey | Integer | Internal key signature index; values not documented |
SongSignatureNumerator, SongSignatureDenominator | Integer | Time signature |
NumberOfTracks | Integer | Track count |
Version | Integer | Metadata version, such as 3 |
FrameRateIndex, SurroundFormatIndex, SurroundModeIndex | Integer | Indexes; values not documented |
HasARAPlugins | Boolean | Uses ARA plug-ins |
HasGrid | Boolean | Live Loops grid in use |
isTimeCodeBased | Boolean | Uses timecode |
AudioFiles, UnusedAudioFiles | Array | Paths of the audio files used and unused |
SamplerInstrumentsFiles, QuicksamplerFiles, ImpulsResponsesFiles, UltrabeatFiles, PlaybackFiles | Array | Paths of other assets. The spelling ImpulsResponsesFiles is Logic’s. |
Session Player data
Drummer and Session Player settings are UTF-8 JSON embedded in
ProjectData, found by LogicFiles by scanning for it. The state includes
drummerModelTrackStates, keyed by track UUID, with fields such as
selectedCharacterIdentifier and isUsingProducerKit. Region
presets include RegionType and Preset with its
Parameters: intensity and dynamics (0 to 127),
humanize, swing, rComp, mComp and
fillsAmount (0 to 100), and variation (1 to 4).
Not confirmed
- The contents of
DisplayState.plist, and the values of index and flags fields. - Whether the keys differ in Logic before version 11.