logoalt Hacker News

Programming languages used for music

116 pointsby ofalkaedlast Saturday at 6:40 PM36 commentsview on HN

Comments

sandeberttoday at 12:00 PM

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

https://youtu.be/aPsq5nqvhxg

show 1 reply
fnordlordtoday at 2:53 PM

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.

Blackthorntoday at 2:52 PM

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.

benruttertoday at 9:29 AM

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

show 1 reply
azath92today at 10:29 AM

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)

show 1 reply
chaosprinttoday at 11:57 AM

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

akotoday at 10:55 AM

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.

show 2 replies
erk__today at 12:21 PM

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

philprxtoday at 9:17 AM

Strudel.cc ?

shevy-javatoday at 11:29 AM

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

show 2 replies
gdelfino01today at 12:49 PM

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

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

bebbtoday at 12:14 PM

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.

yakshaving_jgttoday at 2:53 PM

Haskell is also a popular choice for music production and live music performance.

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

opminiontoday at 9:39 AM

No Sonic Pi, which is a Ruby dialect?

show 1 reply
jackkinsellatoday at 8:47 AM

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/

rausrtoday at 9:26 AM

I recently tripped over Dogalog (live-coding with prolog-like code), which could be an addition: https://danja.github.io/dogalog/

3dstoday at 11:55 AM

It's missing "Strudel" and "tidal cycles"

show 1 reply
lynx97today at 10:07 AM

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.

show 1 reply
hellobluelingstoday at 10:16 AM

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?

oliverpaddocktoday at 1:31 PM

[dead]