Made for Smart People
Are you interested in learning more about music but have found most material condescending or to present things magically instead of logically? The good news is that much of music can be understood with programming and math, two things you're already good at! In this book you'll learn some elements of music from a programmer's perspective.
The Layers of Music
In this book you'll learn about the primitives of music such as notes and duration, the means of combining those primitives into motives and chords, operations such as transposition, retrograde, and inversion, and the means of abstraction (phrases and form) using Python and some basic math.
Examples in Python
Every concept in this book is explained in English with a corresponding implementation in Python, using the Pyknon music library. I think it's remarkable that we can implement the compositional process of some pieces in only a few lines of code.