Indiscipline

Mild achievements and severe disappointments

posted by Kirill on 2023-04-10

Rearchiver logo

This is a release post for Rearchiver — a little command line program for preparing your Reaper projects for archiving.

Rearchiver:

  • Scans the project file for all used WAV files
  • Finds them in the project directory and converts to FLAC
  • Changes the links to the successfully converted source files in the RPP file accordingly
  • Optionally deletes processed source files and their .reapeaks
  • Outputs the corrected project file

It’s a Free Software (GPLv3) program written in Nim.

Description

When working on mixes, I prefer to keep my files uncompressed to avoid the overhead of decoding files on the fly. While negligible for a regular playback, multitrack projects with dozens of tracks can incur an additional load on the CPU. I even recall that earlier versions of Reaper had a noticeable lag on play or zooming when the item sources were not WAVs.

FLAC compression ratios are just to good to not use it when the project is ready and is being prepared for long-term storage.

This program could be a Reaper script or just an action macro inside the DAW, but I like separating such functionality into independent utilities. This gives me the ability to better inspect the changes, simplifies automation and, honestly, just helps me separate the steps of the workflow and prevents doing everything at once.

I’ve been using the program for some time and find it pretty useful. Still, there’s some room for improvement. The biggest shortcoming lies with Flac itself - it doesn’t support 32 bit floating point PCM. I normally don’t use this format besides rendering the mixes for mastering, but sometimes clients provide their tracks this way. As I usually try to keep everything without performing any additional conversions, especially lossy ones, such as bit depth reduction, it would be nice to be able to compress those files too. There’s another wonderful lossless codec which does support 32b floats: WavPack. It’s decompression speeds are slower than Flac, but the ratios are just as good if not better. Supporting WavPack as an alternative codec or a fallback when Flac is unavailable is an obvious first candidate for future improvements.

Usage

Rearchiver is a command line application. It relies on Flac for conversions, so the flac program must be present in your PATH or placed in the same directory as rearchiver executable.

By default the edited project file is written to the standard output, use redirection or -o to write to a file:

# redirect standard output to a file
rearchiver INPUT.rpp > output.rpp
# write to a file
rearchiver INPUT.rpp -o output2.rpp

Rearchiver is interactive, it will print the pairs of the found WAV files and the proposed names for the FLACs and will ask for your confirmation. Use -y to bypass the confirmation.

Additional options are available in help: rearchiver --help.

Disclaimer

Rearchiver tries to be conservative and will not overwrite anything unless asked by the user. However, there might be bugs.
This software is provided without any guarantees.

Installation

Rearchiver is tested to work under Windows and GNU/Linux. Probably works on OSX with no changes.

Download a binary from the Github release assets or compile yourself. Github page has all the instructions for building manually.

Feedback

For your feature requests, bugs, suggestions, please use the Github Issues page. I’d be happy to hear from you if you simply tried the program, whether you liked it or not. Don’t hesitate to contact me. If you find the program useful, donations are welcome and greatly appreciated.