History Your programs
Library
Documentation
underscore

Music as software

Describe a musical idea. Underscore turns it into a live, controllable program you can hear, shape, remix, and embed anywhere.

Make software part of the performance

Connect game state, interaction, or time to a program’s named controls. The sound responds while it plays.

Web SDK · updates with the program in the player
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.

Make a program of your own

Describe what you want to hear. Shape what comes back.

New program

Choose an idea. We’ll turn it into a detailed prompt you can change.