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?