Generated locally · Audio assets: 0 bytesPlay to see the generated signal

Glass notification

Quiet notifications · one-shot

Four delicate partials with independent decays and a bright glass rim.

Explore sounds

Glass notification: ready

Open glass notification workbench

Impact

Collisions and hits · one-shot

A descending body and filtered noise transient. Intensity changes pitch, brightness, and level.

Impact: ready

Open impact workbench

Thruster

Movement and propulsion · sustained

Start once, adjust throttle while it runs, then release with Stop.

Thruster: stopped

Open thruster workbench

A little code.
A lot of character.

Express the hit, not the node graph. AudioBits owns the voices, envelopes and cleanup underneath.

Compare with raw Web Audio
import { createAudio } from "audiobits";
import { impact } from "audiobits/recipes";

const audio = createAudio();
const hit = audio.sound(impact);

// In a click or tap handler:
await audio.start();
hit.play({ parameters: { intensity: 0.8 } });

The recipe is the sound.

Portable JSONAudioBitsWeb Audio

Layers, envelopes, filters and variation. Structured data you can read, validate and change. Open any sound’s recipe to try it.

{
  "schemaVersion": 1,
  "kind": "one-shot",
  "duration": 0.3
}
Inside a recipe

Made for interaction.

Voices, with an ending.
Overlap one-shots. Stop sustained sound. Dispose when your app leaves.
Controls with meaning.
Set intensity before Play; move throttle while a thruster runs.
Variation you can keep.
Find a character. Keep its seed. Generate it again.
Playback and lifecycle

Eight starting points.
Endless character.

Explore all sounds →

Readable by humans.
Composable by agents.

Versioned recipe schema, machine-readable capabilities and an included integration Skill. Work from the installed version, with runtime validation at the boundary.

Explore the public API