A phonetic synthesis language for sound design.
Three engines. 128 voices. Text in, sound out.
{bpm=40; div=2;
a = tanpura(130.81);
b = tanpura(196.00);
c = tanpura(261.63);
master_reverb(0.5, 0.8)}
a=b=c=b=
a=======
Subtractive (oscillators, filters, envelopes), FM (4-operator, 8 algorithms), and digital waveguide (15 string instruments). All running in your browser via WebAssembly.
Characters map to sound atoms. Adjacency controls morphing. Spaces create hard cuts. A notation system that feels like typing but produces rich, layered audio.
Each voice can run a different synthesis engine with its own oscillators, filters, envelopes, and effects. Not 128 copies of one patch — 128 unique configurations.
Because Beepscript is text, it's natively accessible to language models. An LLM reference ships with the project. Text in, sound out.
Compose multi-track pieces with patterns, loops, and transport control. Drums, bass, melody, and effects in a single text file. Tracks support mute, solo, and quantization.
Telephony, broadcast signals, transit sounds, temple bells, game audio, classic synths, FM patches, and full compositions. Every example is editable and playable in the Explorer.
UI beeps, notification tones, system alerts. Design functional sounds with precise control over timbre, envelope, and pitch.
Procedural sound effects, collectible chimes, damage hits, ambient drones. Real-time synthesis means every trigger can be unique.
Generative patterns, multi-track arrangements, evolving textures. The PAL system handles loops, tracks, and transport.
DTMF tones, dial sequences, ring patterns, broadcast idents, EAS alert tones. Precise frequency control for standards-compliant signals.
Beepscript maps single characters to synthesizer configurations called atoms. You define atoms using Lua — setting oscillator type, filter cutoff, envelope shape, effects — then trigger them by typing characters into a notation stream. Adjacent characters morph smoothly between timbres. Spaces create hard cuts. Equals signs insert rests. The result is a compact text notation that produces rich, layered audio.
The synthesis core is written in Rust and compiles to WebAssembly for browser-based playback with no installation required. Three engines cover different synthesis techniques: subtractive synthesis with oscillators and filters, FM synthesis with four operators and eight algorithms, and digital waveguide string simulation with fifteen instrument presets including guitar, koto, sitar, piano, and erhu.
The 128-voice polyphony pool allocates voices independently — each voice can run a different engine with its own signal chain. A Pattern Arrangement Language (PAL) handles multi-track composition: define patterns, assign them to tracks, loop and layer them with mute/solo control.
Beepscript ships with an LLM reference file designed for AI-assisted sound design. Because the entire workflow is text-based — Lua definitions, character notation, PAL arrangement — language models can generate, modify, and reason about sounds directly. The Workspace provides a real-time performance environment, and the Explorer catalogs 390+ editable examples across categories like telephony, broadcast, game audio, transit sounds, and full compositions.