Three.js + Web Audio FFT visualizer with Constellation, Texture, Frequency and Modulation views. Vite build, node --test suite. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JABXBRLs9T6nqHKUVwoTHJ
2.0 KiB
Sonora audio space
Standalone browser instrument inspired by Lucio Arese's “A Nightingale's Song Translated Into Data”: black plotting space, fine grids, luminous points, connected histories and three coordinated views. Built separately from BudgyAI.
Design and scope
Large spread–entropy plot with two smaller tone and modulation plots. Each is real 3D with orbit/zoom. Quiet graphite controls, warm white text, spectral violet, coral and yellow reserved for data. System sans for controls; monospaced numerals for scientific readouts. Desktop has a narrow control rail, mobile stacks controls and plots.
Files are selected or dropped locally. HTML media playback feeds Web Audio FFT analysis, then Three.js buffers. No file leaves the browser. Browser codec support determines playable formats. Generated demo is original synthesis, not the reference recording. Initial illustrative preview is explicitly labeled.
Features: play/pause, seek, volume, file replacement, trail length, sensitivity, palette, auto rotation, reset camera, fullscreen, three selectable main plots. RMS amplitude, power-weighted spectral centroid/spread, normalized Shannon entropy and spectral flatness are computed from measured samples. Modulation view uses frame-to-frame centroid and amplitude changes, not an exact reconstruction of the artist's unpublished algorithm.
Implementation plan
- Write numerical analysis tests for silence, single tones, uniform noise and invalid values; observe failure, implement and pass.
- Build a bounded 3D history renderer with labeled axes, point glow, trails, responsive sizing and orbit controls.
- Build local playback and upload lifecycle; clean object URLs on replacement, display codec errors, clear history on seeks and replacements, sample only when playing.
- Compose responsive controls and demo audio. Verify uploads, playback, seeking, replacements, controls and mobile layout in the browser. Run tests and production build.
No backend changes, deployment or changes to the existing app are required.