Natescape
Got birds? Click Here!

Fun with Artificial Intelligence

Some of my favorite things in life are music, skiing / snowboarding / monoskiing / etc, computers, radio controlled helicopters, and wondering what the hell is going on inside our heads that sets us apart from things like cats, dogs, and bricks.

So it's only natural that I write a piece of software that learns a piece of music and works kinda like the brain works. I'm not sure how to incorporate flying machines and / or snow-covered mountains, but I'm working on it.


Whilst studying cognitive science at The Evergreen State College (a fine school, I might add), I learned a lot about neural networks, systems that work the way brains work. Or they work in pretty much the same way that a lot of academic people think their brains work.

Not long after that, I stumbled on an issue of the Computer Music Journal that included an article that included an idea that included music and neural networks. I was facinated. It inspired me to dust off and fix up some neural net code I had written for a project in college. Surprisingly enough, I wound up with a neural net that "learned" a couple bars of Rimsky-Korsakov's Flight of the Bumblebee.

I thought that was pretty cool.

Quite recently (well, as of this writing, February 8, 1998), I again dusted off that project, polished it up a bit, fixed a bug, and wound up with a neural net that "learned" four bars of Rimsky-Korsakov's Flight of the Bumblebee.

So I'm a geek. What of it?

At any rate, when the program learned all 32 notes of a four-bar section of Flight of the Bumblebee, I thought it might be fun to put it on the web. So here it is. And I'm honored that you've read this far!


An introduction to the theories behind neural networks is beyond the scope of this page (read: would take a long time and I have other things to do). The good news is that other people have already taken it upon themselves to say a few things about neural networks. The FAQ for comp.ai.neural-nets is probably the best place to start (and if that link takes you to a busy server, try this one).

Interestingly, it's not just computer weenies who find this stuff interesting - check out Psych 1251 at Harvard, and this paper by a psych student in Australia.


How might one download this thing? Click on the links to download the files:


What should one do after downloading?

Save all of the files to one directory on your hard drive. Run "nnet.exe" and press the "load" button. Choose "yes" on the confirmation dialog box. Press "run away" to watch the network in action. Whee. Press "initialize" to create a tabula rasa network. Press "train" and watch as the network learns the notes. Leave it running overnight for best results.

So far it looks like the network needs at least 17 nodes in the middle layer in order to learn all 32 notes in the phrase.


What do the buttons do?