What is the RPP file format?
An .rpp file is the main project file for REAPER, the digital audio workstation (DAW) developed by Cockos Incorporated. Unlike most DAW formats, .rpp is stored as plain text using Cockos's custom hierarchical chunk syntax, making it human-readable and version-control friendly.
The file starts with the text signature <REAPER_PROJECT at byte offset 0 and contains nested chunks for tracks, media items, FX chains, tempo maps, markers, regions, and render settings. .rpp files do not embed audio data - all media is stored as external files referenced by relative or absolute paths. This means moving an .rpp without its associated media folder will break playback.
REAPER automatically creates companion files alongside every project:
.rpp-bak- a backup copy written after each save.rpp-undo- the undo history for the session.rppx- a lightweight proxy stub that references the main.rpp
Because the format is plain text, .rpp files work naturally with Git and other version-control systems. Open-source libraries - rpp (Python/PyPI) and rppp (JavaScript/npm) - can parse and generate .rpp files programmatically without REAPER. The format has been in continuous use since REAPER 1.0 (2006) and remains backward-compatible across all REAPER 7.x releases.
Security & safety
RISK: LOWRPP is a plain-text file and cannot contain executable code. However, it references external audio and plugin files; a malicious RPP could reference paths designed to trigger vulnerable plugin parsers. Risk is very low in practice.
Format details
in a nutshellPrograms that open RPP files
Technical details
deep spec| File signature | ASCII text `<REAPER_PROJECT` at byte offset 0; no binary header |
| Encoding | Plain text - UTF-8 (modern projects) or system ANSI (legacy projects) |
| Container | Cockos custom hierarchical chunk format (plain-text key-value blocks) |
| Media embedding | None - all audio and video files referenced by relative or absolute path, never embedded in the file |
| Top-level chunk | `<REAPER_PROJECT>` containing nested `<TRACK>`, `<ITEM>`, `<SOURCE>`, `<FXCHAIN>` and other sub-chunks |
| Project sample rate | Stored as a project field (e.g. 44100, 48000, 96000 Hz); each referenced source file retains its own rate |
| Companion files | `.rpp-bak` (post-save backup), `.rpp-undo` (undo history), `.rppx` (lightweight proxy stub) |
| Version field | Version number on the `<REAPER_PROJECT` line; REAPER reads all historical format versions |
| Typical file size | 10 KB - 50 MB; grows with track, item, automation, and FX count |
| Version-control compatibility | Diff-friendly plain text; works natively with Git, SVN, and other VCS tools |
| Programmatic parsing | Open-source `rpp` library (Python/PyPI) and `rppp` (JavaScript/npm) available |
| Platform support | Windows, macOS, Linux (REAPER is cross-platform) |
| FX plugin references | VST, VST3, AU, and JSFX plugins referenced by path or identifier - not embedded in the file |
| Released | 2006 (REAPER 1.0) |
| Latest version | REAPER 7.x (2024); RPP format evolves with each major REAPER release but remains backward-compatible plain text |
| Specification | www.reaper.fm |
RPP conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about RPP files.