Back to home@jo32

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

DSH Plugin DeepDeck App License: MIT

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.

Strudel Studio song arrangement editor running with DeepDeck

Install with DeepDeck (recommended)

  1. Open Settings → Apps in DeepDeck.
  2. Paste https://github.com/jo32/dsh-strudel-studio.git into Install an App plugin.
  3. Choose Inspect source, review the detected package and build command, then choose Confirm install.
  4. Restart DeepDeck when prompted.
  5. 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, @pattern and @swing markers
  • 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_project action tool and correlated project.replace effects
  • 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

AreaSource
Cordis Host registration, routes and action toolsrc/index.js
DeepDeck launcher and fixed Agent actionssrc/client.js
Standalone visual editor and transportsrc/app.js
App stylingsrc/app.css
Project validation, migration and Strudel compilersrc/project-model.js
English and Simplified Chinese stringssrc/i18n.js
Model and localization teststests/

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.