Learning music with Strudel

525 points - 11/26/2025

Source

Comments

DigitalDopamine yesterday at 2:56 PM
Loved playing with it! https://strudel.cc/?qVv8Cr0OD6cc
faxmeyourcode yesterday at 2:43 PM
I've run across more and more strudel musicians (developers?) doing a kind of live coding performance art and posting clips on tiktok and reels. It's really entertaining to watch. I've been meaning to dabble in it.
simonw yesterday at 6:23 PM
I've been seeing a few links to Strudel recently so I went digging to see how old the project is - looks like it launched in April 2022 https://loophole-letters.vercel.app/strudel

It came out of the same team as Tidal Cycles, a Haskell live-coding music tool which was first released around 2009. https://tidalcycles.org/docs/around_tidal/tidal_history/

i_gumby yesterday at 3:01 PM
There's also a neovim plugin for those who want to play around with this locally https://github.com/gruvw/strudel.nvim ; it essentially launches strudel in a browser but synchronizes the strudel and nvim editors.

EDIT: fixed link to not have trailing semicolon.

raphar yesterday at 2:56 PM
I posted this link, some days ago:

Coding Trance Music from Scratch (Again) [video]: https://www.youtube.com/watch?v=iu5rnQkfO6M

It´s a well done programming and music performance

neom today at 8:44 AM
I was just talking to JChris Anderson about Strudel last week, he forked it, adding "snaps" where users can snapshot their work allowing for the creation of multi-layered songs, added a "vibe" tab so anyone can easily update the code with pompts, and a few other changes.

Here's the fork on GitHub: https://github.com/VibesDIY/strudel

Here's a preview of what it would look like when merged: https://strudel.use-vibes.com/

Here he is playing around with the preview: https://www.youtube.com/watch?v=0oJhnkWDafM

stagas today at 2:21 AM
If you enjoy this kind of tutorials then you will also enjoy this one:

> How to Synthesize a House Loop[0]

[0]: https://loopmaster.xyz/tutorials/how-to-synthesize-a-house-l...

WhyOhWhyQ yesterday at 5:31 PM
Let me introduce you to a good time.

Step 1: https://strudel.cc/workshop/getting-started/ . Click play on coastline" @by eddyflux

Step 2: Listen for a while

Step 3: setcps(.75) -> setcps(1.5)

Step 4: Listen :)

That is the extent of my strudel knowledge, but damn this is cool.

ubidefeo yesterday at 4:56 PM
I have submitted a talk for FOSDEM26 on Live Coding Music and Hardware with Strudel and MicroPython. Hope to get in :)
wouterjanl yesterday at 6:14 PM
Allow me to use this post to give big kudos to the maintainers of Strudel for having put together a brilliant set of official docs. I found them incredibly well put together and hence really useful to learn. I have played around with Strudel many evenings and I am always amazed about how intuitive Strudel is to create beats and sounds, to the point that I prefer to create music in Strudel over the established DAW software. I would love for there to be a good bridge between producing sounds and beats with Strudel code and structurering and mastering an entire track. This is missing in Strudel since it’s clearly build for a live coding environment. Any tips from users about ways or tools to make this bridge are always welcome!
pragma_x yesterday at 11:16 PM
I've been following this project with great interest.

Quite possibly one of the most interesting things is just how competent the REPL is. It does some things that no other programming environment does in a prompt, all centered around real-time processing:

- All code in the prompt is being constantly evaluated - What parts of expressions are currently in use are highlighted - Visualization widgets sit side-by-side with the code

That last one is playfully rendered as pseudo-TUI "graphics", but is also presented with no borders or chrome around it. That's in sharp contrast to notebooks like Jypyter or Mathematica. They use minimal screen real-estate which also minimizes scrolling. If you look at videos of using this live, the ability to navigate the REPL quickly is crucial for performances.

So it's a lot like a kind of step-wise debugger, only more minimalist and moving at the (slow) speed of the music.

Ever since seeing Strudel, I've wondered what various programming sandboxes would be like if they could visually demonstrate operations in slow-motion.

dennis16384 today at 8:00 AM
Even though Algorave is quite new, everyone who ever touched .mod/.s3m/.xm/.it can fell young again haha.

DJ_Dave live events are the best illustration for all of it. If you love electronic music, ever touched any generative art, and know basic coding this is for you.

mvkel yesterday at 4:42 PM
I was excited to see this, but then realized only chapter 1 is done out of what ultimately will/should be a 25 chapter tome.

Strudel docs leave something to be desired as well.

What I've found to be the most useful so far is to ask an LLM to make a line of whatever: a beat, a synth, etc., tweak it, then layer it.

It gives a really good sense of how to architect a song file, which is missing from the little snippets in the strudel docs

badmonster yesterday at 7:06 PM
Live-coding music environments like Strudel are powerful because they externalize the creative process. When your composition is visible code, you can iterate faster, debug musical ideas, and even collaborate in ways traditional DAWs don't support. Code-as-instrument is genuinely innovative.
mclau153 yesterday at 3:06 PM
A really great source for this is DJ Dave
proc0 yesterday at 10:54 PM
Love Strudel, trying to learn it but inevitably you also need some musical foundation. It's a fascinating blend of specialties. Also I found AI is complete garbage at generating Strudel. Here is my weak attempt at Beethoven:

<pre> const SCALE = 'C#:minor' const CPM = 56 const SOUND = 'piano'

$: arrange( [4, n("<-7, 0>.25")], [4, n("<-8, -1>.25")],

  [2, n("<-9, -2>*.5")],
  [2, n("<-11, -4>*.5")],
  
  [4, n("<-10, -3>*.5")],
  
  [4, n("<0, -3, -7>*.25")],
  [4, n("<-1#, -3, -8#>*.25")],
  
  [2, n("<-2, -9>*.5")],
  [2, n("<-6, -13>*.5")],
  
  [4, n("<-3, -10>*.5")],
  
  [4, n("<0, -7>*.25")],
).sound(SOUND) .scale(SCALE) .cpm(CPM);

$: arrange( [8, n("4 7 9")],

  [2, n("5 7 9")], 
  [2, n("5 8b 10")],
  
  [1, n("4*.1 6# 10")], 
  [1, n("4 7 9")],
  [1, n("4 7 8")], 
  [1, n("3 6# 8")],
  
  [1, n("0 2 5")],
  [2, n("2 7 9")],
  [1, n("2 7 9, 11 - - 11")],
  
  [1, n("2 8 10, 11 -")],
  [2, n("2 8 10")],
  [1, n("2 8 10, 11 - - 11")],

  [1, n("2 7 9, 11 -")],
  [1, n("2 7 9")],
  [1, n("1 7 10, 12 - -")],
  [1, n("1 7 10")],

  [1, n("2 4 9, 11 - -")],
  [1, n("2 4 9")],
  [1, n("3 4 8, 10 - -")],
  [1, n("3 4 8, 13 - -")],

  [1, n("2 4 9, 9 -")],
  [3, n("2 4 9")],
).sound(SOUND) .scale(SCALE) .cpm(CPM);

</pre>

hamasho yesterday at 6:35 PM
Does anyone know if it's possible to run Strudel code on VS Code (or NeoVim)? Tidle Cycles has add-ons where I can play/stop updated code or part of code with ctrl(cmd)-. and ctrl(cmd)-space. I mean, one of Strudel strong point is the browser based rich visualization, but I just want to edit JS code with my favorite editor.
arvinsim today at 3:26 AM
I have just discovered Strudel last month. Even as an owner of Ableton, there is just something compelling about coding music in.
toboramai yesterday at 9:12 PM
Besides Strudel, there's also http://glicol.org/. It seems Glicol is more geared towards sound synthesis, while Strudel's sequencer is more powerful.
dr_kiszonka today at 2:52 AM
Strudel is great! But... are these really chords?

note("c4 e4 g4 c5").sound("triangle")

ubidefeo yesterday at 5:51 PM
if you need a 4/4 clicker metronome I crafted this one :) https://strudel.cc/hNV6sevsZERY
bobim today at 12:08 AM
True that compared to FoxDot, Sardine or Tidal, the syntax and visualization are just making the whole thing a real pleasure to use.

But this is way too taxing for my linux boxes that are ending stuttering quite badly sometimes. Are you all using macs or something?

dprophecyguy yesterday at 7:28 PM
dfltr yesterday at 6:13 PM
Strudel is dope and a ton of fun, but every single piece of its interface seems determined to confuse people who already know music theory and composition.

That's not really a point against it, it's a great tool and it's a ton of fun, but I wish there was a way to use it that at least kind of sort of mapped back to traditional music notation, especially rhythm notation.

jarth9 yesterday at 4:47 PM
Strudel is my favorite music coding environment. I mostly play on acoustic instruments but coding music has been really helpful as I try to learn music theory. Being able to just play in the browser without setup helps me focus on the music and less on fiddling with the tool. And it supports vim key bindings!
stuhlmueller yesterday at 6:17 PM
Here's a Strudel fork that uses LLMs to turn instructions like "add a bass layer" into code: https://github.com/stuhlmueller/strudel-llm
caliweed today at 12:04 AM
macmac yesterday at 4:36 PM
I love this approach to learning music.

A nitpick: Isn't the below statement wrong? I thought "RolandTR909" was the name of the soundbank which is used for both bd and sd?

"bd is bass drum (also called kick-drums), sd is snare drum. RolandTR909 is the name of the sound."

oceansky yesterday at 9:52 PM
I've been trying to compose music with Strudel after some years attempting to play the guitar and the piano.

This resource is very helpful

zitterbewegung yesterday at 4:15 PM
Strudel is a great tool and is helping me to make EDM from scratch. There are good tutorials and music that is easy to get started or to make something really interesting.
DevAhmadBilal today at 3:41 AM
Great work, looks interesting.
rob74 yesterday at 5:22 PM
This clip from an 80s spy comedy is probably too obscure to become a meme, but it deserves to be: https://clip.cafe/gotcha-1985/what-this-strudel/
rfl890 yesterday at 8:23 PM
Did anyone else think this article was gonna teach you how to play music using strudel (the food) somehow?
mberning yesterday at 4:17 PM
Is there a way to run it completely locally?
bibimsz yesterday at 9:55 PM
when AI takes over the world it will communicate with itself with a tonal language communicated in Strudel