Top
Best
New

Posted by ofalkaed 2 days ago

Programming languages used for music(timthompson.com)
283 points | 94 commentspage 2
scelerat 17 hours ago|
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.
tempaccsoz5 11 hours ago||
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...

TheRealPomax 16 hours ago||
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.
zX41ZdbW 22 hours ago||
I use SQL for music: https://github.com/ClickHouse/NoiSQL
yowlingcat 18 hours ago|
Very cool! Found this note interesting:

```

Limitations

I haven't, yet, found a good way to implement filters (low-pass, high-pass, band-pass, etc.). It does not have Fourier transform, and we cannot operate on the frequency domain. However, the moving average can suffice as a simple filter.

```

I wonder if there's a way to implement the FFT using subqueries and OVER/partitioning? That would create a lot of room for some interesting stuff to happen, specifically making it easy/possible to implement filters, compression, reverberation, and other kinds of effects.

Two other primitives that would be valuable to figure out: 1. How to implement FM/phase distortion. You can basically implement a whole universe of physical modeling if you get basic 6 op sine wave primitives right with FM + envelopes. 2. Sampling/resampling - given clickhouse should do quite well with storing raw sample data, being able to sample/resample opens up a whole world of wavetable synthesis algorithms, as well as vocal editing, etc.

Honestly, although the repo's approach is basic, I think the overall approach is wonderful and have wanted to be able to use SQL to write music for a while. I've spent a lot of time writing music in trackers, and being able to use SQL feels like it would be one of the few things that could spiritually be a successor to it. I've looked at other live coding languages, many of which are well built and have been used by talented people to make good music (such as Tidal, Strudel, etc). But all of it seems like a step down in language from SQL. I'd rather have their capabilities accessible from SQL than have to use another language and its limitations just to get those capabilities.

Food for thought -- thanks for the interesting and thoughtful work!

listenfaster 18 hours ago||
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/
erk__ 22 hours ago||
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

rausr 1 day ago||
I recently tripped over Dogalog (live-coding with prolog-like code), which could be an addition: https://danja.github.io/dogalog/
philprx 1 day ago||
Strudel.cc ?
opminion 1 day ago||
No Sonic Pi, which is a Ruby dialect?
1313ed01 20 hours ago|
Sonic Pi is SuperCollider, but using Ruby instead of the default sclang language. Overtone is similar (and possibly originally by the same developer, iirc?) but using Clojure, and is also missing from the list.
iLemming 17 hours ago||
Yeah, that's some glaring omissions - not including Sam Aaron's work makes me distrust the whole list. SonicPi is fundamental for teaching kids music and programming and Overtone is just mind-blowing - I watched people DJing music while evaling things in Emacs, that looked sick.
ako 23 hours ago||
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.
shevy-java 23 hours ago||
The problem I see is: people are not going to use a project that is AI generated for long really, unless they do it just for a one-off task. I'd like to constantly generate new music. I also have ideas based on existing music so I want to adjust this, but do so programmatically, and that seems ... hard.
ako 18 hours ago||
Sure, for something big code needs more review and validation. But this is just a small command line tool that allows you to ask an LLM to generate a DSL to play a backing track: https://raw.githubusercontent.com/ako/backing-tracks/refs/he...

Not a big commitment from a user, and nothing lost if it doesn´t work as hoped.

I'm just positively surprised how quickly you can create a prototype for these sorts of ideas with Claude Code. This is literally just a few hours of vibe-coding.

ako 2 hours ago||
Full vibe coded project: https://github.com/ako/backing-tracks
isodev 22 hours ago||
Depending on the source music, there are many aspects of this that normally require a license with a records company or some proxy. Especially the lyrics part. Be careful not to get into very expensive trouble. Just because the LLM can do it, doesn’t mean it’s ok to do it.
ako 21 hours ago||
Yes, I noticed that Claude Code silently refused to generate lyrics for some songs i requested. Benefit of this approach is that anybody can quickly generate a YAML file for a backing track, no need to share it anywhere.
isodev 21 hours ago||
I think the problem is that the artist doesn't get anything with this approach. If you really want to use someone else's music/artworks/lyrics, just buy it.
ako 20 hours ago|||
It's not like this is very unique, YouTube has tons of training and backing track videos, which is what i typically use. And artist don't sell it in a way that can be consumed for guitar practice easily.
rerdavies 20 hours ago|||
Most artists don't sell backing tracks though.
jim_lawless 17 hours ago||
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.

bebb 22 hours ago|
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.

More comments...