Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/indiscipline/zrtstr
Check if stereo WAV files have identical channels (faux-stereo) and convert them to mono.
https://github.com/indiscipline/zrtstr
audio audio-engineering audio-processing mixing mixing-audio rust sound-engineering stereo wav
Last synced: 26 days ago
JSON representation
Check if stereo WAV files have identical channels (faux-stereo) and convert them to mono.
- Host: GitHub
- URL: https://github.com/indiscipline/zrtstr
- Owner: indiscipline
- License: gpl-2.0
- Created: 2016-08-01T10:16:18.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-08-26T15:55:14.000Z (4 months ago)
- Last Synced: 2024-10-27T20:19:40.946Z (about 2 months ago)
- Topics: audio, audio-engineering, audio-processing, mixing, mixing-audio, rust, sound-engineering, stereo, wav
- Language: Rust
- Homepage:
- Size: 33.2 KB
- Stars: 31
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust - indiscipline/zrtstr - stereo (i.e. have identical channels) and converting such files to mono. [<img src="https://api.travis-ci.org/indiscipline/zrtstr.svg?branch=master">](https://travis-ci.org/indiscipline/zrtstr) (Applications / Audio)
- awesome-rust-zh-cn - indiscipline/zrtstr - ci.org/indiscipline/zrtstr.svg?branch=master">](https://travis-ci.org/indiscipline/zrtstr) (音频(Audio) / 天文(Astronomy))
- awesome-rust - indiscipline/zrtstr - stereo (i.e. have identical channels) and converting such files to mono. [<img src="https://api.travis-ci.org/indiscipline/zrtstr.svg?branch=master">](https://travis-ci.org/indiscipline/zrtstr) (应用 Applications / 音频 Audio)
- awesome-rust-zh - indiscipline/zrtstr - 一个命令行实用程序,用于检查立体声 wav 文件是否是人造立体声(即具有相同的通道),并将这些文件转换为单声道。[<img src="https://api.travis-ci.org/indiscipline/zrtstr.svg?branch=master">](https://travis-ci.org/indiscipline/zrtstr) (应用 / 音频)
- awesome-rust-cn - indiscipline/zrtstr - stereo (i.e. have identical channels) and converting such files to mono. [<img src="https://api.travis-ci.org/indiscipline/zrtstr.svg?branch=master">](https://travis-ci.org/indiscipline/zrtstr) (应用 / Audio)
README
# zrtstr
[![License](https://img.shields.io/badge/license-GPLv2-blue.svg)](https://github.com/Indiscipline/zrtstr/blob/master/LICENSE)
> [Third Hemisphere Studio](https://thirdhemisphere.studio) toolingCommand 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 the left channel of the input file, writes the converted file in the same location with the `-MONO` suffix in the name.
## Usage
Provide zrtstr with an input file as an argument, or run it from a directory full of target WAV files.Full help available on `--help` switch.
## 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 (and higher than the threshold given in `--dither` mode) than file considered true-stereo and program tries to write a mono copy.**Defaults include a reasonable dither threshold value, for strict checking set it to zero with `-d 0`!**
## Installation
Zrtstr is tested to work under Windows and GNU/Linux. Probably works on OSX with no changes.### Download
**Binaries** for the main platforms are provided in [Releases](https://github.com/indiscipline/zrtstr/releases).### How to build
Developed on nightly Rust, as stable makes getting samples for multiple channels a bit more problematic for `hound`.Built using these wonderful crates: **[Hound](https://github.com/ruuda/hound)**, **[Clap](https://github.com/kbknapp/clap-rs)**, **[pbr](https://github.com/a8m/pb)**.
To build the program, download the source code and run:
```
$ cargo build --release
```and the executable will be in `target/release/zrtstr`.
## TODO
Here are the current problems and planned features:- [ ] Dither thresholding in dB
- [ ] Variable default dither threshold based on bitdepth
- [ ] Add automatic tests## Contributing
The project is open for contributions. Any help and/or critique is appreciated. Take a stab at the TODO list above.Feel free to file a bug report or feature request via [Issues](https://github.com/Indiscipline/zrtstr/issues).
## License
**zrtstr** licensed under GNU General Public License version 2 or later;See `LICENSE` file for full details.