Sushi is a browser-based reimplementation of Strudel for importing, writing, and arranging music with Tidal Cycles syntax.
Compose in a source editor as you would in a live-coding environment, or use Sushi’s visual studio to organize tracks and patterns on a timeline like a traditional DAW. The source and arrangement share one musical workspace, so code, controls, and playback stay connected.
Try it live at sushidaw.com.
- Bring in existing Strudel source or write new patterns with Tidal Cycles mini-notation.
- Arrange pattern-based tracks and sections on a visual timeline.
- Shape tempo, key, gain, pan, effects, and playback from the studio.
- Open supported lanes in a live piano-roll editor with source-backed note placement, pitch dragging, grid-snapped edge trimming, deletion, and duration editing.
- Save, reopen, import, and export portable
.sushi.jsonprojects. - Hear compositions through Strudel and Web Audio.
- Use optional WebMCP integration to let compatible agents inspect the studio, edit source, control playback, and assist with composition.
setcpm(120 / 4)
$: s("bd ~ sd ~")
.gain(0.8)
$: note("<c3 eb3 g3 bb3>")
.s("sawtooth")
.lpf(900)Sushi uses WebMCP to connect compatible agents to the studio. Agents can read and modify source, inspect musical state, and control playback, making it possible to collaborate on patterns and arrangements through natural-language assistance.
The WebMCP integration also exposes the curated editor templates: agents can use list_editor_templates to browse available compositions, view_editor_template to inspect one, and load_editor_template to load it into the current session.
No account is required.
Open the live application in ChatGPT’s in-app browser, or in Chrome 149+ with WebMCP enabled through chrome://flags/#enable-webmcp-testing.
Ask the agent:
Open the current Sushi studio session. Inspect the current revision, list the available editor templates, load one, set the tempo to 128 BPM, validate the Strudel source, and start playback. Report the resulting revision and any diagnostics.
Expected result:
- The agent discovers Sushi’s WebMCP tools.
- It inspects the current project and revision.
- It loads a composition and changes its tempo.
- The source and visual studio update together.
- The source validates successfully.
- Playback begins.
(Browser audio policies may require one initial user gesture. Click Play once if the browser reports that audio is locked.)
bun install
bun run devBuild the application with:
bun run buildExperimental MIDI is disabled by default in every environment, including local development and production builds. Explicitly opt in only when testing the experimental surface:
VITE_EXPERIMENTAL_MIDI=true bun run devOnly the exact value true enables MIDI. An absent, empty, malformed, or any other value disables it. Leave this variable unset for the hackathon build.
Sushi builds on the work of:
- Strudel and
@strudel/webfor the pattern language, musical runtime, scheduling, synthesis, and browser audio. - Tidal Cycles for the pattern language tradition and mini-notation that make expressive live-coded music possible.
- Astro and React for the application shell and interactive studio.
- WebMCP for the browser interface that connects web applications with AI agents.