🌀 Strudel / Algorave Workshop

Strudel

A 1-hour workshop exploring how to create music with code using Strudel.

đź“… Schedule

  • [08 mins] Introduction: Algorave Culture & Context
  • [20 mins] Part 1: The Basics & Demo: Walkthrough of core functionalities
  • [20 mins] Part 2a: Vibecoders track: If you just wanna play with LLM+MCP (BYOK!)
  • [20 mins] Part 2b: Livecoders track: If you already know some music
  • [02 mins] Part 3: Strudel Awards: maybe ;-)

📚 Introduction

What is Strudel?

Strudel Dessert

  • Web-based Live Coding: A port of TidalCycles (Haskell) to JavaScript - Open Source and community-driven!
  • Zero Footprint: No installation required!
  • Portability: Make music anywhere, on any device with a browser.

❔Why Algorave?

Algorithm + Rave = Algorave

  • Live Creation: Music and visuals generated in real-time.
  • Transparency: “Show us your screens” - the code is part of the performance.
  • Diverse Tooling: While we use Strudel, others perform with TidalCycles, SonicPi, SuperCollider, etc.
  • Visuals: Optional! Often coded live using Hydra, P5.js, etc.
DJ_Dave & Char Stiles Livecoding Performance @ Algowave Algorave

DJ_Dave & Char Stiles Livecoding Performance @ Algowave Algorave, 2021

đźš§ Side note - Algorave Hub (WIP)

I’m working on a side project - that integrates strudel knowledge base + LLM+MCP powered “composition” for “vibe” music coding. https://github.com/alienmind/algorave

Architecture

Unfortunately not ready yet! - Stay tuned for the next workshop!

PLAN FOR TODAY: real livecoding and/or “some” vibe coding (w/ alternative implementation)

đź“– Tutorial

Follow along here: http://strudel.patternclub.org/workshop/site-gallery

  1. The basics - Making your first sounds + mininotation
  2. Rhythms, Polyrythms
  3. Sound and Synths libraries
  4. Some more advanced examples

✋ Livecoders vs 👇 Vibecoders

  • Raise your hand âś‹ if you already know some music and wanna try livecoding.
  • Lower your hand 👇 if you don’t know any music or wanna be part of the vibe coding team.

Real Coders vs Live Coders

IN REALITY: no need to choose, you can be both ;-)

🤖 Part 2a: Vibecoders Track

So you want to “vibecode” some Strudel? Let’s start by setting up an SSE enabled MCP server

Skip next slide: if you want to reuse my setup by using a GitHub codespace / devcontainer

Click on Code -> Codespaces -> Create codespace on main

GitHub Codespace

Setting up MCP server with Gemini CLI

Open your terminal and run:

$ npm install -g gemini-chat-cli@latest
Add the server to your configuration (~/.gemini/settings.json)
{
  ...,
  "general": {
    "previewFeatures": true
  },
  "mcpServers": {
    "mcp-strudel": {
      "url": "https://mcp-strudel.mcp.mathplosion.com/sse/",
      "timeout": 30000,
      "trust": true
    }
  }
}

Vibe coding session!

Open up side by side:

  • MCP Strudel Website
  • Optionally: Use my Strudel.cc fork (or Official Strudel.cc - not accessible with corporate laptops)
  • Any terminal with Gemini CLI
  • Pick the session_id from MCP, paste it to LLM as first prompt: “Use session_id: xxxx for Strudel operations” so it can interact with MCP server window

Strudel MCP Gemini CLI

Try this prompt: Try “Write an amazing house track using Strudel”.

🎹 Part 2b: Livecoders Track

  • Follow Along: We will do some real livecoding. Feel free to copy what I do and modify it, or write your own!
  • Experiment: Explore the examples, change numbers, upload new sounds, break things…
  • Resources: Use the examples or the gallery, more free sounds available in freesound.org

Remember - ⚡ENERGY: YES! ✨QUALITY: NO! - you’re not looking for a perfect polished track, but something that feels good to you :)

🙋 Volunteers Jam & 🏆 Contest

Raise your hand if you wanna show what you’ve made!

đź”— References

Please see REFERENCES.md for a complete list of links and resources used in this workshop.