0
$\begingroup$

I am trying to create a score writing application and will like to implement an algorithm that predicts the next chord (item) a user is likely to write from the previous sequence of chords (items) that he/she has already written.

Some background: music chords are just a limited range of items (it can be Cmaj7, Dm etc.). Technically, any chord can be played after any other chord, but some chord sequences are more common than others.

I will like to first implement this naively, meaning that the next chord is predicted based on everything the user has already typed, based on some training data made of common chord sequences. For example, the user may type "Dm", "G7", and the predictor will give a ranked output of chords (eg. 1:C; 2:Am, 3:Dm). In future I will also like to explore assigning weights in my algorithm.

What are the key terms I should be searching for and what are some good papers/projects to read in order to realise this?

$\endgroup$
  • $\begingroup$ You should use RNN network. $\endgroup$ – SmallChess Feb 28 '17 at 8:03
  • $\begingroup$ @StudentT I looked it up, this looks like exactly what I need. Thank you! $\endgroup$ – Poh Zi How Feb 28 '17 at 8:43
  • $\begingroup$ I'm not an RNN expert. If you have any specific question about how to use RNN for your problem, you can edit your question. Someone else will come and help you. $\endgroup$ – SmallChess Feb 28 '17 at 8:44
0
$\begingroup$

I thing RNN network (specifically LSTMS and GRU) would be your best choice here if you have sufficient data to train them.Have worked with music in my masters though not this particular problem . I think something like converting these sequences to text and then trying something like a word2vec+LSTM/GRU architecture could be a good option. It would be nice to see if the model discovers chord substitutions or relations .You could experiment with all this in keras (its python based, built on top of tensorflow/theano )in a few lines of code.

Just to put it out... there's also something called the Neural Stack from deep mind , this is the best explanation ive found so far. Haven't experimented with these though.

Edit

looking around i found this explanation on quora that would help you in case you are not sure how to implement my answer.

$\endgroup$
  • $\begingroup$ much appreciated !! comment if you come across an prob. $\endgroup$ – Vaibhav Arora Feb 28 '17 at 9:36
1
$\begingroup$

Recurrent neural networks sound like the way to go for you. You can find examples of successful RNN training on music to here and here. A soft intro to RNNs can be found here. However as stated by a previous answer, using keras or a similar framework is probably easier for training.

Google Deepmind however published a paper on WaveNet a new kind of network which produces state-of-the-art sound synthesis. You can find source with sound samples and music generation here.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.