Soundfish is a music workstation that runs in a browser tab and keeps your project on your own device. It is built for long sessions. An evening of patterns, clips and mix changes should still be there after a reload, a second tab open on the same project, or a lost connection, and a save from an old tab should never replace newer work.
Soundfish writes down what it promises about your project and keeps a list of which promises are still unproved. On 2026-09-24 that list had 72 entries, and all 72 were open.
Who it is for
Soundfish is for musicians and sound designers who compose with MIDI: drawing notes, launching loops, and arranging them into a song, with no install or account. It suits someone sketching on a laptop, handing a project to a collaborator as a file, or exporting a mix and stems to finish elsewhere.
Use a desktop audio workstation if you need to record a microphone or guitar, run third-party plugins, or mix multitrack audio recordings. The Soundfish workstation records MIDI from its on-screen keyboard or a connected MIDI input, and plays it through its own built-in sound bank.
One session, start to finish
Open the MIDI home and choose New workstation. A project holds patterns, Live scenes, a Song arrangement, and the sounds they use.
- In Pattern, pick a track, turn on Draw, and tap cells to add notes. The event inspector sets pitch, start, length and velocity exactly.
- In Live, group one pattern per track into a scene and Launch it. The change lands on the next beat or bar, and tracks can loop at different lengths.
- Turn on Capture, perform, then choose Keep capture. Soundfish appends the clip changes that played to the Song.
- In Song, place, copy and edit clips. Undo and Redo cover Pattern, Live, Song, sounds and automation together.
- Export a WAV mix, separate stems for each track and effect return, or a MIDI file for another program. Backup JSON saves the whole project as one file you can keep or share.
Saving happens on its own as you work. When a save fails, or another tab edits the same project, the workstation tells you. Save separate copy keeps a conflicting edit as a new project instead of discarding either version, and checkpoints can be protected. Sign-in sync is optional and keeps a second copy on your account. A project holds up to 16 tracks, 256 patterns and 512 clips, and a backup file can be up to 8 MiB. An import or edit that would exceed a limit stops before it changes the open project.
A WAV export comes with a small file that names the project, the rendering engine and the bytes that were exported, so you can later tell which render you sent. A MIDI export lists what the other program will not get, such as controller detail or sound settings, and the portable MIDI option carries enough project data for Soundfish to reopen it exactly.
Promises in writing
Each promise in the list is one sentence about behavior, with the limits it covers stated next to it. Nine of them are about the workstation. In plain words, they say that:
- a save from an out-of-date tab cannot overwrite a newer version of the project, and the app reports a save only after the edit behind it is stored;
- a recording or capture stays recoverable until you commit it;
- after you press Stop or close the project, every audio node, worker and voice the session started is released, and a late callback cannot restart playback;
- a MIDI export either lists what it dropped or refuses before the download starts.
The list separates what has been checked from what has not. Machine-checked proofs cover how the older loop links are encoded and decoded, including their size limits. Six small models of the synthesizer check how it loads its sounds and releases what it holds. Browser tests render the workstation's output and measure memory and leftover audio resources after a session ends, and a randomized explorer clicks, drags and presses keys through 12 editor scenarios in Chrome. None of this proves the workstation promises yet. The loop proofs do not cover the workstation's project format, and a passing browser run is evidence about the cases it tried.
Where it is going
The intent is to close the open entries one by one, with the kind of evidence each needs: proofs for the project format, model checks for playback, saving and sync, and comparisons against the real code for the rest. The project rules are written precisely enough to check, from tempo stored as an exact fraction to the order in which automation and per-note settings apply.
Limits and status
Status: Beta. Open the MIDI home and choose New workstation; no account or install is needed.
A project saved on the device lives in that browser's storage. Keep a Backup JSON file before clearing site data, and use account sync if you want a second copy. The workstation's address reopens the copy saved on that device; it does not contain the music, so share the backup file instead. Tests on phone-sized screens do not show how the workstation performs on a particular phone or in every browser.