About smallBANG
What is smallBANG
smallBANG is a sound engine — a small, zero-dependency piece of software that turns plain
text into music. .track is the text language it plays: write a few lines describing a
beat, a melody, an arrangement, and smallBANG renders it to real audio, live in a browser or
offline to a file.
It’s built to be embedded, not just played with — inside a game, a teaching tool, a live performance rig, or your own app.
Why this exists
Learning to make electronic music usually means one of two things: an expensive studio setup, or a live-coding language that assumes you already know how to program. Both put a real barrier in front of a huge number of people — especially anywhere access to instruments, software licenses, or formal music education isn’t a given.
Our goal is to remove that barrier. .track is designed so that learning it and learning
music are two separate, small problems, not one big one — you shouldn’t need to fight the
technology just to hear whether an idea works. It’s readable in minutes and expressive enough to
build a real composition, so the tool gets out of the way and lets you focus on the sound.
That same “get out of the way” idea shapes the engine too: it’s kept deliberately lightweight
and easy to drop into another project. A game, for example, can update .track text on the fly
from TypeScript — not sample-accurate real-time synthesis, but near-real-time music that reacts
to what’s happening in the game, driven by ordinary code changing ordinary text.
The four parts
The Sound Engine
The core library. It parses .track text and renders it to real audio — offline to a WAV file,
or live in a browser. The key property is determinism: the same source and the same seed
produce byte-identical audio, every time, on any machine. That means audio can be tested like
code, and a result from today will still sound exactly the same in five years. It’s
zero-dependency and small enough to drop into almost anything.
The .track Language
This is what you actually write — a beat, a melody, a full arrangement, in a handful of readable
lines. It’s built to be legible before it’s ever explained: someone with no music-tech background
should be able to look at a .track file and guess roughly what it does. The language is the
interface — there’s no separate GUI to learn first.
→ Tutorial (start from zero) · Reference (every keyword)
The Language Server (LSP)
This is the part that makes an editor actually understand .track — underlining mistakes as you
type, suggesting what comes next, explaining a keyword on hover, showing an outline of your
song’s structure. Without it, .track would just be a text file you hope you got right. With it,
writing .track feels like writing in a real, supported language — which matters most for a
beginner, who needs to know immediately what went wrong, not guess.
The VS Code Extension
Packages the LSP — plus a visual Studio panel (piano roll, grid editing, mixer) — into VS Code, a
free editor millions of people already have. No new software to find, install, and learn just to
try .track; it meets people where they already are, and gives a path from “look at a grid” to
“read and write the text” at your own pace.
Learn the ideas, not just the syntax
Alongside the language itself, smallBANG includes a 15-lesson learn curriculum that teaches
sound and music fundamentals through .track — each lesson pairs one musical idea with the
exact syntax that expresses it. It’s built to work as a real teaching tool in a music-technology,
creative-coding, or computer-science classroom, not just a reference for hobbyists. And because
everything is plain text, songs are diffable and version-controllable — a song from a lesson can
be compared, tracked, and reproduced exactly, the way code is.
Try it yourself — no install required
- Open the playground and hear a song in under a minute
- Start the curriculum
- Source on GitHub