Skip to content

qa40x-rs Audio Analyzer v0.3.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Jul 20:55

Still an early stage release — but this one comes with a milestone: the A/B loopback bench against the official QA40x application is fully green for the first time (all 24 compared metrics within tolerance, under flat-top AND Hann analysis windows, on the same QA402).

What's fixed

  • THD at low fundamentals now matches the official app (#14): /ThdDb honors its max-harmonic parameter (it used to stop at 10 harmonics — optimistic, not cleaner), and the REST acquisition no longer analyzes a latency-gated window (the tone is played as a periodic continuation, so the analyzed frame is pure steady state). THD @ 100 Hz went from a −5.2 dB divergence to +0.86 dB agreement.
  • Output level is factory-calibrated (#8): the per-unit DAC trims are now applied when generating dBV stimuli, not just when reading them — absolute level agrees with the official app to 0.014 dB.
  • REST AudioGen amplitudes are dBV with the official call signatures (#20) — breaking if you scripted the old dBFS behavior: add your output range's dBV (e.g. dBFS + 8 on the +8 dBV range).

What's new

  • /Settings/Windowing/{Rectangle|Bartlett|Hamming|Hann|FlatTop} — the official (wiki-undocumented) analysis-window endpoint. The REST measurement default is now flat-top, like the official app at startup; set /Settings/Windowing/Hann for the previous behavior.
  • "Round to bin" toggle in the Signal Sources panel — the official app's Round to eliminate leakage, on by default; the actually-played frequency is shown next to the ask (e.g. 1000 Hz → 1000.4883 Hz). Off plays the exact asked frequency.
  • The A/B bench grew a window matrix (same window forced on both apps per pass), a THD-method probe, per-acquisition spread reporting, and an offline --probe mode — that tooling is what found the two bugs above.

Docs

  • New verified A/B baseline (24/24 × 2) and a root-cause post-mortem in doc/bench-ab.md.

"Negative Feedback" still welcome ;)