Il browser ha un sintetizzatore integrato: la Web Audio API. Il punto di partenza è l'AudioContext, il motore che genera e connette i suoni.

const ctx = new AudioContext();
const osc = ctx.createOscillator();
osc.type = "sine";          // onda sinusoidale
osc.frequency.value = 440;  // La (A4)
osc.connect(ctx.destination);
osc.start();
osc.stop(ctx.currentTime + 1); // spegni dopo 1 secondo

Crei nodi e li connetti in un grafo: un oscillatore produce un'onda, la colleghi a destination (le casse) e parte. Per sicurezza l'AudioContext va avviato dopo un gesto dell'utente (un click), altrimenti il browser lo tiene sospeso.

È lo stesso concetto di Sonic Pi, ma dentro una pagina web.