# Robot 36 audio-level comparison

This is a generated-file experiment with Open-SSTV 0.6.18. It is not an SSTV Signal Desk/Lite app, microphone, radio or weak-signal benchmark. No extra noise was added.

## Reproduce

Use Python 3.11+ with the pinned Open-SSTV dependencies, NumPy and Pillow installed. Keep decoder source identical to `f773bd4fcb9da0c68ab915e9a1fa2c024bfdcc98`; the recorded checkout also contains documentation-only changes. The script checks the source tree against that base.

Download `robot36.wav` from this directory, and run in that Python environment:

```sh
python reproduce-level-check.py robot36.wav /path/to/Open-SSTV new-output-directory
```

The output directory must not exist. The source WAV SHA-256 must be `dbb64c8cb34d3599c5aa7c36144746039632832da554eefff324a9fc68ae0166`.

The script creates three 48 kHz mono 16-bit PCM WAVs: unchanged, -48 dB, and +18 dB rounded and hard-clipped to the signed 16-bit range. It runs each through the recorded CLI, saves real logs and PNGs, counts clipped samples, and computes average absolute RGB channel differences from the control decode. Clipping percentages include every sample in the file, including silence. Negative signed PCM has one extra magnitude value, explaining the reported 32768 peak.

## Recorded result and limits

All three cases decoded as 320 x 240 Robot 36. Quiet and clipped images were not pixel-identical to the unchanged control; mean RGB differences were about 0.503 and 0.790 on a 0-255 channel scale. These numbers are not perceptual quality scores, a recommended input gain, or a clipping tolerance specification. A clean attenuated file does not recreate a noisy live receiver path. One successful clipped fixture is not evidence that clipping is harmless.

The result JSON contains exact input hashes, source revision, Python/NumPy/decoder versions and commands. `level-quiet-20261109.png` and `level-clipped-20261109.png` are actual outputs. There is no new upstream submission.
