LLM-First Synthesis

Beepscript is text all the way down. Atom definitions are Lua. The notation stream is characters. Arrangements are named patterns and tracks in plain text. This makes the entire synthesis workflow natively accessible to language models — not as an afterthought, but as a natural consequence of the design.

Why text matters for AI

Most synthesis tools use graphical interfaces: knob positions, waveform displays, visual patching, piano rolls. A language model can't turn a knob or draw an automation curve. But it can write text. When synthesis is expressed as text — parameters in Lua, sequences in character notation, arrangements in PAL — a language model can generate, modify, debug, and explain sounds using the same capabilities it uses for code.

This isn't about replacing human sound designers. It's about making sound design programmable in a way that AI tools can participate in. A language model can draft a starting point, suggest modifications, generate variations, or explain what a piece of notation does — the same way it works with any other text-based medium.

The LLM reference file

Beepscript ships with LLMS.md, a ~1,650-line reference document specifically structured for language model consumption. It covers:

The file is designed to fit within a language model's context window and provide enough information for the model to generate valid, musically sensible Beepscript programs without guessing at syntax or parameter ranges.

Three-language architecture

Beepscript programs use three interleaved text languages, each optimized for a different task:

Lua (atom definitions)

Configuration blocks wrapped in { } define sound atoms using Lua syntax. Set oscillator types, frequencies, filter cutoffs, envelopes, effects chains, and engine-specific parameters. Lua provides variables, arithmetic, and loops for programmatic sound design.

Character notation (performance)

The stream of characters outside Lua blocks constitutes the performance. Each character triggers its assigned atom. Adjacency morphs between timbres. Operators modify playback. This layer is the most compact — a few characters encode timbral transitions that would take lines of code elsewhere.

PAL (arrangement)

Pattern and track directives (/pa/, /tr/, /ar/) organize notation into named, reusable, loopable patterns on separate tracks. PAL turns a single-voice sequence into a multi-track composition.

Text-in, sound-out

Because Beepscript notation is plain text, a language model can generate it directly. Paste the output into the Workspace and press play — the browser renders audio in real time from the WASM engine. No install, no build step, no intermediate file format. The entire round trip from prompt to playback happens in a browser tab.

What this enables

With text-based synthesis and an LLM reference file, practical workflows include:

The Workspace provides a browser environment for testing generated notation. The Explorer has 390+ examples that serve as training data and reference material for LLM-generated sound design.

← Back to About