Hacker News new | ask | show | jobs
by fenomas 2334 days ago
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.