kkb-audio

A Rust foundation for my sound, audio, and music software. One real-time render engine runs in the browser through WebAssembly and natively on macOS. Each host handles its own files, devices, and lifecycle outside the engine.

Rust / WebAssembly / TypeScript

WavePlayer

A local audio player built on the kkb-audio engine. It plays WAV and MP3 files, converts between 44.1 and 48 kHz, and supports seeking and A/B loops.

Audio can't wait on a file read or a UI update. A worker decodes files and hands PCM to the Rust engine in an AudioWorklet, so file and interface work stay out of the render callback. A WebGPU oscilloscope draws the left and right channels as an XY trace.

  1. Prepare

    A worker decodes the file

  2. Render

    Rust/Wasm in an AudioWorklet

  3. Observe

    WebGPU draws the rendered signal

WavePlayer paused on a stereo WAV, with a green XY trace above the waveform and transport controls.
WavePlayer with a synthetic stereo test file.