Axon: The Process (And How It Isn't An ANN)...
From the original Analog Industries archive. Some links and images from that era no longer resolve.
I have to take my wife to the dentist in a bit, so it’s going to be a few hours before the first Axon programming video is up. In lieu of that, I’ll take this interlude to talk about how Axon came about, for those of you that are interested, and some of the theory behind it. It all started when I bought the excellent O’Reilly book AI for Game Developers. After the success of Automaton (which turned out to be one of our more successful plug-ins) we spent some thought cycles pondering other ways to implement some sort of rudimentary AI in a music context. The book is mostly about simple path-finding, following, and “find your way home” algorithms, but there was one chapter which (greatly) simplified the concept of artificial neural networks (ANNs) that I found quite intriguing.
Now, the problem with an ANN in a music context–and it has been tried; the pages of Computer Music Journal are rife with nasty-sounding examples–is twofold:
1. The context is generally not appropriate to the learning process that ANNs require.
2. The results, whether you’re applying them to sequencing or sound design, are uniformly unlistenable.
I broached this subject with Adam as a possible path of exploration, picking an incredibly bad time to do this (we were in the middle of Tattoo’s lengthy and frustrating troubleshooting process) and he was… uh… not excited. He pointed out Nos. 1 and 2 in short order, and that was that.
HOWEVER!!!
When I have an idea in my teeth, it won’t be taken from me without a lot of slobber and jumping about, in a most dog-like fashion. The main hurdle to overcome to make an ANN full of techno is to make it so you don’t have to teach the fucking thing. So I went to the basic idea of what an ANN node was; essentially, when you strip away all the academic bullshit, it’s a few nested if/then/else statements. IF these conditions are met THEN fire a pulse, or ELSE figure out whether we need to change our IF to compensate for the outside world being a strange and wonderful place.
Now, Adam has a fascination with all things hexagonical, and in order to sell him on the idea, I knew hexes would have to be involved. I then opened up Pd and went to work, trying to come up with a hex-based system of counters that would allow user interaction but not need to be taught. I came across some interesting work done by some guy (which I can’t find right now) that augmented my ideas in this regard, and tied the output to a whole mess of simple FM synths, and the result is as you see here:

This is, for all intents and purposes, Axon, except in Pd instead of a VST/AU, and without a shiny GUI. There are only six voices, as I didn’t give the center timing node a voice, but the general idea is fundamentally the same. I actually prototyped the UI in TouchOSC to run it on my iPad, and the TouchOSC UI is, in layout anyhow, what you see in the Axon UI now.
Of course, this bears no relationship to an ANN any more. It is really just a set of interconnected counters. I called it the Retarded Neural Network, because it was a collection of simple neurons, which did operate in a network, and it was retarded, inasmuch as it couldn’t be taught. Obviously, it would be in fairly poor taste to use this as a bullet point, but that’s what it is in my mind.
An actual operating instrument that produced unique and interesting results and that was (sort of) easy to program, and furthermore (FURTHERMORE!) had a hexagon in it, well, it was just a matter of time before Adam caved. As soon as D3 was done we decided to make it, and after a spirited argument on the semantics of the words “artificial neural network,” whereupon I agreed that it wasn’t one, we were off to the races.
Now, to be clear: the goal of these sorts of things is not to replace the creative process, but rather to augment it by producing results that you fully control, while leading to things you wouldn’t have thought of on your own. In this respect Automaton and Axon are two peas in the same pod. While Automaton has a fairly robust randomization feature set, it is, at its root, fully controllable and repeatable, just like Axon.
Comments
Comments are closed on this post.