FN Slowed + Reverb V5: clean validation build

Extract and open FN-Slowed-Reverb-V5-Preview.html in Chrome or Firefox. This is not deployed to the live website.

Main view: upload/demo, two presets, speed, reverb amount, Render. More options & details contains pitch, reverb character, decay/warmth, BPM, test section, detailed stats, troubleshooting and credits. Settings survive closing it; Adjusted indicates advanced values are active.

Render first creates a WAV preview and retains processed PCM. Download defaults to MP3; switching to WAV reuses processed audio, not the effects pipeline. MP3 requires internet access to cdn.jsdelivr.net for lamejs 1.2.1. The preview uses PCM WAV, while MP3 export is lossy. Both derive from the same processed PCM; browser MP3 padding can slightly change reported duration.

20-second demo with phrase pauses. Its BPM is 100 known. Uploaded BPM detection is a rough onset autocorrelation estimate, not the final detector. Manual overrides show separately and can be reset. Source duration is displayed separately from retained reverb tail. Only appended quiet tail is trimmed (threshold -90 dBFS, 250ms padding, 10ms fade); original source duration is preserved.

Checks: Chrome demo rendering, known/manual BPM display, retained reference, target updating, advanced indicator, post-render format control and cached WAV download preparation. JavaScript syntax, stereo tail preservation and BPM mapping checks passed. Firefox/mobile, MP3 in this revised flow, and real-track tail listening still need validation. Previous version was reported working for full-length MP3 by the user in Chrome and Firefox.

No audio upload or telemetry. Diagnostics exclude filenames/audio/tags. Sample-peak protection only. Cancelling a worker stops it; native offline processing may complete internally. System fonts fallback if Google Fonts cannot load.

Licences/source: Signalsmith source and MIT licence are in source/signalsmith-stretch-main.zip. Faust compiler/libraries/notices are in source/faustwasm-master.zip; generated DSP/metadata in source/compiled. MP3 uses lamejs (LGPL), https://github.com/zhuker/lamejs ; externally loaded at https://cdn.jsdelivr.net/npm/lamejs@1.2.1/lame.min.js . No input metadata copied; export includes processing comment.

Build from the full workspace with python3 source/build.py; relative vendor paths are documented in that script. This is an evaluation package, not a deployment bundle.

Latest revision: Process track replaces Render audio. More options & details has a stronger red/amber accent. Custom settings explanation is inside details, with a small dot outside for manual advanced changes (preset-only changes do not trigger it). Download has dedicated MP3 preparation progress, Download started feedback and Download again wording. A browser save completion cannot be confirmed by the page. Logic and syntax checks passed; latest visual browser check remains pending.

Player revision: full-width custom processed-audio player, prominent Play/Pause, long red seek bar, elapsed/total time, no volume control (use device volume). Native audio element is retained hidden for playback. Text: Your audio is ready! Click Play to listen, then choose a download format below. Player logic and download tests passed. Browser playback/appearance for this player revision still need user validation.
