# zvuk: Audio Engine for the Web

zvuk v1.14.0 · MIT · https://zvuk.schmooky.dev/

A Wwise-grade audio engine for the web. Named mixer buses with FX inserts, sidechain ducking, mix snapshots, audio sprites, and a codec ladder that survives Safari. ESM-only, type-safe, 17 kB min+gzip.

v1.14.0 · MIT · Web Audio API · ESM

# Audio Engine  
for the Web.

Wwise-grade routing, sprite-loading and sidechain ducking, in a tiny ESM package. Lazy `AudioContext`, mixer buses, snapshots, parameters, and codec-aware loading. Built for slot games. Useful everywhere sound matters.

[pnpm add @schmooky/zvuk](/docs/quickstart/) [See the engine →](/concepts/engine/)

◆lazy AudioContext ◆mixer buses ◆sidechain ducking ◆snapshots ◆parameters ◆audio sprites ◆voice limits ◆spatializer ◆webm/opus first ◆iOS Safari ready ◆17 kB min+gzip ◆ESM-only ◆zero dependencies ◆TypeScript-strict ◆lazy AudioContext ◆mixer buses ◆sidechain ducking ◆snapshots ◆parameters ◆audio sprites ◆voice limits ◆spatializer ◆webm/opus first ◆iOS Safari ready ◆17 kB min+gzip ◆ESM-only ◆zero dependencies ◆TypeScript-strict

## A real engine, not a wrapper.

zvuk gives you the vocabulary game-audio engineers expect: **Engine**, **Mixer**, **Bus**, **Send**, **Sound**, **Voice**, **Snapshot**, **Parameter**. Routing is declarative. Lifecycle is explicit. The `AudioContext` is constructed lazily, so calling `createEngine()` before any user gesture is safe.

Built for any application where audio matters. Games, interactive learning, ambient web experiences, kiosks, music apps. If you've ever fought autoplay on iOS or watched a clip cut itself off mid-playback, zvuk is the layer that handles those problems for you.

## Try it.

A live mixer running the actual engine. Real samples, real Web Audio. iOS-safe.

engine.state = cold

0 voicesPop out

music

mute

level: 0.80

sfx

mute

level: 1.00

ui

mute

level: 0.70

chimemusicbellsmusicdice-rollsfxdice-shakesfxgemuiheartui

Each sample is shipped as `.webm` (Opus) +`.m4a` (AAC). The engine picks whichever your browser supports.

Unlock audio & load samples

[

Start here

Quickstart

pnpm add @schmooky/zvuk. Two function calls. Sound out of the speakers.

](/docs/quickstart/)[

Concepts

The Engine

State machine, lifecycle, unlock. The Big One.

](/concepts/engine/)[

Recipes

Click → hear → copy

Six live, copy-pasteable patterns. Slot reel, ducking, snapshots, more.

](/recipes/)
