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.
Log in or sign up for Devpost to join the conversation.