dsh-strudel-studio
A professional song-level Strudel visual sequencer with structured AI arrangement for DeepDeck.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 29, 2026
- Updated
- Aug 29, 2026
Introduction
dsh-strudel-studio
A professional song-level visual sequencer for DeepDeck, built around a safe, structured subset of Strudel and designed for reversible arrangement edits through the main AI Agent.
Best used with DeepDeck. DeepDeck supplies the Apps launcher, standalone editor window, app-scoped Workspace, Settings integration and canonical Agent conversations. This plugin expects DeepDeck's App runtime service when it is mounted.
Screenshot
The standalone editor combines a proportional song timeline, per-section 16-step patterns, a full-song transport, instrument controls, safe Strudel source synchronization and a Main Agent copilot.

Install with DeepDeck (recommended)
- Open Settings → Apps in DeepDeck.
- Paste
https://github.com/jo32/dsh-strudel-studio.gitinto Install an App plugin. - Choose Inspect source, review the detected package and build command, then choose Confirm install.
- Restart DeepDeck when prompted.
- Open Apps → Strudel Studio from the sidebar.
For local development, build the checkout and mount it into an active DeepDeck-managed web profile:
git clone https://github.com/jo32/dsh-strudel-studio.git
cd dsh-strudel-studio
bun install
bun test
bun run build
dsh plugin --profile web add "$PWD"
The final command mounts the Cordis bundle; the standalone App requires the DeepDeck Apps runtime provided by a DeepDeck-managed profile.
What it does
Strudel Studio turns a compact 16-step sequencer into a complete short-form song arranger. A project contains ordered sections, tracks and one independent pattern for every track/section pair. Section patterns repeat for their chosen bar count, so a small visual model can describe a coherent 20–45 second song.
The default project demonstrates a 16-bar form at 124 BPM:
- Intro — 2 bars
- Verse — 4 bars
- Break — 2 bars
- Finale — 8 bars
Clicking a timeline section selects its pattern. It also cues stopped playback at that section or seeks there immediately while the song is playing.
Features
- Song timeline with 1–12 ordered sections and 1–8 bars per section
- Proportional section blocks with selection, cueing, live seeking, duplication, renaming and deletion
- One independent 16-step pattern per track and section
- Up to eight tracks with clear per-track menus, deletion and undo/redo
- 31 instruments across drums, keys, strings, synths, winds, brass and choir
- Trusted full-song Web Audio preview with section following, elapsed progress, automatic stop, master compression and panic-safe source cancellation
- Deterministic multi-section Strudel
cat(...)generation - Safe code-to-grid synchronization through
@song,@section,@track,@patternand@swingmarkers - Local draft persistence and migration from the earlier one-bar project format
- Complete English and Simplified Chinese interface
- Main Agent consultation through DeepDeck App Conversations
- Reversible Agent edits through the closed
strudel_apply_projectaction tool and correlatedproject.replaceeffects - Revision checks that reject stale Agent results instead of overwriting newer local work
Main Agent examples
Open AI Copilot in the App and try requests such as:
Turn this into a 30-second broken-beat song with a sparse intro and a dense finale.Add a piano-led bridge, keep the kick restrained, and preserve the current bass line.Explain why the verse feels static and suggest two arrangement changes.把这首歌改成约 35 秒的游戏配乐,加入钢琴,并让最后一段更有推进感。
Edit actions must return a complete validated schemaVersion: 2 project. Every
track must include exactly one 16-step pattern for every section, and effects
are accepted only when their App client, request, sequence and base revision
match the current draft.
Strudel source and safety
The CODE view emits deterministic Strudel-ready source for the complete song. Copy it into a full Strudel environment when unrestricted language features or external samples are needed.
The built-in preview never evaluates arbitrary Strudel or JavaScript. Code sync parses only the documented generated subset, rejects unknown or duplicate markers and applies the resulting structured project through the same validator used by local and Agent edits.
Project architecture
| Area | Source |
|---|---|
| Cordis Host registration, routes and action tool | src/index.js |
| DeepDeck launcher and fixed Agent actions | src/client.js |
| Standalone visual editor and transport | src/app.js |
| App styling | src/app.css |
| Project validation, migration and Strudel compiler | src/project-model.js |
| English and Simplified Chinese strings | src/i18n.js |
| Model and localization tests | tests/ |
The App identity remains strudel-vis-builder; the public product and
repository name is Strudel Studio / dsh-strudel-studio.
Development
Requirements:
- Bun 1.3 or newer
- A current DeepSeek Harness / DeepDeck development environment
bun install
bun test
bun run build
Generated lib/ output is build-only and intentionally excluded from Git.
Source changes should be applied through the DeepDeck Creator lifecycle when
working from a registered App Workspace.
Data and permissions
- Projects and locale preferences are stored locally in the App origin.
- No credentials, cloud account or remote music service are required.
- App Conversations send only the bounded instruction, validated project and revision needed for the selected fixed Agent action.
- The standalone App uses same-origin Host routes and a restrictive Content Security Policy.
License
MIT. See LICENSE.
Strudel is an independent live-coding project. This repository is not an official Strudel distribution.