{"id":13436431,"url":"https://github.com/indiscipline/zrtstr","last_synced_at":"2025-04-14T04:21:58.546Z","repository":{"id":152253977,"uuid":"64657436","full_name":"indiscipline/zrtstr","owner":"indiscipline","description":"Check if stereo WAV files have identical channels (faux-stereo) and convert them to mono.","archived":false,"fork":false,"pushed_at":"2024-08-26T15:55:14.000Z","size":34,"stargazers_count":32,"open_issues_count":4,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T18:13:34.525Z","etag":null,"topics":["audio","audio-engineering","audio-processing","mixing","mixing-audio","rust","sound-engineering","stereo","wav"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/indiscipline.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-01T10:16:18.000Z","updated_at":"2025-02-07T17:34:07.000Z","dependencies_parsed_at":"2024-01-21T00:14:26.869Z","dependency_job_id":"9fa5e12a-092c-405f-88a3-59bdf619dc5f","html_url":"https://github.com/indiscipline/zrtstr","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Fzrtstr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Fzrtstr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Fzrtstr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Fzrtstr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indiscipline","download_url":"https://codeload.github.com/indiscipline/zrtstr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248819676,"owners_count":21166522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-engineering","audio-processing","mixing","mixing-audio","rust","sound-engineering","stereo","wav"],"created_at":"2024-07-31T03:00:48.160Z","updated_at":"2025-04-14T04:21:58.525Z","avatar_url":"https://github.com/indiscipline.png","language":"Rust","funding_links":[],"categories":["Applications","Rust","Applications written in Rust","应用 Applications","应用","音频（Audio）"],"sub_categories":["Audio","Audio and Music","音频 Audio","音频","天文（Astronomy）"],"readme":"# zrtstr \u003cimg src=\"zrtstr.svg\" align=\"right\" alt=\"fzrtstr logo\" width=\"20%\"/\u003e\n[![License](https://img.shields.io/badge/license-GPLv2-blue.svg)](https://github.com/Indiscipline/zrtstr/blob/master/LICENSE)\n\u003e [Third Hemisphere Studio](https://thirdhemisphere.studio) tooling\n\nCommand 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.\n\n\n## Usage\nProvide zrtstr with an input file as an argument, or run it from a directory full of target WAV files.\n\nFull help available on `--help` switch.\n\n## How does it work?\nZrtstr 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.\n\n**Defaults include a reasonable dither threshold value, for strict checking set it to zero with `-d 0`!**\n\n## Installation\nZrtstr is tested to work under Windows and GNU/Linux. Probably works on OSX with no changes.\n\n### Download\n**Binaries** for the main platforms are provided in [Releases](https://github.com/indiscipline/zrtstr/releases).\n\n### How to build\nDeveloped on nightly Rust, as stable makes getting samples for multiple channels a bit more problematic for `hound`.\n\nBuilt using these wonderful crates: **[Hound](https://github.com/ruuda/hound)**, **[Clap](https://github.com/kbknapp/clap-rs)**, **[pbr](https://github.com/a8m/pb)**.\n\nTo build the program, download the source code and run:\n\n```\n$ cargo build --release\n```\n\nand the executable will be in `target/release/zrtstr`.\n\n## TODO\nHere are the current problems and planned features:\n\n- [ ] Dither thresholding in dB\n- [ ] Variable default dither threshold based on bitdepth\n- [ ] Add automatic tests\n\n## Contributing\nThe project is open for contributions. Any help and/or critique is appreciated. Take a stab at the TODO list above.\n\nFeel free to file a bug report or feature request via [Issues](https://github.com/Indiscipline/zrtstr/issues).\n\n## License\n**zrtstr** licensed under GNU General Public License version 2 or later;\n\nSee `LICENSE` file for full details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findiscipline%2Fzrtstr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findiscipline%2Fzrtstr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findiscipline%2Fzrtstr/lists"}