Skip to content

KanKub/REW-to-ReaEQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

REW to ReaEQ Converter

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.

Features

  • 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 .RPL file base64-encoded structure for Cockos Reaper.

Usage

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>

Example

python rew_to_reaeq.py configs/config.txt outputs/main.RPL

RPL Data Structure

The .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.

Overall Structure

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).

Band Data Breakdown (33 bytes per band)

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 ($10^{gain_{dB} / 20}$).
Bandwidth double 8 bytes Bandwidth in octaves.
Flags byte 1 byte Typically 0.

Project Structure

  • rew_to_reaeq.py: The main conversion script.
  • configs/: Directory for input REW filter text files.
  • outputs/: Directory where the generated .RPL files are saved.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages