Note: This project and its documentation were generated with the assistance of AI.
A simple Python script that converts Room EQ Wizard (REW) filter export text files into Reaper ReaEQ preset library (.RPL) files.
- Parses standard REW EQ text files.
- Supports
Include:directives for recursive configuration file parsing from Equalizer APO. - Converts Peak (PK), Low Shelf (LS/LSC), and High Shelf (HS/HSC) filters.
- Automatically translates REW's Q-factor to ReaEQ's Bandwidth (in octaves).
- Generates a ready-to-import
.RPLfile base64-encoded structure for Cockos Reaper.
Run the script from the command line, providing the input REW text file and the desired output .RPL file path:
python rew_to_reaeq.py <input_rew_file.txt> <output_preset.RPL>python rew_to_reaeq.py configs/config.txt outputs/main.RPLThe .RPL preset file generated by this script contains a Base64-encoded binary chunk representing the ReaEQ state. The script encodes it using the following internal binary structure (all numeric types are little-endian):
Note: This structure was analyzed with the assistance of AI. It may not be 100% correct for all edge cases, but it has been tested and works with the provided examples.
| Field | Size | Description |
|---|---|---|
| Header | 48 bytes | Standard Cockos ReaEQ preset header signature. |
| Chunk Size | 4 bytes | Calculated as 8 + (num_bands * stride) + len(suffix). |
| Sub-Header | 8 bytes | Magic bytes 01 00 00 00 00 00 10 00. |
| Stride | 4 bytes | Size of each band's data (33 bytes). |
| Number of Bands | 4 bytes | The total count of EQ bands. |
| Band Data | n * 33 bytes |
Sequence of band structures (see below). |
| Suffix | 16 bytes | Standard trailing magic bytes (two ints 1, 1 and one double 1.0). |
| Attribute | Data Type | Size | Description |
|---|---|---|---|
| Type | int |
4 bytes |
0 = Low Shelf, 1 = High Shelf, 8 = Band/Peak. |
| Enabled | int |
4 bytes |
1 = ON, 0 = OFF. |
| Frequency | double |
8 bytes | Frequency in Hz. |
| Gain | double |
8 bytes | Gain in linear scale ( |
| Bandwidth | double |
8 bytes | Bandwidth in octaves. |
| Flags | byte |
1 byte | Typically 0. |
rew_to_reaeq.py: The main conversion script.configs/: Directory for input REW filter text files.outputs/: Directory where the generated.RPLfiles are saved.