Hear it
▶ The showcase site — Für Elise on the sampled grand, a produced boom-bap track, the Nokia tune and other recognizable classics, game-ready loops. Every track is a deterministic render from song or sound data — nothing is a recording.
60 seconds to sound
# out/blip.wav the audio
# out/blip.png spectrogram — look at your sound
# out/blip.stats.json peak/RMS/LUFS/spectral analysis
That's the author's loop: --watch re-renders on every save, tono diff
tells you what changed between two docs, tono match REF.wav scores a doc
against a recording, tono fit hill-climbs parameters toward it, and
tono review grades a sound against the ship checklist. Hear the built-ins
first: tono catalog lists the 31 voices, tono presets the 16 factory
sounds — each renders a demo you can inspect.
Compose a song
A typed song API over the same engine — tracks from the instrument catalog, patterns on a bar grid, tempo/meter maps, buses and automation — compiled once into a hashed, validated Program:
=
=
=
=
=
=
= # stereo float32 — same bytes from Rust or Python
= # every track + bus, separate
The same Program runs live — commands land on exact frames, never when your loop wakes up:
# rides the fader on the bar
# section swap, quantized
Installs. Rust: cargo add tono-core — the same song API
(example,
API docs). Python: builds from
source with maturin — no prebuilt wheels yet; two complete,
runnable songs live in crates/tono-py/examples
(a produced 16-bar track, and Beethoven's Für Elise on the 3/8 meter map).
Why tono
- Sounds are data. A sound is a JSON synthesis graph; rendering it is a pure function → byte-identical audio on every OS, and every document keeps its historical render forever, pinned by engine revision. Test it, diff it, cache it in CI.
- Zero-asset SFX. A patch renders infinite variations from gameplay parameters — impacts that scale with collision force, footsteps that vary by surface. No sample library.
- A real music runtime. Sample-accurate transport, quantized section transitions, stingers, crossfaded swaps — plus mixer buses, polyphony caps with priority stealing, and adaptive intensity stems.
- An ear built in. Every render returns a spectrogram, a waveform, and LUFS/spectral stats — "does it sound right?" becomes numbers and pictures.
Where next
- The guided first ten minutes — the quickstart.
- Make sounds — the sound-effects guide: recipes, and how to judge a sound by its stats.
- Embed in a game — run live & embedded: the Engine/Mixer runtime, parametric patches, adaptive music.
- No code — the desktop pattern station (build it) or the speaker playground (crates/tono-play/examples).
All guides: the docs site. The codebase tour: architecture.
License
MIT — permissive, no warranty.