Top
Best
New

Posted by ofalkaed 12/20/2025

Programming languages used for music(timthompson.com)
316 points | 105 comments
sandebert 12/22/2025|
Switch Angel live-code using Strudel. Really impressive and interesting stuff.

https://youtu.be/aPsq5nqvhxg

AlexB138 12/22/2025||
This is pretty incredible to watch. I initially thought she must be pulling some kind of trick to make that look so fluid, but the fact that she is making very small typos and correcting them as she goes make it look very believable. This is really the first time I've watched someone use one of these tools and it feel like a musician using a new kind of instrument.
sandebert 12/22/2025|||
Yeah, she's got several videos, and shorts, where she does this. It's clear she really, really understands how to do what she wants to achieve!
cowsaymoo 12/22/2025|||
If you go back to the older videos she has like a decade of experience messing around with modular synths to make music live that is actually listenable.

She is also a main developer on the strudel project. If you want to contribute, it is open source:

https://codeberg.org/uzu/strudel

junon 12/22/2025||||
As a producer, wow. She can visualize the outcome she wants without ever seeing much at all. That takes a ton of skill. Insanely impressive video.
AlexB138 12/22/2025|||
Yeah, I'm watching more. These are incredible. I really like how she describes what she's doing in tempo with the music as she does it. The description is basically part of the performance. Really unique and engaging approach.
empath75 12/22/2025|||
I think the videos are done live, but she plans them out, she isn't just winging it.
lucyjojo 12/23/2025||
she is a producer, not making anything innovative music wise (she must have done similar things thousands of times), with a long experience in live music, and she is a/?the? core dev of the tool she is using.

honestly i think the planning is at most a few minutes long (once she decides what she will go for) then she probably let the experience talk.

george_____t 12/22/2025|||
Just to add some context, Strudel is TidalCycles ported from Haskell to JS. IMO, Haskell is a much nicer language for this stuff. Hopefully, now that GHC can output WebAssembly, someone can build a web-based music programming environment around the original TidalCycles instead.
loxs 12/23/2025||
Is there feature parity? Strudel might be ahead by now?
NeutralForest 12/22/2025|||
I've watched a couple of her stuff, it's really inspiring and feels very cosy, like a slice of Internet that lives on its own and creates without being too bothered about the Algorithm™.
AStrangeMorrow 12/22/2025|||
Yeah love her stuff. And honestly the voice description is part of the music flow at this point.

I feel like that’s kinda how people imagined navigating whatever cyber domain when the first big cyberpunk novels came out

lagniappe 12/22/2025|||
The person in that video really has an ear for synthesis. I've spent quite some time watching all the strudel videos and this creator consistently shows the best skill across genres.
ar_lan 12/22/2025|||
This was epic, and reminded me of the magic of programming when I first found a video game maker at a wee 11 years old.

Writing code to make music feels so natural to me (a musically inept, but proficient coder) and this breaks down so many barriers.

I wonder how Cursor fares with Strudel so far.

fragmede 12/23/2025||
Dunno about Cursor, but Claude code > codex, in my experimentation, but that was before 5.2.
theossuary 12/22/2025|||
This is one of my all-time favorite YouTube videos, and it's of her coding music - https://youtu.be/iu5rnQkfO6M
Blackthorn 12/22/2025||
In order, the most popular ones of these are probably

* Max. It's built into a popular DAW, and is shockingly capable as an actual programming language too. The entire editor for the Haken line of products is written in Max.

* Pure Data or Supercollider.

* Csound.

Not ordering things like Scala or LilyPond that are much more domain-specific.

why-o-why 12/22/2025||
When I was first introduced to Max it was on a Mac SE in 1989, and I really only used it for saving & restoring patches (on my SY77 and U110) until someone walked me through how it really worked. I didn't understand what it could do, and I rejected it at first because it was too open-ended for me to see utility. Lol. How things changed after that.

What really blows my mind is that I wasn't at all put off by the tiny little Mac monitor, it just seemed normal. No way I could work with such a small b&w screen today I'd go mad. (weirdly I feel less creative than i did in the 1980's and NOW i have near infinite recording & mixing options. The irony.)

quantpunk 12/23/2025|||
I learned programming with csound in the 90s but for me, Pyo and Librosa means there is no reason for a specialized language outside of python.

There is value in what has already been built for these languages but once you move beyond that, life is so much easier to just use python.

Cecilia5 is a great example of that being rewritten from csound to pyo.

veunes 12/23/2025||
Csound is funny because it's everywhere in the lineage, but relatively few people seem to arrive at it organically now
lynx97 12/22/2025||
Csound (I think v3) was the first music language I played with, back in the early 90s, under DOS even. Back then, running in real-time wasn't a thing. Generate a WAV file and play it after the program finished. Later, at the end of the 90s, I remember playing with CLM/CM, in common lisp.

But the most productive experience was definitely SuperCollider. I can only recommend giving it a try. Its real-time sound synthesis architecture is great. Basically works sending timestamped OSC messages AOT (usually 0.2s). It also has a very interesting way of building up so-called SynthDefs from code into a DAG. I always wondered if a modern rewrite of the same architecture using JIT/AOT technology would be useful. But I digress... SC3 is a great platform to play with sound synthesis... Give it a try if you find the time.

whilenot-dev 12/22/2025|
I can vouch for the tutorial series from Eli Fieldsteel[0] for getting into SuperCollider and audio synthesis in general. If you were ever curious on how to bridge the gap between signal processing and music theory through mathematical operations, I think this is one of the best series out there.

[0]: https://www.youtube.com/watch?v=yRzsOOiJ_p4&list=PLPYzvS8A_r...

azath92 12/22/2025||
Almost an esolang, but orca is an amazing example of spatial programming for music production (GH https://github.com/hundredrabbits/Orca and video https://www.youtube.com/watch?v=gSFrBFBd7vY to see it in action)
lovich 12/22/2025||
Is this the one from the hippie(non perjorative) group living off a boat?

If it’s the same, it’s one that if I win the lottery I’d spend my time learning along with this tool from Imogen https://mimugloves.com/

I don’t think I’d ever produce something worth listening to, but if I won the lottery, why would I care beyond my own enjoyment?

listenfaster 12/22/2025|||
‘Your own enjoyment’ is a rich reward. My unsolicited advice: Try making a mess with it everyday for a week / month / year and see if you don’t start to appreciate something in what you make. Orca is a brilliant piece of work.
lovich 12/22/2025||
My own enjoyment was predicated on the money side. If I was independently wealthy I’d be splitting my time between this and gem faceting as hobbies
NeutralForest 12/22/2025|||
Yeah it's from 100r https://100r.co/site/projects.html!
elxr 12/22/2025||
That screenshot is super interesting, never seen anything like it.

It's giving me some ideas for a TUI video editor using that grid interface. What a cool project.

iansteyn 12/22/2025||
Sonic Pi is missing imo. (Some have mentioned Strudel, it’s a similar live-coding music platform). Admittedly Ruby-based, but it seems some of the other ones on the list are libraries/forms of other langs too.
jweather 12/23/2025|
Sonic Pi is by far the most accessible way to play with these tools. It's designed to teach music and coding to kids and has great starter tutorials, and a ton of depth as well. Check it out!
benrutter 12/22/2025||
Looks interesting, but I think it's a little dated- sadly most of the links I tried on this page don't seem to be active anymore?

Here's a currently active list on github in case somebody's left needing a fix of music programming: https://github.com/zoejane/awesome-music-programming

ofalkaed 12/22/2025|
Most of the languages on the list have not been maintained in decades with many being for functionally extinct if not completely extinct systems. It is not really a list meant to guide you to a language to use, it is more about historical/academic interest.
chaosprint 12/22/2025||
Relevant to this discussion - my project Glicol (https://glicol.org) addresses this space. Currently working on a no_std rewrite, demo coming next year :)
heuermh 12/22/2025|
Curious, would the rewrite allow for building on hardware platforms such as the Daisy?

Or maybe it is already possible, to be fair I haven't looked closely.

https://daisy.audio/hardware/, https://github.com/electro-smith/libDaisy

chaosprint 12/22/2025||
of course I already got a poc a while ago:

https://github.com/chaosprint/daisy-rust-playground

but for now my main mcu is rp2350

heuermh 12/22/2025||
Awesome, will check it out!
fnordlord 12/22/2025||
I really hope that Max becomes fully accessible in a text based format one day. It's so cool and I've spent a few months randomly through the years building neat plugins for Ableton but, for me, it would be so much stickier if it was code. Especially now with AI assistance, Claude can still be helpful but it hallucinates a lot harder when trying to describe visual code.
Slow_Hand 12/22/2025||
Would love to see this, as someone who has been heavily using Live since 2006 and is finally getting into proper coding in middle-age. Having a way to augment Live in a text-based coding format would be greatly welcome.

While I'm not holding my breath, Ableton the company are transitioning into a steward-ownership model in which the stewards will have decision rights over the company. So I have hope that it will continue to grow in ways that are less affected by market considerations and that are a little more opinionated and specialized. Not to mention that Ableton own Cycling 74 (creators of Max/MSP).

So it's not out of the realm of possibility.

dr-smooth 12/22/2025||
you can use Javascript with Max. It's a bit unwielding in its handling of multi-JS-file projects, but it can be done.

Not everything in Max is exposed to your code, but you really can do a lot from the JS side of things.

Slow_Hand 12/23/2025||
I had no idea! And I'm learning Javascript, so that's a nice coincidence.

I was deep into Max/MSP around 2010 and made a personal vow to leave it alone. The potential to reinvent the wheel and build tools instead of completing records was too much.

Now I'm in a more mature place, so I could see myself diving back into it eventually.

scragz 12/22/2025|||
you can get the LLM to output max patches in JSON and copy paste directly into max. it was pretty decent at it when I tried and would probably be even better with relevant recent documentation in context.
veunes 12/23/2025||
Max is basically a programming language already: message passing, scheduling, state, abstraction, even metaprogramming
rriley 12/22/2025||
Great compilation. The ".cgi" in the URL clearly tells me this is an old collection of links :-)

Another fun esoteric music language missing in the comments is ORCA: https://git.sr.ht/~rabbits/orca

scelerat 12/22/2025|
I love seeing a Definition List (DL/DT/DD html tags) in the wild. Often more hassle than its worth to make them appear the way you want, but semantically pleasing and underused.
TheRealPomax 12/22/2025||
combine it with a <details> and <summary> inside the <dd> and a little CSS checkbox toggle for JS-less "show all details"/"hide all details" and it's pure gold.
tempaccsoz5 12/22/2025||
Their structure in the markup can be a bit confusing imo - something more like a <figcaption> inside a <figure> or a <legend> inside a <fieldset> would be much nicer imo.

The spec even mentions [0] that you're allowed to use <div>s to group dt/dd pairs for styling purposes.

[0]: https://html.spec.whatwg.org/multipage/grouping-content.html...

More comments...