Thoughts on AutoDrumatic and Alternative Music Production Software
An important part of this sabbatical is not just studying books, blog posts, other's code, C++ disassembly, etc, but also to put newly learned skills to practical use. This was partially the reason I started working on AutoDrumatic (mentioned and demonstrated in previous blog posts here and here).
However, this wasn't the only reason I started working on AutoDrumatic. I'm a big fan of audio software, I've created commercial audio software in the past and for some time now have wanted to contribute something new to the audio software domain.
DAWs have been around for decades now. There are numerous offerings on the market: Ableton Live, GarageBand, Reaper, Pro Tools, Cakewalk Sonar, Logic, just to name a few. At the heart of most every DAW is a user interface that consists of rows of audio that span across the screen usually from left to right.
Generally speaking, each row (usually known as a "track") consists of an instrument or sound. For example, one track might be guitar, another track might be drums, another might be vocals, etc. You can almost think of it as each member of a band gets their own track. Much like a band, the tracks (musicians) combined together allows for a song or composition.
Here's a partial screenshot of Reaper showing this multiple track display:
The key feature is that the DAW allows you to manipulate and finetune each track (instrument) in isolation. Once you're happy with the sound of each track, all tracks are mixed together and can be exported to an audio file and easily made distributable.
This layout of having tracks listed on the y-axis (rows) and time on the x-axis makes a lot of sense. It makes so much sense that it's how much of the music created with audio software has been done for decades now. In recent years I've had an interest in trying to come up with some other way of composing than this; creating an audio software product that would hopefully add something new.
My initial idea behind AutoDrumatic was to add a level of happenstance and randomness to traditional music making software in hopes of possibly resulting in music compositions that might not have come about otherwise.
The idea was the user could select from various drum hits (specific bass drums, snares, cymbals, etc), or incorporate their own sounds, and a beat would be generated in AutoDrumatic's grid which the user could then modify if they wish. After mastering that, I hoped to then bring other instruments into the mix.
As I've continued working on it, I've been increasingly lacking enthusiasm for the fact that, at the heart of AutoDrumatic, is still the same time vs track relationship we've seen in pretty much every DAW for decades now:
As my thoughts evolve on alternative forms of music making software, I find myself wanting to get away from this time vs track relationship. I'm uncertain on details at this point. However, one of the main ideas I find myself frequently contemplating is somehow working with a set of user defined tones and sound textures to generate a composition.
What if we could input these sound snippets we love into a piece of audio software that used them to generate "music"? I envision this software would manipulate these sounds in rhythmic and melodic ways; mixing them into a larger audio snippet that could then in itself be used in a musical composition or possibly even stand alone as a composition itself.
This is an abstract idea. I'm not sure if these thoughts will result in anything, but I'm going to think on it a bit more. I'm going to try and focus on this at least partially as "practical software development of real applications" mentioned in the beginning of this blog post. I think there's a good chance it will lead to some attempts at software which makes use of some digital signal processing techniques.
I'll of course post an update if/when anything comes to fruition.