Hacker News new | ask | show | jobs
by fenomas 2335 days ago
I've been down this rabbit hole for a few years, except making procedural music with code rather than physically playing an instrument. No musical background at all (I started by googling "chord" etc).

My take is, the basics - the math behind chords and chord changes, summarized on the left page of the PDF - are embarrassingly simple; you can know everything there seems to be to know in a weekend or two. However for the application - using those basics to create or understand music - I'm still not entirely sure there's anything to know.

That is, one can find scads of sources online similar to the right-hand page of the PDF, which analyze the structure of some phrase or composition. But it all seems to pretty much boil down to giving names to things; there don't seem to be any generally applicable principles. The closest thing we have seems to be voice leading rules, but they're very much "doing X sounds good except when it doesn't" sorts of things.

1 comments

Can you recommend any sources?

What kind of setup do you use to do your development?

No particular sources, but topic-wise what made things click for me was roman numeral notation and secondary chords. Or rather, implementing the math behind those things made me feel like I understood what was going on, and that's the nomenclature/data structure I stuck with. But the notation in the PDF is equivalent - it all boils down to having an array of numbers and then either reindexing the array or adding to the elements modulo 12; everything beyond that is just nomenclature.

The only thing difficult about it is finding sources that just explain the (extremely simple) math without tons of opaque terminology. E.g. here's the second sentence of wikipedia's definition for "secondary chord":

> Because tonic triads are either major or minor, you would not expect to find diminished chords (either the viio in major or the iio in minor) tonicized by a secondary dominant.

Blech. For years I've meant to write a bare-bones "music for programmers" article but haven't done it yet. There are other such articles around but I never saw one I was enthusiastic enough about to bookmark.

For dev setup, if you're a browser/JS person I recommend Tone.js, which is a very short path from zero to "here's an array of integers, play quarter notes for their midi values". I outgrew it at some point and now roll everything by hand, but I probably shouldn't have.