antissa

One desktop suite for fixed-point signal design. Compare waveforms, debug live values across builds, diagnose precision losses — without rebuilding your DSP code to instrument it.

About Mantissa

Built by Mohammadreza Naghibzadeh for fixed-point porting and verification work. Questions or consulting work? Get in touch →

Wave Compare

Per-sample comparison between a float reference and one or two fixed-point ports of the same signal.

Select files and compare

Pick a float reference and one or two fixed-point .wav candidates — Wave Compare loads them onto a shared time axis and runs wav-diff straight away.

Navigate MLD, MAD, and SSNR

Step through the per-channel MLD (maximum loudness difference, BS.1387 perceptual), MAD (maximum absolute sample difference), and min SSNR (worst 20 ms segmental SNR) figures, jumping the plot to each worst-mismatch sample.

Audio playback

Play the reference and the candidates from any point on the shared timeline to hear where the fixed-point port drifts.

What it does

Load a float reference and one or two fixed-point candidates. Wave Compare overlays them in a shared time-axis plot and runs wav-diff per channel and reports three metrics: MLD (maximum loudness difference — the BS.1387 / 3GPP TR 26.843 perceptual ear-model peak), MAD (maximum absolute sample difference), and min SSNR (the worst 20 ms segmental SNR). Each metric drops a coloured marker on the plot so you can jump straight to the offending sample.

Typical workflow

  1. Drop a float .wav as the reference.
  2. Drop one or two fixed-point .wav files as candidates.
  3. Read the per-channel MLD / MAD / SSNR report.
  4. Click a marker to seek to the worst-mismatch sample in all overlays simultaneously.

Open Wave Compare from the activity rail's mode switcher inside the desktop app.

Debugger

Live fixed-point vs. float variable inspection, attached to a real running build.

Find and fix a precision bug live

Attached to a running build, the Debugger plots a fixed-point buffer against its float reference and pinpoints where precision is lost. Overwrite the bad buffer in place — written back from the float reference at the right Q-format — and the divergence is gone, without rebuilding.

What it does

Attach to a Visual Studio, VS Code (DAP), or GDB session and bind a fixed-point variable to its float counterpart. The pair is polled live, plotted side-by-side, and tagged with MLD markers so you can see where precision drifts in time — without rebuilding to instrument the code.

Backends

  • Visual Studio — attach via the running debug session.
  • VS Code (DAP) — attach via the Debug Adapter Protocol.
  • GDB — attach to a local gdbserver or running gdb.

Per-pair features

  • Q-factor auto-suggest based on observed range.
  • MLD markers overlaid on both float and fixed plots.
  • In-place editing — write a new value back to the running process.

Open Debugger from the activity rail's mode switcher inside the desktop app.