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.
10 comments
Damn if it weren't for this pesky job that I use to pay my bills I would be at home right now trying this thing out.
can you post a bigger pic plz ? i'd really like to make it with reaktor and add some stuff .....
@Zombiestomper: Get a job where you can play with music software at work. I'm in a tourist bureau as we speak. I can do whatever the hell I want (within the limits of the law, natch) on my laptop while at work, as long as its something I can mute and tuck away when someone comes in asking for directions... Taunting aside, I'm willing to bet your job pays a helluva lot more than working in a rural tourist bureau in nova scotia, canada.
Also, I just purchased Automaton, Axon, and Tattoo because I wanted sequencer based plugs I could use at work with no midi controller... I have to say, I used to be scared of your "no demos" policy, but frankly the return policy keeps me from gumming up my plugin list with crippled demos like I do with a lot of companies (though I can't imagine I'll hate these 3 new plugs enough to return them... Even if I did wind up not "getting" axon in practical use I'd probably still opt for an exchange rather than a cash refund, as I know from my previous purchases your shit is solid)
I need to get Silent Way working so i can use Axon to sequence my modular!
@MitchK1989: I can't do anything music related at work aside from tinkering with music apps on my ipod touch. Technically no one is even supposed to use the internet, although everyone does. Fortunately, the only person who can see my monitor is the other manager I work with, who incredibly small world enough is actually friends with Chris Randall. What are the chances?
@CR Love your posts like these. Makes me dream of a better job doing things I find interesting.
Holy shit, this went over my head.
Gonna read again.
- c
The objections to ANN are well taken, but I'd say that no one has come up with a way to make them listenable -- yet. I've done some work with them in a different context (automatically segmenting MRI Brain images into anatomical structures), so I have some idea what they entail.
Beyond the fact that no one's done anything listenable (yet), I think there's a philosophical barrier: when you train a net, you have to have some idea what outputs are desired; in technical terms, you have an error function and you use feedback to minimize the error.
In terms of music, what makes music listenable (IMHO) is the brain in the loop; pretty much ALL music where a machine process is in the driver's seat sounds tedious and heartless. You listen to music because it's a communication from another human, not because of a gnarly algorithm. I can always tell when Autechre are just letting the machines free-run and when they're actually in the loop, because the former sucks and the latter is cool.
But the idea of the Axon sequencer I predict will end up in dozens of Reaktor and Max & Pd patches now.
Yeah, you hit the nail on the head. Most of the papers I read largely dealt with letting the ANN set initial conditions, _then_ training it in to creating things listenable (no, this doesn't sound good to me; yes, this sounds okay, etc). Obviously, this is a fairly poor tactic from a marketing standpoint.
I think the major problem stems from the fact that the people that have done this sort of research (up until I stumbled upon it) weren't really concerned with putting out records and standing on stage entertaining an audience. Since these are defining paradigms that heavily inform how Adam and I make products, our results are going to differ quite a bit.
And we don't have any academic points to prove, of course. I just want the shit to sound cool and usable.
-CR
Comments are closed on this post.