A long time ago, I got bored and started to write out everything I knew about digital audio. Mostly, just as an exercise for myself. I'd been a student of music for basically my entire life, gone to two different universities and got two degrees in related fields. But after all that time, I'd never really been forced to put all of my knowledge to the test and aggregate it in one place.
As I reflected on the things I'd learned in the many years I've spent making recordings, it dawned on me that getting to this point took a long time. And I mean a long time, just floundering as I tried to wrap my head around concepts that just weren't very intuitive or maybe weren't explained very well to me at the time. And though my knowledge has been hard-won, I really don't think it needs to be that way for everyone else. The point of acquiring knowledge is to use it and share it. A rising tide lifts all boats, that sort of thing.
And so I've adapted my writings on digital audio and signal theory into a more or less formal course on the subject. I'll probably add to and make addendums to the material as time goes on, but for now it's just going to be a one shot lesson plan you can (hopefully) follow along with from a point of complete and total ignorance and, by the end of it, know as much as I do.
I'm not a teacher nor do I claim to be one, so the methods I use and the analogies I turn to may be a little unorthodox. Just roll with it. This is the internet; you can find 82,0000 more of these with a quick Google search.
So we're going to be talking about one particular application of computer science that appeals to us audio professionals, called Digital Signal Processing, or DSP.
Digital means we're working with computers and the programming languages we use to control them.
Signal refers to the inputs we're going to feed to these computers and the outputs they're going to spit out for us.
Processing refers to the operations the computer is going to do, and the operations we can tell the computer to do, to our signals.
This all, of course, involves working with computers. So how do you do that?
Well, you can't talk to a computer like you would another person. They have their own kind of language based on strings of 1's and 0's called binary: