If an RMS reading differs from the normalization target, first compare the requested mode with the measurement method. A shared dBFS unit does not establish a shared measurement criterion. Adjusting the output gain merely to align the numbers can change compatibility with the original program.
I found this distinction in the audio verification records for a project connecting existing programs to a Rust CLI. A synthetic signal requested at -18 dBFS measured approximately -17.79153 dBFS when calculated arithmetically across the output file. A subsequent comparison found equal PCM samples from direct REAPER execution and the CLI route. I separated what that result established from what remained unknown.
Keep the failed measurement check in the record
The initial verification report marked its RMS measurement check as failed because the independent calculation did not match the requested target as expected. File creation and a successful process exit did not automatically pass that separate check.
I compared the saved installed REAPER help with the Rust batch-configuration code. The help describes the normalization mode and target arguments, and the code maps its rms option to that engine mode. That establishes how the option is passed. The resulting file still needs its own check.
Identify the calculation behind the measured value
The comparison code reads PCM samples from the output WAV, averages their squares, takes the square root and converts the result to dBFS. The formula below describes the whole-file arithmetic calculation used for this non-silent mono PCM16 comparison. It is not a statement of every RMS meter’s internal implementation.
The report’s native_rms_dbfs value was calculated by verification code reading the original engine’s output WAV. It was not read from REAPER’s internal meter. Following the field to its calculation avoided attributing the measurement to the engine itself.
I therefore keep the requested target separate from the whole-file arithmetic measurement. Approximately -17.79153 dBFS is a rounded value from the record, not a fresh measurement.
Explore the implementation
Whole-file arithmetic calculation used for the non-silent mono PCM16 comparison
rms = sqrt(sum(sample * sample) / sample_count)
dBFS = 20 * log10(rms / 32768)Compare the original engine before adding a correction
The historical direct control sent the same synthetic sine wave to the original REAPER batch converter and compared its output PCM with the CLI-produced output. For the selected 4-second signal, the sample arrays were equal. That is evidence that this control found no PCM difference introduced by the CLI route.
It does not establish REAPER’s internal RMS formula. The control code also derives an implied extra measurement duration from the observed value. That is an inference, not evidence that the engine actually measures such an interval. It was not used to justify adding an arbitrary constant to compensate for the arithmetic difference.
The final checks separately verify PCM agreement with the original engine and disclosure of the measurement difference. Passing them does not mean that whole-file arithmetic RMS became exactly -18 dBFS. A task requiring that particular result needs its own explicit requirement and measurement criterion.
Deliver the target with its measurement conditions
For a similar conversion, record the requested mode and target separately from the measured output. Identify the meter or formula, the interval read, the channels and sample format. If values disagree, a direct original-engine result under the same input and settings can provide a useful control.
Keep PCM compatibility with the original engine separate from reaching a target on a particular meter. Matching inputs, options and the output route may still leave the receiving workflow’s level requirement unverified. State which check passed.
For this article I read existing code, a saved installed-help capture and historical failure, direct-control and final-verification records. I did not run REAPER or the CLI, create or convert audio, or listen to actual speech or music. This synthetic-signal comparison does not establish quality or compatibility for all audio.