WaveLens is a command-line toolkit for objective audio QA. One tool compares audio; four companions generate test material, rearrange channels, inspect a single moment, and roll many results into one pass/fail answer. wavelens, wavscan and wavsummary come with a WaveLens license; wavgen and wavchan are free downloads.
Supported audio
| Tool | Reads | Writes | Sample rate | Bit depth | Channels |
|---|---|---|---|---|---|
wavelens | WAV, integer or float PCM | HTML report; JSON on request | 22.05 kHz – 192 kHz | 16/24/32-bit integer, 32/64-bit float | Mono or stereo2 |
wavgen | — | WAV (PCM) | 22.05 kHz – 192 kHz | 16/24/32-bit integer | Mono or stereo1 |
wavchan | WAV, integer or float PCM, plain or WAVEX | WAV, same format as the input, plain or WAVEX | As in the files | 16/24/32-bit integer, 32/64-bit float | Mono, stereo and multichannel, with named speaker positions |
wavscan | WAV, integer or float PCM | Text, JSON, CSV or an HTML report | As in the file | 16/24/32-bit integer, 32/64-bit float | Mono, stereo or multichannel |
wavsummary | A folder of wavelens reports (searched recursively) | HTML summary; JSON on request | — | — | — |
1 Stereo output from wavgen puts the same signal on both channels; to get different left and right content, make each channel separately and combine them with wavchan.
2 wavelens reads PCM WAV, integer or floating-point — no compressed files — and compares one mono or stereo pair at a time; for 5.1 or 7.1 material, split it into stereo or mono pairs with wavchan first.
The toolkit
Reference against device under test, down to the sample.
- Lines the two files up in time automatically — extra silence or latency at the start doesn't matter
- Six checks in every run: Bit-Exactness, Level Fidelity, Artifact Detection, Spectral Fidelity, Distortion (THD+N) and Loudness (ITU-R BS.1770)
- Optional deeper checks: Time Domain and Impulse Template, plus a tolerant bit-accuracy reading
- Catches an incomplete device-under-test file instead of quietly comparing only the part that lined up
- One self-contained HTML report: interactive charts, failed checks marked, and the worst point located (sample, frame or frequency)
- Plot any single file on its own, and trim a sync-tone-wrapped recording down to its content
- Raw results as JSON when you want them for your own scripts
- Set your own tolerances with a defaults file, per-run overrides and named shortcuts, and choose which checks decide the verdict
- Optionally record who ran the test (engineer, product, company) in the report footer
Precise, repeatable test material.
- Single tones and multi-tone stacks; linear and logarithmic sweeps
- Amplitude staircases and free-form level steps, such as a compressor attack or release burst
- White and pink noise, with a seed so every run produces the identical file
- Band-limited square and sawtooth waves that don't alias on their own
- DC offset and polarity inversion on any signal
- Optional sync-tone wrapping, so a recording can be found and trimmed automatically later
- 16-, 24- or 32-bit, 22.05 kHz to 192 kHz, mono or stereo
Split, pack, join and mix.
- Split a stereo or multichannel file into per-channel files, or into stereo pairs
- Pack mono and stereo files into one stereo or multichannel file — the way to build genuinely different left and right content
- 18 named speaker positions (front, center, LFE, surrounds, heights and more) using standard WAVEX channel masks
- Join files end to end in time, or mix them together sample by sample
- Inspect a file's channel layout without writing anything
- 16-, 24- and 32-bit integer and 32- and 64-bit float PCM, plain or WAVEX, written back in the same format
What frequencies are present, right here?
- Frequency content and level at any timestamp or sample index — no reference file needed
- The dominant frequency plus the next loudest distinct peaks, with an adjustable analysis window and noise floor
- Query every channel or just one
- Output as text, JSON, CSV, or a self-contained HTML report with the peaks labeled
- Jump straight to the point a
wavelensreport flagged
From a folder of reports to one exit code.
- Scans a directory of
wavelensreports, including subfolders - One page with the totals, plus each failure and the checks that failed
- A JSON companion for dashboards and scripts
- An exit code that fails the build when any report fails
- Reports each verdict exactly as
wavelensdecided it
Across the toolkit
- Nothing to install. Every tool is a single self-contained executable — no installer, no runtime, no server.
- Works offline. License verification is local, and the tools never send your audio, your reports or any usage data anywhere.
- Built for scripts and CI. Plain command lines, files in and files out, and an exit code you can gate a build on.
- Documented. Each tool comes with a user guide in the download, and the full documentation is online.