# Resampling and header-only rate changes

Original constructed Saturalabs reference signals, separate from the 23-file WAV
reference ZIP. No source-library or collection license is changed by these notes.

- Source: one second, 44,100 frames, mono PCM16 at 44,100 Hz; a 440 Hz sine with
  peak amplitude 4096/32768 and 20 ms linear edge fades.
- Resampled: FFmpeg decodes that WAV and creates PCM16 at 48,000 Hz, retaining
  one second and approximately 440 Hz with 48,000 frames.
- Header-only: source bytes copied, sample-rate field changed to 48,000 and
  byte-rate field to 96,000. The PCM payload remains identical. Its 44,100 frames
  now play in 0.91875 seconds, approximately 478.91 Hz.

These are teaching files, not browser-converter outputs, AI separation examples,
music-quality benchmarks, equipment calibration or a recommended way to convert
recordings. Keep your own original and use actual resampling for rate conversion.

`reference.json` records actual frame counts, sizes, SHA-256 hashes and positive
zero-crossing tone estimates, excluding 100 ms at each edge. File size includes
all WAV chunks. Playback software may internally resample the file; the stored
header and the playback device's setting are separate facts.

Reproduce from the repository root with Python 3 and FFmpeg installed:

    python3 scripts/generate-resampling-reference.py

The generator makes all three WAVs and their report. Different FFmpeg versions
may produce different bytes or samples; remeasure and update the report together.
No browser playback or subjective comparison is asserted by this generation step.
