Top
Best
New

Posted by birdculture 3 days ago

Music Theory for Programmers(runjs.app)
135 points | 58 comments
seanhunter 2 hours ago|
This is (mostly) not music theory and what is music theory is mostly wrong or incomplete to the point of being wildly misleading. Source: have degree and postgrad in music, was a professional musician until RSI put paid to that career, wife is a professional musician and teaches to postgrad level at 2 conservertoires, most of our friends are professional musicians, have a house full of scores and music books.

If you actually want to learn music theory for the purposes of playing I strongly recommend you just follow whatever tutorials for your instrument and style and if you get to the point where feel you want to learn more and take it seriously in and of itself, buy “The Jazz Theory Book” by Mark Levine[1]. In spite of what it says, there really isn’t any such thing as Jazz theory - it’s just music theory, and this book is a great presentation with lots of good examples. If you like jazz (or the western popular music tradition including rock, pop, funk, etc) you’ll come out understanding how that music works better than most people. If you’re doing a music degree, there will be books recommended by your music programme, but honestly, Levine will cover most of what you need if you’re not doing a straight classical course in which case you’ll want to augment with a more conventional source so you understand the “rules” they want you to follow when writing pastiche counterpoint etc.

If you want to get big into composition and/or want to understand late romantic and 20th century music, get Harmonielehre and “Structural Functions of Harmony” by Schoenberg. Together they are by far the best harmony books I have ever seen and go super-deep into why the western classical tradition works the way it does. If you compose there’s a decent chance they will change your life forever as his approach is to not take anything for granted but exhibit everything with examples from masterworks of the western tradition. Amazing books both of them. Harmony is not a spectator sport though - to get full benefit you have to get the books and work through stuff on the piano. It will reward you immensely.

If you want something else that will blow your mind, read “The technique of my musical language” by Messiaen. If you read Levine first this will have the additional benefit of showing you where the “diminished” and “augmented” scales and the whole “harmonic major” thing come from.

[1] https://www.shermusic.com/products/the-jazz-theory-book

ripharamberip 1 hour ago||
You say that the article isn't music theory but don't bother to say why.
dosisking 42 seconds ago|||
> You say that the article isn't music theory but don't bother to say why.

His response sounded kind of gatekeep-y to me. Kind of like an academic with theoretical knowledge, but no practical experience.

Many great musicians never learned proper music theory. Innovation comes from outside, not from inside the establishment.

seanhunter 34 minutes ago||||
It's a fun webpage about a programmer dipping their toes in the very most basic elements of music and documenting some of their current understanding.Imagine I wrote an article called "Programming for musicians" that was mostly about how to turn your computer on and install homebrew[1] and finished by showing you step by step how to cut and paste "hello world" in javascript from stack overflow. You might rightly say that while "programming-adjacent" the article didn't really address programming.

Here[2] Is the syllabus for ABRSM Grades 1-5 music theory. So this is super-basic music theory of the level that you couldn't really expect to pass high school music without knowing. I've picked associated board because this is the most generic music theory syllabus possible, and grade 5 is very basic. If you were actually studying music you'd go way way beyond this.

To a first approximation none of this is in the article. It also doesn't have any more advanced topics (functional harmony, orchestration, voice leading, transposition, key/scale relationships, advanced rhythmic concepts etc). That's why I say the article isn't really music theory.

And then for completeness, when I say that what is music theory is wildly misleading I'm talking about things like "chords are notes stacked in thirds". There's so much wrong about about this it's hard to even start, but for starters it's an if and only if when it really shouldn't be. Notes stacked in thirds are chords, but there are a whole heck of a lot of chords that aren't stacked in thirds. It's like if I said "even numbers are 4 and 6". It's like sure, but there's more to it than that.

[1] without mentioning that this was only needed if you were using a mac

[2] https://www.abrsm.org/sites/default/files/2023-09/music-theo...

pprotas 2 minutes ago|||
The author admits that this article applies to only a specific flavor of music theory, and says that it only covers a small part of it. The article even mentions at the end it does not cover some of the topics you think are missing.

The article is not a comprehensive syllabus of all elementary music theory, and it does not claim to be. I believe you are being too harsh, as this approach to understanding music feels much more intuitive to some (like the author, and myself), compared to traditional music education.

sddsasdasda 17 minutes ago|||
[dead]
dyzone 51 minutes ago|||
What is your opinion of open music theory v2? People on reddit think very highly of it. https://viva.pressbooks.pub/openmusictheory/
Rochus 5 minutes ago|||
Doesn't look like really a "v2" to me, rather v1 a bit re-arranged. A true "theory" able to explain present music (or even Jazz from the seventies) and also support its creation is still widely lacking, or just a naive variation of what was used for classical music. Tymoczko & co go a bit in a more general/useful direction where the theory eventually can also be used to define algorithms which can "compose" credible contemporary music, but still a long way to go. The latter is like the "litmus test" from my humble point of view whether a theory is indeed useful.
seanhunter 24 minutes ago|||
I don't know it personally but skimming it looks pretty good.
vishalmullur 1 hour ago|||
When I see my friends who are into music play and talk about different instruments, it actually feels like magic to me. I tried to learn Violin some years ago but I could never understand why the note was correct. I do know that if I had learnt Keyboard instead, I would know where the correct notes are but I am still not able to recognize a sound and understand what note that is. Any pointer as to what I can do? Because I dont think learning music theory is going to be enough for me.
seanhunter 1 hour ago|||
At many western music schools, if piano isn’t your first instrument, it is compulsory to study piano as a second instrument. The reason for this is that it really helps when understanding harmony. You also do ear training, which is meant to solve the problem I think you’re describing. I expect you would find ear training resources on youtube or something now but I did it the old-fashioned way where you start by listening when people play major / minor chords, all the intervals, learn to recognize inversions etc and then move on to doing transcriptions of music you like. I have box files full of transcriptions I did when learning. But Levine (for example) includes some ear training advice.
vishalmullur 1 hour ago||
Thanks! That's actually very helpful :)
kaoD 1 hour ago|||
> I am still not able to recognize a sound and understand what note that is

That is called "perfect pitch" and it is not necessary to play music. It's very rare to have perfect pitch, and it seems to be innate, not something you learn.

Contextual note recognition (relative pitch) is what musicians normally use to jam. It comes with practice and contextual clues that you pick up over tens of years (including familiarity with your jammate's instrument, even if it's not the one you play; familiarity with multiple eras of music theory; pure practice), so this shouldn't be your #1 priority since it just comes along for free (or a bit of practice), as you learn. Music playing 101 is just... playing music in your instrument. You don't need to recognize notes until you want to jam, which comes years after you start playing an instrument.

Some people seem to just be physically unable to distinguish relative pitch though.

You might want to start here: https://www.musictheory.net/ (not affiliated, I just think it's a very good resource for Music Theory 101).

dyzone 53 minutes ago||
> Some people seem to just be physically unable to distinguish relative pitch though.

I used to think I was pitch blind until one day it just clicked. It just takes practice in my opinion.

HexDecOctBin 1 hour ago||
As a non-musician non-Western programmer, the only music book that is making sense to me (still reading) is Robert Snyder's Music and Memory[1]. It's the first book that doesn't trick me by trying to pass cultural artefacts (notes, scales, raga, etc.) as some universal truth, or douse me in medieval pseudo-science (Pythagorean small ratios, etc.)

I am not an expert, so maybe this book has its own shortcomings which I am being blind to. But this is the first book on music I have been able to read this far without having to fight the urge to fling it against a wall.

[1] https://mitpress.mit.edu/9780262692373/music-and-memory/

pianopatrick 1 hour ago||
If you like that book, you might also enjoy David Huron's books on voice leading and anticipation. I have not read the book you referenced, but from the description it seems like a similar approach.
polotics 2 hours ago||
Let us try an experiment shall we: listen to any music you like and try and match the information the article provided to the complexity of what you are hearing. How much do you see a path from A(rticle) to S(ound in your ear).

This article is trivializing music down to a few not-so-important facts and mistaking some math for anything that would help `programmers` (?) understand music.

Maybe start by rewatching "This is Spinal Tap" instead, and consider that https://www.reddit.com/r/musictheory/comments/59n3pg/remembe...

amingilani 2 hours ago||
> How much do you see a path from A(rticle) to S(ound in your ear).

Very clearly. The author constructed a melody from first principles in the article. You can take any song, deconstruct it using the information in there and begin to see why it sounds nice.

> This article is trivializing music down to a few not-so-important facts

This is a music theory lecture with code examples. Hardly “not-so-important”.

> mistaking some math for anything that would help `programmers` (?) understand music.

Compared to the lessons on https://www.musictheory.net this is definitely programmer/engineer friendly. It’s better than my old go-to at https://www.lightnote.co

polotics 1 hour ago|||
Sure.

It is a trope amongst gigging musicians that over-intellectualizing the feels is a massive no-no.

Hence the joke about Db being the saddest chord... also Phil Collins said that, he would know :-D... ...and C# being the most evil chord. Hilarious.

I persist: "before you can be good, you first have to be bad" is more helpful music theory than that whole JavaScript visuals page.

huflungdung 2 hours ago||
[dead]
maybewhenthesun 2 hours ago||
> Which is a strange way to teach a system that essentially comes out of physics and arithmetic. There are twelve notes for a reason.

There is of course a lot of physics involved. But there is at least as much convention at play. So imho this is a very one sided way of looking at it.

There is a physical reason the 12 notes are those 12 notes (though the exact frequencies assigned are influenced by culture as well), but lots of different cultures use less notes, or more, or extra notes inbetween.

So 'Because that is the convention.' is imho at least a good an explanation as the physics one.

seanhunter 1 hour ago|
Also his physics explanation is not the best, and you can see if you just ask the next “why” question.

He talks about the harmonic series giving the basic ratios of the Pythagorean scale but why is that the case? When you solve the equations of motion of any sort of harmonic oscillator (including crucially, strings, vibrating columns of air from a wind instrument etc) you see that you can solve them using a Fourier series, so if you solve this in trigonometric form you get a_1 * cos blah_1 + 1/2 * (a_2) * cos blah_2 + 1/3 * (a_3) * cos blah_3 + … + 1/n * (a_n) * cos blah_n [1]

…so those fractions end up being the partials of the harmonic series (a_n/n) where a_n is the n_th coefficient, which you find using an integral. Now if you have a normal western musical instrument, the higher overtones (later terms of the Fourier series) are not prominent so those coefficients are small. So the terms that matter have ratios a_1, a_2/2, a_3/3, a_4/4, a_5/5 corresponding to the primary intervals that he’s talking about.

In cultures (eg Balinese and Javanese music from Indonesia) where they use a different number of tones and different scale, it’s no coincidence that they play a lot of gongs and bells, which have much more prominent higher overtones, so a different set of Fourier coefficients so different ratios are going to be “congruent”/melodious-sounding.

[1] the “blah” terms are a function of pi and the length and stiffness of the string etc. Not really relevant here.

ergonaught 3 hours ago||
I want to read it, because it’s interesting. And yet.

https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-re...

youoy 3 hours ago||
It looks good at the begining, but at some point it starts saying "half truths", or stating facts/conclusions with confidence as if that was the main reason, but its just half of it (and maybe not the most important half)...

I wanted to read it because I like the topic, but i somehow felt it was folluting my brain. I think i will also start joining the club of AI;dr to protect myself from pollution, even though i may miss some iteresting articles.

yiren 3 hours ago|||
I did read it, found it mildly informative/interesting, then saw your comment, read the link, and pasted in two paragraphs into Pangram 4... ouch! I guess I'm not LLM-weary enough?

https://www.pangram.com/history/25773627-adfa-4efb-8c10-f4fd...

alew1 2 hours ago||
When you read something like this

> Change it to 300 and run it again. You get a different pitch and nothing breaks, because at this level there are no notes yet, just a number.

does it make sense? Or perhaps it just seems like something easy enough to skim past without worrying about whether it makes sense?

Before LMs, I would have assumed that a person intentionally wrote that sentence, and perhaps spent some time trying to understand what could possibly "break" if there were "notes" rather than "just a number." Now there is a simpler explanation: the sentence actually doesn't mean anything.

rcxdude 14 minutes ago||
It's a very idiosyncratic (and often irritating) style, but I don't find it particularly difficult to understand. It's not meaningless, just weirdly phrased.
tessierashpool 3 hours ago||
yeah, this is robot garbage.

the post says: I wanted to start from scratch and learn music from first principles, and I began that journey by writing code.

but we know that's not true. you began that journey in Claude Code, or Codex, or ChatGPT, or whatever. you just want to demo your startup that embeds JavaScript in web pages.

larodi 34 minutes ago||
https://news.ycombinator.com/item?id=49376704 - 17 days ago https://news.ycombinator.com/item?id=49346025 - 19 days ago

and there's one more 15 days ago, but really - it seems a link needs to be posted several times to take off.

@dang

pianopatrick 1 hour ago||
For all the programmers reading this who think music theory is complex, just realize that is how programming seems to most people.
theanonymousone 3 hours ago||
How come the same article has been posted four times in the past 18 days? https://news.ycombinator.com/from?site=runjs.app

Doesn't HN have a temporal deduplication system?

raincole 2 hours ago|
When I tried to post a duplicated link HN will just redirect me to the existing one, but somehow everyone else seems to be able to post the same link multiple times.
theanonymousone 2 hours ago||
Same. (but of course, you don't see the duplicates when they do accept your post)

You can also see duplicates e.g. here: https://news.ycombinator.com/from?site=semianalysis.com

yvdriess 42 minutes ago||
I enjoyed the programmer's approach to build it up from first principles. I chuckled at rythm being the binary encoding of the duration's mantissa.

Now dispell the "this is just the western tradition": do Klingon music theory https://youtu.be/1LjcBv-OWtQ

_kb 2 hours ago||
If this is the sort of thing that interests you, I highly recommend setting aside 90 minutes and strapping yourself in for a listen to https://malwebb.com/notnoi.html.
dyzone 28 minutes ago|
The gigs page points to "file:///Users/malwebb/Documents/Mal%20Webb%20Site/gigs.html" haha.
WindyTree 2 hours ago|
Pretty good, could use more on the tonic, how it’s defined for a diatonic set of 7 notes. The chosen I IV V primary chords are key for that, but a precious tidbit I learned is any of the notes can be set as tonic, but the I IV V chords are only for major and minor. Like for the notes in C major, it becomes A minor with I IV V chords starting off A, but to set the tonic to F, it becomes F Lydian mode with primary chords I, II, and VII. (Fmag, Gmaj, Emin) The rule for the primary chords of the modes is you find the note that differentiates it from the major or minor scale, and pick the chords that have it avoiding the diminished. Playing the notes of c major starting at f, it’s the sharp fourth b that is different, so the primary triads are f-a-c e-g-b and g-b-d.

Oh, and rhythm is just the same as consonance. Most are octave based, beats on wave peaks of overlaid octaves getting quieter. The 3 based on times like 6/8 are the same but for 5ths and 17ths. (The bottom number 8 is just a BPM hint from old days.) beyond those the intervals get unstable feeling, like 7/4 in Money by Pink Floyd has that cut off feeling, someone took a few from each measure, but maps to a minor 7th interval.

More comments...