La Web Audio API è un motore audio dentro ogni browser: un grafo di nodi – oscillatori, filtri, gain, delay, analizzatori – da collegare in JavaScript come un modulare. Un synth sottrattivo minimale sono dieci righe: OscillatorNode → BiquadFilterNode → GainNode → uscita.
Le cose da sapere per farci musica sul serio:
- il timing preciso non si fa con
setTimeoutma con lo scheduling sul clock audio (currentTime+ lookahead): è la differenza tra un sequencer e un ubriaco - l'audio parte solo dopo un gesto dell'utente (policy anti-autoplay): il classico bottone "start"
- per il DSP pesante ci sono gli AudioWorklet – codice audio nel thread giusto – e da lì il salto a WebAssembly: DSP scritto in Rust/C++ che gira nel browser a velocità nativa. È esattamente l'architettura di MIXI: Web Audio come impianto, Rust/Wasm come muscoli, MIDI via Web MIDI API
Con un po' di generazione sopra, il browser è ormai uno studio legittimo: zero installazione, condivisibile con un link.