Il riverbero più realistico nel browser si ottiene con il ConvolverNode, che applica al suono l'impronta acustica di un luogo reale: una chiesa, una stanza, un garage.

const convolver = ctx.createConvolver();

// carica una "impulse response": la firma acustica di un ambiente
const res = await fetch("/ir/hall.wav");
const buf = await res.arrayBuffer();
convolver.buffer = await ctx.decodeAudioData(buf);

osc.connect(convolver);
convolver.connect(ctx.destination);

Il trucco è la impulse response: un breve file audio che cattura come un ambiente risponde a un impulso secco. Il convolver "moltiplica" il tuo suono per quella firma, e improvvisamente sembra registrato in quella cattedrale.

È più pesante di un riverbero algoritmico, ma il realismo non ha paragoni. Trovi impulse response gratuite online per ambienti di ogni tipo.