Program to check if stereo wav files have identical channels (faux-stereo) and convert them to mono.
Clone or download
indiscipline Merge pull request #1 from indiscipline/dev
feat: Support reading IEEE Float files
fix: Showing errors when processing multiple files
refactor: Separate config module
refactor: Abstracting sample copying logic to macros
refactor: Clippy warnings fix
Latest commit c4af630 Aug 11, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
src refactor: Per Clippy warnings Aug 11, 2016
.gitignore feat: Support reading IEEE Float files Aug 11, 2016
.travis.yml Add .travis.yml Aug 1, 2016
Cargo.lock feat: Support reading IEEE Float files Aug 11, 2016
Cargo.toml Separate config module. Aug 2, 2016
LICENSE Initial commit Aug 1, 2016
LICENSE-CLAP Initial commit Aug 1, 2016 docs: README updates Aug 11, 2016


Build Status Build status License

Command line application for checking WAV-files for identical channels, detecting faux-stereo files generated by some audio-editing software and DAWs (such as old versions of Cubase). Outputs a true-mono WAV file on detection of faux-stereo. Takes left channel of the input file, writes in the same location with -MONO suffix in file name.

Developed using these wonderful crates:

Hound, Clap, pbr


Basically, provide zrtstr with input file as an argument, or run it from a directory full of target WAV files.

Full help available on --help switch.

Latest Windows binaries are luckily provided in Releases via Appveyor.

How does it work?

Zrtstr reads interleaved channel samples from a target stereo file one by one and compares left and right samples. If the difference is present (or higher than the threshold given in --dither mode) than file considered true-stereo and program tries to write a mono copy.

How to build

Developed on Rust Nightly, but should build with stable or beta as well.

To build the code, run:

$ cargo build --release

and the executable will be in target/release/zrtstr.


Here are the current problems and planned features:

  • Float support: Add writing support for IEEE Float files (upstream-dependent)
  • Add automatic tests


This is an enthusiast project, so any help and/or critique will be much appreciated.

Feel free to file a bug report or feature request via Issues.


zrtstr licensed under GNU General Public License version 2 or later;

See LICENSE file for full details.