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

ToolReadsWritesSample rateBit depthChannels
wavelensWAV, integer or float PCMHTML report; JSON on request22.05 kHz – 192 kHz16/24/32-bit integer, 32/64-bit floatMono or stereo2
wavgen—WAV (PCM)22.05 kHz – 192 kHz16/24/32-bit integerMono or stereo1
wavchanWAV, integer or float PCM, plain or WAVEXWAV, same format as the input, plain or WAVEXAs in the files16/24/32-bit integer, 32/64-bit floatMono, stereo and multichannel, with named speaker positions
wavscanWAV, integer or float PCMText, JSON, CSV or an HTML reportAs in the file16/24/32-bit integer, 32/64-bit floatMono, stereo or multichannel
wavsummaryA 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

wavelensComparison engine

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
wavgenFree · Test signals

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
wavchanFree · Channels

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
wavscanPoint-in-time

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 wavelens report flagged
wavsummaryBatch & CI

From a folder of reports to one exit code.

  • Scans a directory of wavelens reports, 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 wavelens decided it

Across the toolkit

Download and try it→ See sample reports→ Read the docs→