I have finally decided to write something here (to be honest, I had completely forgotten that we had this blog set up!). I'm going to assume that you are at least somewhat familiar with the concept of tracker music; if not, see the Wikipedia entry for an overview, and Bassoontracker for a quick hands-on experience of old-school tracker concepts inside your browser.
I am going to start with a series of posts that cover some of the motivations behind making a new tracker. I am going to cover features like time resolution, some signal processing details and the tuning system, and possibly some non-technical aspects as well. Some of the ideas were already on the table back in 2007 when I first started working on Kunquat, while others evolved during later years.
Before I get into Kunquat itself, I would like to tell a little bit about where I was at when I decided to write my own tracker. I had gained quite a bit of experience with several popular tracker programs, first on the Amiga with early Soundtracker clones followed by NoiseTracker and Protracker, and later FastTracker II and Impulse Tracker on the PC. Back in 2001, I was still using Impulse Tracker 2, and while it was a very powerful tool, its sound synthesis capabilities were still mostly based on simply manipulating pitch and volume of monophonic sound samples.
One of the last pieces I finished with Impulse Tracker was It Begins After Silence, which serves as a good demonstration of some of the techniques I used to create a rich echoey sound with nothing but manipulating pitch and volume of monophonic samples. Most of the techniques involved playing the same notes more than once: one note for every direction I wanted the sound to come from. In order to create a sound that was spread out wide, I would make very subtle changes to the pitch and/or timing of each copy of a single note. Most of these changes were barely audible in isolation, but when mixed together, they would often create a rather convincing illusion of wide space. However, creating spatial effects this way had a big maintenance cost: changing any details of my melody lines involved updating multiple copies of them in order to keep my spatial effects working as intended, which slowed down the process of writing actual music.
Another way of adding natural feel to tracker music was to deviate from the perfectly steady pulse of step sequencing. This often involved adding special commands that would delay the start of a note by a small amount. The delay commands made notation messy and often took away space that I would rather have used to specify other details of performance. Additionally, the accuracy of the delay was limited by the low time resolution of old trackers, which was typically around 50 ticks per second.
Despite its limitations, I find tracker notation fundamentally very powerful and convenient for specifying musical performance with great detail. One of the design goals of Kunquat has always been to keep the power of tracker notation without need for hacks to achieve a pleasant sound. The first problem I wanted to solve was the time resolution, something that I will cover in my next post.