Describe a musical idea. Underscore turns it into a live, controllable program you can hear, shape, remix, and embed anywhere.
Connect game state, interaction, or time to a program’s named controls. The sound responds while it plays.
enemyCount = 12
warmth = 0.72
const underscore = new Underscore({ apiKey: 'us_pub_...', wasmBaseUrl: '/supersonic/' });
await underscore.init(); // inside a user gesture (autoplay policy)
const program = await underscore.loadSynth('cmp_9xk2', 'held_breath');
await program.play();
// named controls are part of the program
program.params.map(p => p.name);
// => ['warmth', 'drift', 'bloom', 'tenderness', …]
// connect any application state
program.setParam('warmth', 0.6);
program.setParam('drift', 0.3);
The source is part of the program: every piece keeps the synthesis and performance code that makes it sound and move. Flip the player to its Code view to read what you’re hearing.
Install the Web SDK in Vite, Next.js, or a vanilla web project with
npx @underscore-audio/wizard@latest.
Describe what you want to hear. Shape what comes back.
Choose an idea. We’ll turn it into a detailed prompt you can change.