Skip to content
This repository has been archived by the owner on Jun 17, 2020. It is now read-only.
/ loudnessnorm Public archive

An implementation of RMS based Audio Normalization (not peak based)

License

Notifications You must be signed in to change notification settings

tripulse/loudnessnorm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

loudnessnorm

An implementation of RMS based audio normalization in Rust. Currently, it's only able to decode WAVE files with 32-bit floating point samples (because it's easier to work with).

The loudness of the samples are normalized by calculating the RMS then the gain is changed to bring the average amplitude of the source signal to a target level (by default 0 dBFS).

Installation

For Windows NT based systems just download the executable from AppVeyor. Navigate to one of the option listed there then head to the ARTIFACTS tab and download the executable listed here.

A package on crates.io is also present. If the toolchain for Rust is already present in the system then run this command (it's better because it natively compiles in your system).

cargo install loudnessnorm

  • Why 32-bit floating point?

    The intent was to keep the source files the same specs. But, the WAVE library I'm using for I/O doesn't allow this kind of behaviour (conversion of sample formats is not allowed). The final descision is to keep it 32-bit floating point because sample conversion would add a overhead to the program.