Research
How Soundfish works.
Technical notes on the decisions behind the product: why a composition lives inside its link, how the same document serves a person and an agent, what an album page actually is, and what it costs to keep a public audio host running.
- Protocol · 2026-09-23The link is the documentA Soundfish loop or song carries its complete composition inside the URL fragment. How content addressing, canonical encoding, and MusicCID make a link that is also the document.
- Interfaces · 2026-09-23One document for people and agentsSoundfish renders every public page as HTML for people and Markdown for agents, and the same canonical document drives the browser editor, the CLI, and agent prompts. How one music model serves both audiences.
- Cost model · 2026-09-23Running an audio host on counters and cachesHow Soundfish keeps a public audio host cheap enough to leave running: R2 for bytes, Convex for control, counter rows instead of scans, edge-cached redirects, and bounded background work.
- Player design · 2026-09-23Timestamped comments on a shared waveformComments on Soundfish albums pin to moments on the same full-track time axis the waveform, playhead, and seek surface use — so feedback lands where the music is. The design and mechanics behind it.
- Publishing · 2026-09-23The album page as the unit of publishingWhy a Soundfish album is a page and a link rather than an entry in a feed — drafts, unlisted links, dated revisions, embeds, per-album downloads, and the metadata each page carries.
- Audio engine · 2026-09-23Playing MIDI in the browser without a pluginHow Soundfish plays compositions in the browser: a pinned MuseScore General bank, a patched SpessaSynth AudioWorklet, device-aware voice budgets, and release-hashed sound assets.
Elsewhere
For product comparisons instead of internals, see Sound.fish alternatives.