Glasshouse Return is renamed Glasshouse Demo, played in the browser, and shared as one copied link. The silent clip joins five screen captures of the live editor with crossfades.Recorded August 25, 2026 · 10 seconds · silent
01Open the default Glasshouse Return loop.
02Rename the composition to Glasshouse Demo.
03Play the loop in the browser.
04Open More loop actions and choose Copy link.
05Confirm that the loop link was copied.
Recorded at https://sound.fish/ · 10.4 seconds · 1280 × 720 H.264 · Capture manifest
Editable loop
1–16 bars
Tracks
Notes + drums
Hosted editor
$0
Portable artifacts
URL · JSON · MIDI
Compose
Place notes and drum hits on a piano roll, name the tracks, and shape volume, reverb, delay, and automation in a loop of 1 to 16 bars.
Hear
Press Play and hear the loop through General MIDI instruments rendered in your browser.
Share
Copy one link that holds the whole composition, or download it as Soundfish JSON or Standard MIDI.
How it works
The link is the handoff.
Composing, playing, sharing, and agent editing are separate jobs. The URL is what passes between them, and you can inspect it at every step.
01
Compose
Open a musical starter or import MIDI, JSON, or a loop link. Place notes and drum hits, shape the mix, and turn variations into a song with Arrange sections.
02
Hear
Press Play to hear your instruments and mix. The first use of an instrument may need a download; nothing plays automatically.
03
Share
Choose Copy link to share the complete composition in one playable URL. In More, download Soundfish JSON to keep an exact copy, or Standard MIDI to work in other music software. Song downloads contain the whole arrangement.
04
Collaborate
Choose Edit with agent and describe the change. Chat agents return loop text; coding agents use the CLI for exact loop or song edits. Review the reply before opening a new playable link.
Interfaces
Play it yourself, or hand it to an agent.
The browser editor and the CLI work on the same document.
Human interface
Make music in the browser. Edit, play, mix, and keep loops in the browser. Library keeps loops and saved songs on this device. Optional sign-in syncs loops across devices; complete links and Soundfish JSON keep either composition portable.
A musical request and a reviewed reply. Choose Chat app for a loop draft without an install, or Coding agent for exact edits with the Soundfish skill and CLI. Copy the prompt, send it to your agent, and review the reply in Soundfish.
Commands for loops and songs. Run bunx @hraness/soundfish once, or install the soundfish command. Inspect and verify loops or songs, export either as JSON or MIDI, and import a song you have the rights to as loops, using a local StemDeck service and Basic Pitch.
MusicCID and ArrangementCID identify the music, the transport digest checks the whole link, and the sound release decides how it sounds.
MusicCID
Addresses authored musical meaning: tempo, bars, typed tracks, events, production, effects, and automation. Titles, IDs, lineage, and display order stay outside it.
ArrangementCID
Addresses a song's expanded ordered child MusicCIDs and stable-track trajectories. Titles, section labels, repeat grouping, display order, and one consistent global track-ID rename stay outside it.
Transport digest
Covers the complete canonical loop or song payload. Renaming a loop preserves MusicCID, and renaming song sections preserves ArrangementCID, while either change updates the transported payload and this digest.
Sound release
Pins the current bank, renderer, graph, effects, limits, and defaults at runtime. It is inspectable, but it enters neither MusicCID nor ArrangementCID.
An editable loop travels as #s1.<music-cid>.<codec>.<payload>.<transport-digest>. Read the URL format
Privacy
What stays on your device, and what leaves it
Composing happens in your browser. These notes say what stays on your device and which features send data elsewhere.
URL fragment
Browsers do not send the # fragment in an ordinary HTTP request. The fragment is not a secret: anyone who receives the complete URL can read the composition.
On-device library
The browser library uses IndexedDB and needs no account. Clearing Soundfish site data removes that local copy, so the complete URL remains the portable share and recovery artifact.
Agent providers
Provider-opening links carry neither the prompt nor the fragment. Pasting the prompt into a hosted agent sends the loop and CLI output to that provider; only a fully local, offline model and runner keep them on the device.
Optional services
Optional sign-in sync keeps loop checkpoints on your account. Read the privacy policy for analytics, hosting, and account data details.
Not to listen, and not for the MIDI editor. Anyone can listen to a published album; the editor opens, edits, plays, saves locally, and shares without signing in, and optional sign-in syncs loops across devices while saved songs stay on this device. Hearts and comments need a free sign-in, and publishing an album needs a signed-in Hraness account with a username.
What does Soundfish cost?
The editor is free to use. Free accounts publish one album with up to 10 tracks, 25 revisions per track, 200 MiB per file, and 2 GiB of storage. Listening needs no account; hearts and comments need a Hraness sign-in.
Is a Soundfish link private?
Not fully. Browsers do not send the part after # in an ordinary HTTP request, but anyone with the complete link can decode the composition, and a hosted agent receives it when you paste the handoff.
Can an agent edit my music without an API?
Yes. The published CLI runs on a complete editable-loop Soundfish URL or local .soundfish text and returns another verified loop URL. It also inspects, verifies, and exports read-only songs. Soundfish has no unauthenticated hosted endpoint that changes a composition.
Can I export a loop or song?
Use Download Soundfish JSON for the complete loop or song model and Download MIDI for other music software. Song MIDI carries tempo, tracks, programs, notes, velocities, duration, and section markers; JSON or the complete URL retains effects, automation, identities, lineage, and arrangement routing.
Can the CLI turn a recording into a song?
Yes, from media you have the right to download and transform. The local soundfish song import command works with a StemDeck service you start and a Basic Pitch install you set up separately, and writes loop and song files you can review. Separation, analysis, and transcription are estimates, so listen to the result and correct it.
Does renaming change the music address?
A loop or track rename changes its payload and transport digest but not MusicCID. A song or section rename likewise changes its payload and transport digest but not ArrangementCID, because titles are transport metadata rather than authored musical meaning.