hidden hidden
hidden hidden

This website may not display correctly on resolutions less than 800x600.                                                  This website is best viewed with your eyes.                                                  This website is best considered as a collection of discrete qualia.

Under Construction                                      Under Construction

"Music is the pleasure the human mind experiences from counting without being aware that it is counting" - Gottfried Leibniz

The one research paper under my name has an interesting story behind it. Or at least, it was interesting for me.

I went to university for a dual major of Computer Science and Mathematics. My school had a special program for math students to learn programming, but I was one of the few that was doing a full major on both sides. When one of our math professors started advertising for a computer science student to work as a research assistant, programming an interface to display and explore the data their algorithm was putting out, I was interested.

Their algorithm, they explained, was attempting to define how "close" musical ideas were to eachother. A rising trio of notes C-E-G, well, that's not terribly different from C-F-G, or G-E-C, or C-E-E-G, or even D–F#–A (shifted up a tone). Each of those is a "motif", and in classical music you'll frequently have a few motifs that are "important", and show up throughout the piece in different variations. Those central motifs are like Lebowski's rug, they tie the piece together. In a way, they're where the beauty comes from.

There's other factors in the beauty of a piece of music, of course. There will always be magic in a superb instrument, played masterfully, in an elegant setting, even if the tune is something trite or obtuse. But if you focus on the sheet music itself, as a simple series of notes across time, any beauty that remains is mathematical. We were working with .midi files, and that is essentially all they are - a list of onsets, pitches, and durations. Three numbers for each note, and patterns within those numbers, can make music the wondrous thing that it is.

As a mild fan of classical music, I was familiar with the basic idea of motifs, and how notes relate to each other mathematically. I had the right qualifications the professor was looking for, and I might have gotten the position anyway, but there was a particular moment in the interview where the professor, laying all this out in general terms, mentioned that we would be analyzing a piece of music by Schumann.

"Which Schumann", I responded - "Clara or Robert?"

Needless to say, I got the job.

The work itself was incredibly challenging. I had worked in a dozen different programming languages at that point, but the professor had a requirement that the application I was developing for her must be using LISP. Or rather, not LISP itself but a custom language based on it.

Any programmers reading this are probably already shuddering. Among the hundreds of programming languages out there, LISP is one of a very rare breed of "Functional" languages. In LISP especially, the whole logic and structure of a program is radically different than almost any other code you're likely to see. It's hard to describe the difference, although perhaps the 2016 film Arrival captures the essence, when a linguist's attempts to communicate with an alient require them to completely change their thought processes and way of viewing reality.

Of course, the custom language element made things even harder. It meant there was a lot more to learn, and far fewer resources. It took a frankly embarrasing amount of time to get up to speed, but bit by bit we made progress. I wasn't working with the motivic analysis directly, but rather the interpretation. I would take a large text document and a midi file, and let you play back the piece of music with the desired motifs accented, so you could hear the patterns of notes involved. The coup de grace was a colour-coded overlay of the sheet music, breaking down each key motif and where it appeared throughout the piece. At the end, the professor brought in one of the developers of the custom LISP language, who was floored. It had taken me two years and a lot of false starts, but I stretched the boundaries of the system so far that the language's creator was surprised the final product was even possible.

I've never done anything like that since, and probably never will. The time and dedication involved is not something I would ever want to repeat. I haven't followed the field since then, and I'm sure my particular project is barely a footnote. Still... I'm tremendously grateful I had the opportunity, both for what I learned and what I proved to myself that I was capable of.

back to the main page