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.

Learn more about the engine

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.

Source on GitHub

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.

Extension README

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