Inspiration

The AI-909 is inspired by the idea of training a computer to write music by learning from examples from a human operator.

What it does

The AI-909 combines the basic functionality of a drum machine with machine intelligence to learn and produce its own drum sequences. After inputting example sequences, the application learns to generate its own novel drum patterns or create a variation of an input sequence.

How I built it

I used the HTM.java port of NuPIC's core algorithms to learn sequences and produce new ones. The frontend is handled in the browser in JavaScript and the two parts communicate over a REST API handled by Spring.

Challenges I ran into

The hardest parts were coming up with a logical encoding for patterns and tuning the HTM parameters to produce sensible output.

Accomplishments that I'm proud of

As far as I know, I'm the first person to train the HTM to write breakbeats, so there's that.

What I learned

This was the first project I ever built with the HTM, so...a lot.

What's next for AI-909

Adding additional drum channels, handling of unusual time signatures, velocities, effects, a better encoding (by basing the bits of the SDR on the frequency ranges of each individual drum). Adding melodies and writing entire songs would be long-term goals.

+ 15 more
Share this project:

Updates