- Create lightsync/audio/waveform.py with extract_peaks() (AUD-05) - MP3 via ffmpeg pipe, WAV/FLAC/OGG via soundfile+numpy - Add GET /api/audio/waveform endpoint with asyncio.to_thread - peaks param clamped 100-5000, returns {peaks, count, file}