O sistema de maior sucesso provavelmente combinará várias técnicas. Duvido que você encontre uma técnica que funcione bem para melodia, harmonia, ritmo e geração de sequência de baixo em todos os gêneros musicais.
As cadeias de Markov , por exemplo, são adequadas para geração de sequência melódica e harmônica. Este método requer a análise das canções existentes para construir as probabilidades de transição em cadeia. A verdadeira beleza das cadeias de Markov é que os estados podem ser o que você quiser.
- Para a geração de melodia, tente números de nota relativos à tonalidade (por exemplo, se a tonalidade for dó menor, dó seria 0, ré seria 1, ré # seria 2 e assim por diante)
- Para a geração de harmonia, tente uma combinação de números de notas relativas à tonalidade para a tônica do acorde, o tipo de acorde (maior, menor, diminuto, aumentado, etc.) e a inversão do acorde (tônica, primeira ou segunda)
As redes neurais são bem adequadas para a previsão de séries temporais (previsão), o que significa que são igualmente adequadas para 'prever' uma sequência musical quando treinadas contra melodias / harmonias populares existentes. O resultado final será semelhante ao da abordagem da cadeia de Markov. Não consigo pensar em nenhum benefício sobre a abordagem da cadeia de Markov além de reduzir o consumo de memória.
Além do tom, você precisará de duração para determinar o ritmo das notas ou acordes gerados. Você pode escolher incorporar essas informações aos estados da cadeia de Markov ou às saídas da rede neural, ou pode gerá-las separadamente e combinar as sequências independentes de pitch e duração.
Algorítmos genéticos podem ser usados para desenvolver seções de ritmo. Um modelo simples poderia usar um cromossomo binário no qual os primeiros 32 bits representam o padrão de um bumbo, os segundos 32 bits uma caixa, os terceiros 32 bits um chimbal fechado e assim por diante. A desvantagem neste caso é que eles exigem feedback humano contínuo para avaliar a adequação dos padrões recém-desenvolvidos.
Um sistema especialista pode ser usado para verificar as sequências geradas pelas outras técnicas. A base de conhecimento para tal sistema de validação provavelmente pode ser obtida de qualquer bom livro ou site de teoria musical. Experimente musictheory.net de Ricci Adams .