- EncodeMP3: writes stereo PCM frames to MP3 via go-lame (44100 Hz, 128 kbps, stereo)
- RunSynthesis: renders WindowSnapshots through OscillatorBank then encodes to MP3
- Zero-packet guard before file creation returns descriptive error (OUT-03)
- InitParams called after all Set* calls per go-lame requirements
- TestMP3Valid: synthetic snapshots through full pipeline, ffprobe validation
- TestZeroPacketError: empty slice and zero-count snapshots return error, no file created
- TestEncodeMP3DirectBytes: direct frame encoding validated by ffprobe