What is SongWalker?
SongWalker is a music programming language designed around one idea:
writing music should feel like writing code.
Songs are plain text .sw files using minimalist music notation
combined with JavaScript-style control flow — loops, variables, tracks, and
function-like instrument loading.
The entire engine — lexer, parser, compiler, synthesizer, and sampler — is written in Rust and runs in your browser via WebAssembly. There is no server involved in audio rendering. What you write is what you hear, deterministically, on every platform.
Features
Minimalist Notation
Write notes like C4 /4, chords like [C4 E4 G4],
rests, durations, and dynamics with a clean, readable syntax inspired by
traditional music notation.
Tracks & Parallel Voices
Define named track blocks that play simultaneously.
Each track can use its own instrument, tempo, and note sequence. Tracks
are mixed automatically.
Loops & Control Flow
Use for loops for repetition, variables for reusable patterns,
and conditional logic. No copy-paste walls of notes.
Built-in Synthesizer
Oscillators (sine, saw, square, triangle), ADSR envelopes, filters, and a mixer — all running in Rust. No external audio dependencies.
Sampler Engine
Load SoundFont-style sampler presets with multi-zone key mapping, pitch shifting, loop points, and velocity layers. Presets are plain JSON.
Preset Library
Browse and audition instruments from a built-in preset library.
Click to insert loadPreset calls directly into your code.
WAV Export
Render your song to a WAV file directly in the browser. The same engine powers the CLI for batch and offline rendering.
VST3 Plugin
Use SongWalker VSTi in your DAW. Same Rust engine, same presets — as a MIDI instrument plugin.
Rust + WASM
The compiler and DSP run entirely in Rust compiled to WebAssembly. Deterministic, fast, and cross-platform — browser, CLI, or plugin.
Related Projects
SNESology — a companion site featuring authentic Super Nintendo sound samples from classic SNES games, powered by the SongWalker engine.
Coming Soon Roadmap
Song Submission
Submit your .sw compositions to a public song library.
Browse and remix songs from the community.
Preset & Sample Submission
Upload your own sampler presets and audio samples. Build and share custom instrument packs for others to use.
LLM Integration
AI-assisted music composition — generate, extend, or rearrange SongWalker code with help from a language model.
Technology
Source code: songwalker-core · songwalker-js · songwalker-site · songwalker-vsti · songwalker-cli
Editor
About
VSTi
Keyboard
GitHub
♥ Sponsor