open source · zero audio files · zero dependencies
No audio files. No config. No setup. Pure Web Audio synthesis at runtime. 124 sounds. One import.
Your button clicks in silence. Your form submits in silence. Your delete confirmation — the one that wipes everything — in silence.
sound library
Not samples. Not presets. Each one is synthesized — a specific frequency, envelope, and character designed for a specific moment in your UI, game, or app. All 124 are generated in your browser at runtime — click any row to hear it.
usage
Not a React library. Not a Vue plugin. A plain JavaScript object that works wherever JS runs.
sequences
Every play() returns a handle — so you can do things that are
either genuinely useful or deeply unnecessary. Both are valid.
api
We're not hiding anything. This is genuinely it.
rest api
resoniq ships an optional Express backend that serves sound metadata as JSON. Audio still plays in the browser — the API never streams audio. Follow these steps to run it and connect.
From the repo root, install deps and export the sound catalog the API reads.
# from repo root
npm install
npm run export:catalog
This installs the backend and boots it on http://localhost:3001.
# from repo root
npm run dev:api
Five read-only JSON endpoints. Filter sounds by category with ?category=.
| Method | Path | Returns |
|---|---|---|
| GET | /api | API overview |
| GET | /api/health | Health + sound count |
| GET | /api/sounds | All sounds (filterable) |
| GET | /api/sounds/:id | One sound + usage snippet |
| GET | /api/catalog | Sounds grouped by category |
Read metadata from the API, then play the sound in the browser with resoniq.
With the API running, hit an endpoint right here. (Requests go to
http://localhost:3001.)
// response will appear here…