We are working on a project for creating music based on crowd sourcing. People vote for every note until the vote is closed, and then move on to the next vote until the canvas for the music is filled. A similar project is crowdsound, if you want to get an idea of what it looks like.
Now the fun part is, based on all the votes we get from various people, we would like to be able to build a Neural Network that can build an entire song on its own. The idea is for it to take in account every preceding vote and predict the one that will follow. That way, when trained, we could give it one note and let it predict the rest of the votes on its own and thus create a song on its own.
So I've read a few things here and there about neural networks, but there are two things I don't understand:
- How to build one that takes into account a dynamic number of inputs (all preceding votes).
- How exactly should I decide the number of hidden layers (I still only vaguely understand what those hidden layers represent) I need for it to work well.
We are using Java for the project and we were planning on using Neuroph for the neural network.