back
105 comments
Switch Angel live-code using Strudel. Really impressive and interesting stuff.

https://youtu.be/aPsq5nqvhxg

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.
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.
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™.
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

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.
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.

This is one of my all-time favorite YouTube videos, and it's of her coding music - https://youtu.be/iu5rnQkfO6M
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.

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.)

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.

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)
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.
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

Relevant to this discussion - my project Glicol (https://glicol.org) addresses this space. Currently working on a no_std rewrite, demo coming next year :)
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.
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

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.
I recently tripped over Dogalog (live-coding with prolog-like code), which could be an addition: https://danja.github.io/dogalog/
There was a music language made for the Danish GIER machine, made in 1971 (at least the 2nd edition of the handbook is from there)

The handbook for the language is sadly only in Danish so it might not be super interesting: https://datamuseum.dk/bits/30002486

Here is the code for movement 1 and 2 of Eine Kleine Nachtmusik: https://datamuseum.dk/aa/gier/30000644.html

Very creative guy operating this site (look at this! https://timthompson.com/spacepalette/) though it looks like it’s been idle the past 4 years or so? The live-coding community around tidal cycles will point you to a the fruit of missing projects like tidal-cycles and strudel. A strong inviting community: https://club.tidalcycles.org/
Strudel.cc ?
No Sonic Pi, which is a Ruby dialect?
Yesterday i used Claude Code to define and implement a YAML based DSL for playing backing tracks. I can ask an LLM to generate this DSL for any well known song, and it will include chord progression, lyrics, bass, drums, strumming pattern, etc. It's a go command line tool that plays the DSL via midi, and displays the chords, strumming patterns, and lyrics. Also does export to Strudel.
It's missing "Strudel" and "tidal cycles"
There was one on HN a few weeks ago, tailored towards loops: https://news.ycombinator.com/item?id=46072280

One interesting feature is it has built-in vibe coding, to produce an LLM-generated loop program to start one's creative journey.

Musicabc has some really nice JS and Obsidian plugins that essentially allow you to create little scrapbooks of musical ideas in markdown that are also playable as sound and viewable as sheet music.

https://abc.hieuthi.com/

Music Lab by Code.org is a Blockly-based experience, built for K-12 education, at https://code.org/music.

It's open source, and we wrote some technical documentation at https://github.com/code-dot-org/code-dot-org/blob/600ebafa52....

There were a bunch of interesting aspects to this project. One of my favorite things was developing the user programming model. Organizing your music using functions is very powerful.

There is some sound and music functionality in the Wolfram Language:

http://reference.wolfram.com/language/guide/SoundAndSonifica...

I saw a post about the SKOAR language here on HN in late 2015:

https://news.ycombinator.com/item?id=10180423

In the comments, I saw reference to MML ( Music Macro Language ... not exactly what I think the MML is on the list. ) Here's the one referenced in the HN post.

https://en.wikipedia.org/wiki/Music_Macro_Language

At the time, I built a small interpreter that included MML as an embedded language, but I don't think I have the (Windows) binaries handy.

It isn't mentioned there, but you all might be interested in the python music libraries called SCAMP: https://scamp.marcevanstein.com

I learned about it after stumbling across the creator's short, fun videos showing it being used: https://youtube.com/playlist?list=PL_yUKG0GRuliL65l_qEG1uwCC... ("Python Music Shorts")

I kind of want to create music programmatically but so far it has been way too difficult. I also can barely find anything useful via oldschool google search anymore. I am almost stuck like with MIDI here ...
Opus Modus (mentioned there) is quite notably Common Lisp
Surprised no mention of Alda. I’ve only tinkered with it, but it’s clever:

https://alda.io/

There's a community in NYC called Livecode that hosts in person events for programming music and it's awesome
I have been using ChucK for a long time. Like others here, I appreciate Max/Pure Sound but would rather use my text editor.

  Delay delay;
  LPF filter;
  Reverb reverb;
  Gain feedback;
  
  adc => delay => filter => reverb => dac;
  filter => feedback => delay;
The best demo for music programming language demo I can found is: https://www.youtube.com/watch?v=yY1FSsUV-8c&t=374s, The concert programmer.
i was transcribing some songs for violin after picking it back up (mostly metal, which i have to take some liberties with to sound good on a violin + kick drum :> ), and thought about writing a language (maybe a rust steel module) to hand the typesetting for me, as writing out & erasing e.g. slurs can take a while. but lilypond really is good enough that there wasn't much about it i'd want to change, either syntactically or semantically (as really, i only need a very small subset of it). any language i do write, if i choose to, would probably use it as a backend --- its rendering is very good :)
Haskell is also a popular choice for music production and live music performance.

https://youtu.be/XYe8AKYPUYc?si=ZYP4QM5FLn00-5u6

It’s quite new, but I’ve been interested to try out this Rust-y syntax language that compiles to SuperCollider: https://vibelang.org/
And at least 5 times a year someone designs a new one where it is painfully obvious that they're almost entirely unaware that anyone has ever designed one before - or if you're very lucky, maybe they've heard of ABC.
This list is such a time capsule in the best way
There is also literate programming for music, right? Just like Donald Knuth describes it in his literate programming approach? See for example the videos by Fauci etc. They say things like eh eh, pause then play music using items such as a pen, there is even a conductor. Very entertaining. Is that true? Or just my imagination?
Max is great.
A few months ago I outlined a spec for a new modern programming language inspired by LilyPond I call Capo. I haven’t done anything with it yet but the idea is that it compiles to MNX, which is the (still in development) successor to MusicXML, becoming a language that could be used as a scripting language in any program that supports MNX or as a standalone text-based music tool. Thought this group might find it interesting: https://github.com/Capo-Lang/capo