Project Structure#

In Zrythm, work is saved inside projects. Projects consist of a directory with a project file describing the project along with additional files and directories used by the project, such as audio files and plugin states.

Backups#

Backups are also kept in the project directory, and each backup is a standalone project on its own - ie, it contains all the files it needs to load as a separate project.

Projects inside the backups dir of a parent project are considered backups of the parent project.

Hint

Zrythm will keep backups automatically by default during autosave. You can change the autosave interval or turn it off in the preferences.

Project Directory#

~/zrythm/Projects/myproject # Project directory
├── backups # Project backups
│   ├── myproject.bak
│   │   ├── exports
│   │   │   └── stems
│   │   ├── plugins
│   │   │   ├── ext_file_copies
│   │   │   ├── ext_file_links
│   │   │   └── states
│   │   │       ├── LSP Multi-Sampler x12 Stereo_IDSDZ0
│   │   │       ├── Vital_QSQHZ0
│   │   │       ├── Vital_TPMNZ0
│   │   │       └── Vital_Y3N3Y0
│   │   └── project.zpj
│   └── myproject.bak1
│       ├── exports
│       │   └── stems
│       ├── plugins
│       │   ├── ext_file_copies
│       │   ├── ext_file_links
│       │   └── states
│       │       ├── LSP Multi-Sampler x12 Stereo_IDSDZ0
│       │       ├── Vital_QSQHZ0
│       │       ├── Vital_TPMNZ0
│       │       └── Vital_Y3N3Y0
│       └── project.zpj
├── exports # Project exports
│   ├── stems
│   └── mixdown.FLAC
├── plugins # Plugin states
│   ├── ext_file_copies
│   ├── ext_file_links
│   │   ├── lo-fi-cow.wav
│   │   ├── sn1.wav
│   │   ├── sn2.wav
│   │   ├── sn3.wav
│   │   └── sn4.wav
│   └── states
│       ├── LSP Multi-Sampler x12 DirectOut_0NVNZ0
│       │   ├── lo-fi-cow.wav
│       │   ├── manifest.ttl
│       │   ├── sn1.wav
│       │   ├── sn2.wav
│       │   ├── sn3.wav
│       │   ├── sn4.wav
│       │   └── state.ttl
│       ├── LSP Multi-Sampler x12 DirectOut_G7EBZ0
│       │   ├── manifest.ttl
│       │   └── state.ttl
│       ├── LSP Multi-Sampler x12 Stereo_IDSDZ0
│       │   └── state.carla
│       ├── LSP Multi-Sampler x24 Stereo_XC88Y0
│       │   ├── manifest.ttl
│       │   └── state.ttl
│       ├── Rubber Band Stereo Pitch Shifter_1NPNZ0
│       │   └── state.carla
│       ├── ToTape6_8MNJZ0
│       │   └── state.carla
│       ├── Vital_9S87Y0
│       │   └── state.carla
│       └── Vital_Y3N3Y0
│           └── state.carla
├── pool # Audio file pool
│   ├── perfect_kick_body_5.wav
│   ├── Audio Track - lane 1 - recording.wav
│   └── Audio Track - lane 2 - recording.wav
└── project.zpj # Project file

Project File Format#

Zrythm project files (project.zpj) are zstd-compressed JSON files (the project file MIME type x-zrythm-project is an alias of application/zstd).

Project files can be converted to JSON using:

zstd -d project.zpj -o project.json

Audio Pool#

The audio pool (pool directory) contains all audio files currently used by the project. Zrythm will automatically delete unused files during save.

Note

These files will be copied to backups as well.

Project Compatibility#

Project format is not expected to change in a breaking way. When we make changes to the project format, Zrythm will auto-convert old projects to the new format.