|
Of course one needs the knowledge of the first chorus, and that is possible to do with a sufficiently large degree of Markov chain, or you could add all of the notes before the chorus as features during the transitions. If you use CRFs you can condition on the whole piece and learn the model like that. Yes, you'll have to use a lot of data but models can be as global as you need them to be. If you want to use a 'verse chorus verse slightly-different-chorus' way of composing, yes, you can use a first level of a chain to generate the probable musical sequence blocks, and generate each block separately, using at the same time features generated in each part (verse, chorus, slightly-different-chorus etc.) to keep the same feeling. If you train your model in a way described above, you can then pick a tune in your head, put it in and ask the model to generate the most probable sequence for the whole song. Or, if you're using CRFs with Gibbs sampling, you start from the complete piece and iterate until the probability it fits is large enough. Same could be done, somewhat easily, with Hidden Markov Models (I just realised that Markov models might not be the thing I was referring to in the post above, I was talking about statistical variant of Markov chain). Convolutional neural networks could do the same thing, probably even better than CRFs and HMMs. Music isn't more complex than language and people have been using these sequence modelling methods to do extraordinary things in natural language processing. |
Producing a program that can output quality music on demand would be largely comparable to producing a program that can output quality novels on demand. I'd be entirely unsurprised if it turned out to be an AI-complete problem; some evidence for this being that most humans with training are found to be incapable of composing quality music (where almost anyone can perform most of the tasks that have been solved by NLP researchers).