About Beepscript

Type characters. Hear sound. Morph between timbres by adjacency.

Beepscript is a text-based synthesizer. Single characters map to synthesizer configurations called atoms — type a character and it plays. Type two characters next to each other and the sound morphs smoothly from one timbre to the other. Put a space between them and you get a hard cut. The entire workflow is plain text: Lua atom definitions, character notation, and a track-based arrangement language. Nothing is hidden in a GUI. Everything is readable, editable, and reproducible.

By the numbers

3
Synthesis engines
128
Independent voices
390+
Interactive examples
15
String instrument presets
8
FM algorithms
0
Install required

Synthesis engines

Three engines ship today, each suited to different sound design tasks. All run in real-time in the browser via WebAssembly.

Detailed engine documentation →

128 independent voices

The voice allocator manages a pool of 128 simultaneous voices. Each voice runs its own synthesis engine with its own oscillators, filters, envelopes, and effects — not 128 copies of one patch, but 128 unique signal chains. Per-atom polyphony limits, oldest-first voice stealing, a 50ms legato window, and 5ms crossfade on oscillator changes keep the system musical under heavy load.

Built for functional audio

Beepscript is designed for sound design as much as musical composition. The Explorer catalogs 390+ interactive examples organized by domain:

Telephony Broadcast Transit Game audio Retail & UX Instruments Ambient Classic synth Compositions

Every example is editable and playable in the browser. Modify the code and hear the result immediately.

Sound design gallery → | Temple bell case study →

Text in, sound out

Because Beepscript is text, it is natively accessible to language models. An LLM reference file (~1,650 lines) documents the complete API, syntax, and sound design patterns. Language models can generate, modify, and reason about Beepscript programs directly — making AI-assisted sound design a practical workflow rather than a bolted-on feature.

More about LLM-first synthesis →

Technology

The synthesis core is written in Rust and compiles to WebAssembly for zero-install browser playback. Lua handles atom definitions and metadata. Browser audio uses the AudioWorklet API for low-latency real-time output.

Version

0.1.0+build.1.gd0992c3

Created by

Beepscript is created by Nicholas Folse. The project started from a question: what if sound design worked like typing? What if every sound was a character, every texture a word, and an entire composition was just a document you could read, edit, and share as plain text?