Readit News logoReadit News
DigitalDopamine · 2 months ago
Loved playing with it! https://strudel.cc/?qVv8Cr0OD6cc
abhinavmir · 2 months ago
I shed an actual tear. I dreamed of days like this. I got close, building a small language for generating generic music, but with decay, sawtooth and stuff? It's a functional DAW.
kaoD · 2 months ago
> functional DAW

I made Lambda Musika[0][1] a long time ago and its elevator pitch is literally "Lambda Musika, the functional DAW" (as in functional programming).

Check the teal button at the bottom for other examples!

I don't use it that much anymore (Strudel's language is truly expressive) but I still reach for it when I want to do sound design, since Strudel is more like a sequencer (where Lambda Musika lacks).

[0] https://lambda.cuesta.dev/

[1] https://github.com/alvaro-cuesta/lambda-musika

xrd · 2 months ago
This is so incredible, musically, visually and didactically. Absolutely amazing. Absolutely amazing.
simonw · 2 months ago
That demo is excellent. You can uncomment some lines at the bottom and hit alt+enter (or click the Update button) to add visualization effects too.
alabhyajindal · 2 months ago
Amazing! Though I can't get the theme to stop changing while the music is playing. Is there a setting I'm missing?
DigitalDopamine · 2 months ago
Set colors to false on line 133
yayitswei · 2 months ago
Looks like the theme changes are part of the arrangement (see lines 135-149).
smrq · 2 months ago
That's absolutely sick. I love seeing a full arrangement like this as opposed to destructive live coding--that's cool too, but I don't really vibe with it as a workflow. Definitely taking some inspiration from this.
rodrigodlu · 2 months ago
Wow, I started learning recently, I didn't know you can change the theme.

Also this music brings really good vibes!

I get more motivated when I can see it working directly and change some code here and there!

Thanks for sharing.

theshrike79 · 2 months ago
Ahh, so THAT's how you make an actual song with it instead of just a loop :)

SwitchAngel always makes their songs live so I never got it, but now I understand.

mettamage · 2 months ago
Well that song was my digital dopamine for the day. Couldn’t stop bobbing my head while in a busy train
chrislo · 2 months ago
Love this! Patterning the theme is such a great idea.
globalnode · 2 months ago
That made me smile, well done and thanks Lennard! (do recommend setting colors = False though)
l0c0b0x · 2 months ago
Great work! I'm saving this one (I have it in a loop rn on my big screen).
mazswojejzony · 2 months ago
This is great! I'm not really into electro, but I really like this one!
dallen33 · 2 months ago
This is absolutely insane.
butlike · 2 months ago
You made an entire performance. Good, good job
squarefoot · 2 months ago
I found that annoying on the editor, but if used on a 2nd screen to build graphics programmatically (fractals, etc), or via an external port to drive RGB LEDs arrays or matrices, results could be spectacular. Imagine fractals driven by music or a giant spectrum analyzer made of LED strips.
oceansky · 2 months ago
Not recommended for people prone to seizures
fuzzythinker · 2 months ago
Love, love, love it! A fitting username!
josittas · 2 months ago
Very cool! Thank you for sharing :)
lioeters · 2 months ago
That was a lovely experience.
ubidefeo · 2 months ago
love how you change the style as it plays. the custom font is a nice touch :)
IrrationalGaze · 2 months ago
RIP epileptics
jamesfmilne · 2 months ago
Bravo!
WhyOhWhyQ · 2 months ago
Fantastic!
faxmeyourcode · 2 months ago
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.
ashwindharne · 2 months ago
I went to a basement party/rave recently where the DJ was live-coding strudel, was incredibly cool to see in person. people would watch them type out new lines in anticipation of a beat drop

Pretty cool to see this post, I had no idea where to find more info about it!

grantmuller · 2 months ago
Another live-coding environment that is quite nice (Haskell-based) is TidalCycles: https://tidalcycles.org

I wrote a whole album of material about 10 years ago with it, just remastered/re-released it. It's a fun way to write music while on an airplane!

lomase · 2 months ago
Strudel is TidalCycles but in javascript.
xdc0 · 2 months ago
It's fun to watch and somehow more approachable to me than a big program with lots of menus and virtual knobs.
venturecruelty · 2 months ago
Algorave definitely seems to be having a moment! I know the scene has been around for a while (live chiptune shows have been a thing for years), but it seems like the Strudel-specific live coding shows are rapidly becoming popular. I love to see it. As someone who likes both programming and music, it's awesome to see people mix both and get fantastic results.
ge96 · 2 months ago
Would be curious licensing on music you produce with it eg. can you use it, record the session then put it on YT no copyright.
simonw · 2 months ago
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/

hecanjog · 2 months ago
The toplap wiki has some more history about the community too: https://toplap.org/wiki/HistoricalPerformances

Edit: oh right! Also the toplap documentary from 2005 has some actual video of early live coding performances from this community. https://archive.org/details/toplap-documentary

pragma_x · 2 months ago
IIRC, that team are also (now) live-music-coding veterans, which in turn has informed how Strudel is built. It's not just a project that does stuff, it's a pretty well crafted instrument that is ideal for these performances.

As an engineer, I love letting the requirements shape the solution, but this is just on a whole other level.

Sammi · 2 months ago
Such a good example of why everything is becoming js. Because it's where the users are. Anything that isn't in js will just languish comparatively.

Everything is becoming js because everything is becoming js.

tormeh · 2 months ago
Have you taken a look at how to install the Haskell variant? It's a full-on recipe, or a docker container. I'd take a desktop application over a website any day, but that was not on the menu. It was an SPA vs a devops exercise. Of course the SPA wins.
venturecruelty · 2 months ago
Tidal Cycles is hardly languishing. Not everything needs a billion users and VC funding.
thoughtpalette · 2 months ago
"...because everything runs js*"

Javascript runs on ~70% of all devices worldwide.

nolroz · 2 months ago
... And js is everywhere
i_gumby · 2 months ago
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.

rodrigodlu · 2 months ago
Is there a way (like a CSS rule or something similar) that when you look at the main strudel window, it only shows the piano rolls, punch cards, sliders, etc - but not the code?

Maybe with just the comments? This would be killer, since I have dual displays, and on one I can just focus on the code, the other one can have all the visual stuff.

I'm using this plugin, but having the code twice distracts me a lot (but I prefer the original neovim instead the integrated vim mode inside strudel).

Thanks in advance!

gruvw · 2 months ago
Hey, plugin author here, there is a section in the README for that (not the piano roll, but only the hydra visuals) :)

Note that there is also a feature to inject your own custom CSS into the page.

You can also run in headless mode to not launch the browser window. Hope it helps :)

ebertucc · 2 months ago
I'm not using the plugin, but this hides the code in the browser:

.cm-line span { outline: none !important; color: transparent; background: transparent !important; }

i_gumby · 2 months ago
I've only just started playing around with it, so I don't know enough about it unfortunately. You could open an issue against the repo; the plugin owner might be able to answer your question.
semi-extrinsic · 2 months ago
Link has a trailing semicolon and doesn't work - but awesome to have nvim + strudel!
Y_Y · 2 months ago
https://github.com/gruvw/strudel.nvim

Now with no added punctuation!

jquaint · 2 months ago
This is a great plugin! It's so cool to do this in a vim workflow.
raphar · 2 months ago
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

venturecruelty · 2 months ago
A slightly older Switch Angel trance video is how I learned about Strudel/TidalCycles: https://www.youtube.com/watch?v=GWXCCBsOMSg. Her narration over top makes it the perfect trance track. "More chaos brings more power. More power brings more control." I desperately want a clean sample of that.
rossjudson · 2 months ago
Exact same here. I watched that video about ten times in a row.

I learned it's more important to know how the big sound pieces fit together and what you can do by tweaking them. Have many, many different versions of the big pieces doesn't really matter.

I also came away wishing that Bitwig had a strudel mode. Every time anyone does anything in the grid, they'd be better off with a strudel equivalent. I think.

a1ff00 · 2 months ago
+1 Switch Angels performances
Jarmsy · 2 months ago
Increase the duck attack!
danvoell · 2 months ago
this is awesome. The only code instruction video instructions that I have watched that doubled as a song. At first I thought it was the Euro dance hall lyrics and then I realized it was actually the code instructions.
canyp · 2 months ago
Tangent, but...is that her real/natural voice? It's like studio-level female vocals for Hardstyle without even trying. I am mesmerized.

Edit: it looks like she has a filter on. I'm an audio noob so I can't tell.

defrost · 2 months ago
Connie Mitchell has an OG EDM voice: https://www.youtube.com/watch?v=sHlnXrZk-T8

https://youtu.be/iJUNznsc4JI?t=168

She did a lot of live EDM parties during the peak Mallorca et al party island times.

illwrks · 2 months ago
This is an excellent example. It also highlights how if I tried this it would sound terrible as I lack have vocabulary to describe what I want, and how that relates to the code.
l0c0b0x · 2 months ago
Yeah, thanks for both posts. I love the narration with the live coding (like a conversation with voice and code). If I can get to that level, I'll die a happy man.
rudolph9 · 2 months ago
Is this real library/editor/programming-language ?? I don’t see anything on how it’s made?
knowaveragejoe · 2 months ago
Yes, it's Strudel.

https://strudel.cc/

raphar · 2 months ago
It is!

She is using https://strudel.cc/

mbStavola · 2 months ago
Every time I watch one of her performances, I smile when she says "... with the scope."
neom · 2 months ago
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

yaxu · 2 months ago
It's a bit annoying that he forked it back to github, when strudel was purposefully moved to codeberg for ethical reasons.
wouterjanl · 2 months ago
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!
WhyOhWhyQ · 2 months ago
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.

WhyOhWhyQ · 2 months ago
I was trying to make it automatically randomly choose between the normal speed and twice speed after a long time. I think appending

.fast(chooseCycles(1, 2).slow(128))

at the very end does it. But I'm not actually sure. Would a strudel user mind informing me how this is done? Also, I was hoping to make it automatically shift the key, but I couldn't figure it out.

yaxu · 2 months ago
Kind of - that's switching between a fast version and a slow version of the track though if that makes sense, rather than changing the global tempo, so you'll get discontinuities in the music.

You can change the global tempo with something like

.cps("[0.75|1.75]")

and make it happen less often like

.cps("[0.75|1.75]/8")

a_t48 · 2 months ago
Sadly doesn't even run at all on safari. "Importing a module script failed." :(
Towaway69 · 2 months ago
Also worked find on my Safari 18.6

uBlock/uMatrix perhaps? At least that was for me the issue on Firefox.

artimaeis · 2 months ago
Running fine here on Safari 26.1 (Tahoe 26.1).
WhyOhWhyQ · 2 months ago
NOOOOOO!!!