Skip to content

Repository files navigation

Strudel Jam

A desktop app for live coding music with Strudel, optionally powered by AI (Claude, ChatGPT, or Gemini).

Write patterns by hand, ask AI to generate them, or let autopilot evolve your music in real time. Record to WAV. Ship your own sounds.

License Tauri Platform


What it does

Strudel Jam embeds the full Strudel REPL inside a native desktop window and adds a side panel where you can chat with AI about your music. Choose your provider: Claude, ChatGPT (OpenAI), or Gemini (Google).

Co-pilot mode - describe what you want ("dark ambient in F minor", "add a walking bass", "make it more glitchy") and the AI writes the Strudel code, injects it, and plays it.

Autopilot mode - hit start and the AI creates patterns on its own, evolving the music every 15 seconds.

No AI required - the Strudel REPL works standalone. Use the built-in pattern tips, slash commands, and learning panel to get started without an API key.

Features

  • Full Strudel REPL with all samples and synths
  • AI chat panel with co-pilot and autopilot modes (Claude, ChatGPT, or Gemini)
  • Slash commands: /play, /stop, /record, /random, /help, /clear
  • WAV recording with save dialog
  • Transport bar with prominent play/stop/record controls
  • Learn panel with Strudel quick reference and embedded docs
  • Local HTTP server (port 17643) for external control via curl
  • 15 bundled pattern presets (ambient, DnB, metalcore, odd meters, generative)

Download

Go to Releases and grab the latest build for your platform:

Platform File
macOS (Apple Silicon) Strudel.Jam_x.x.x_aarch64.dmg
macOS (Intel) Strudel.Jam_x.x.x_x64.dmg
Windows Strudel.Jam_x.x.x_x64-setup.exe
Linux (Debian/Ubuntu) strudel-jam_x.x.x_amd64.deb
Linux (AppImage) strudel-jam_x.x.x_amd64.AppImage

No npm, no Rust toolchain, no build step. Just download, install, and open.

Building from source

Prerequisites

parent/
  strudel/       # git clone https://github.com/tidalcycles/strudel
  strudel-jam/   # this repo

Steps

# Clone both repos
git clone https://github.com/tidalcycles/strudel.git
git clone https://github.com/YOUR_USERNAME/strudel-jam.git

# Install Strudel dependencies
cd strudel
npm install
cd ..

# Install Strudel Jam dependencies
cd strudel-jam
npm install

# Build the embedded Strudel REPL
npm run build:strudel

# Run in development mode
npx tauri dev

# Or build a release binary
npx tauri build

The release binary lands in src-tauri/target/release/bundle/.

Using the AI features

  1. Open the app and click the gear icon in the side panel
  2. Pick a provider (Claude, ChatGPT, or Gemini) and enter your API key
  3. Your keys stay local, stored only in the app's memory for the session
  4. You can add keys for multiple providers and switch between them

In co-pilot mode, type what you want and the AI writes Strudel code. In autopilot mode, the AI generates and evolves patterns autonomously.

Slash commands

Type / in the chat input to see available commands:

Command What it does
/play Evaluate and play the current pattern
/stop Stop playback
/record Start/stop WAV recording
/random Load a random preset pattern
/help Toggle the Strudel quick reference panel
/clear Clear chat history

External control (Cowork API)

Strudel Jam runs a local HTTP server on port 17643 for external automation:

# Check if the app is running
curl http://127.0.0.1:17643/health

# Send a pattern
curl -X POST http://127.0.0.1:17643/pattern \
  -H "Content-Type: application/json" \
  -d '{"code": "sound(\"bd sd hh sd\").bank(\"RolandTR909\")"}'

# Stop playback
curl -X POST http://127.0.0.1:17643/stop

# Send a chat message (requires API key set in app)
curl -X POST http://127.0.0.1:17643/message \
  -H "Content-Type: application/json" \
  -d '{"message": "make it more ambient"}'

Bundled patterns

The patterns/ directory contains 15 ready-to-play Strudel patterns:

Pattern Style
deep-space-meditation.js Generative ambient, Perlin-driven
liquid-dnb.js 170bpm liquid drum & bass
bellow-breath.js Accordion-inspired folk
seven.js 7/8 time, D dorian
five-petals.js 5/4 time, F lydian
polymetric-garden.js 3 vs 5 vs 7 polymetric phasing
everything-i-learned.js Minimal 7/8, mostly silence
balkan-7.js Balkan-flavored odd meter
generative-garden.js Evolving generative piece
the-drop.js Build-up and drop
e-minor-bloom.js E minor melodic bloom
kitchen-sink-lp.js Lo-fi kitchen sink
linkin-park-tribute.js Nu-metal tribute
slipknot-iowa.js Heavy metalcore
final-form-metal.js Full metalcore with vocal sim

Load any of them through the Cowork API:

curl -X POST http://127.0.0.1:17643/pattern \
  -H "Content-Type: application/json" \
  -d "{\"code\": \"$(cat patterns/liquid-dnb.js | python3 -c 'import sys,json; print(json.dumps(sys.stdin.read())[1:-1])')\"}"

Architecture

Strudel Jam is a Tauri v2 app with:

  • Frontend: React + TypeScript + Tailwind CSS, with Strudel REPL in an iframe
  • Backend: Rust (Tauri), handles AI API calls (Claude/OpenAI/Gemini) and runs the local HTTP server
  • Communication: postMessage between React and the Strudel iframe; Tauri events between Rust and React

See ARCHITECTURE.md for the full technical breakdown.

Contributing

Contributions welcome. See CONTRIBUTING.md for guidelines.

License

MIT. See LICENSE.

Credits

  • Strudel by Alex McLean and contributors - the live coding environment
  • Tauri - the desktop framework
  • Claude by Anthropic, ChatGPT by OpenAI, Gemini by Google - AI providers (optional)

About

Desktop app for live coding music with Strudel, optionally powered by Claude AI

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages