Acompanhamento musical em tempo real Geber Ramalho Jam Session Porque modelar este tipo de atividade? A dificuldade intrínseca do problema • faz a pesquisa em IA avançar... • e pode ser útil em problemas semelhantes (ex. monitorar uma UTI) É relevante no mercado de software musical • companheiro de ensaio • companheiro de palco • assistente de arranjo E em outros... • jogos de computadores Geber Ramalho 3 Sistemas de acompanhamento e improvisação Sistema Intrumentos Estilo Band in a box B, D, P 20 estilos NeurSwing B, D, P standard Cybernetic Composer B, D, P ImPact B Blues, standard, rock, rag time, standard Hodgson´s Sax standard Hidaka´s B, D standard Giomi´s Sax standard Johnson-Laird’s B standard Pachet B, D standard Improvisation builder B, P, B standard Levitt’s B, P blues & standard Geber Ramalho 4 Roteiro da apresentação O que é um agente de acompanhamento? • Definição da tarefa • Dificuldades de implementação Acompanhamento por reutilização de fragmentos musicais • Conceitos básicos e funcionamento • Pontos críticos da concepção Sistema ImPact Geber Ramalho 5 A tarefa de um agente Jazzman raciocínio Agente Conhecimento: Objetivos: - teoria musical, frases melódicas, ... - ficar feliz - tocar bem - habilidade instrumental ... percepção Acordes: Solo: Piano: Bateria: Publico: Baixo: ... ... ... ... ... ... - escolher e tocar notas execução A7(b9 | Cm7 | F7 b Ações: | Fm7 | Bb7 | Ebmaj7 . . . Exemplo de uma Grade de Acordes Stella by Starlight E min7(b5) A7 C min 7 F7 F min 7 Bb 7 Eb maj7 Ab 7 Bb maj7 Emin7(b5) A7 F maj7 G min7 C7 Amin7(b5) G7 Eb min7 G7 Eb min7 Ab 7 D min7 G min7 C7 D7 C min7 C min7 Bb maj7 Bb maj7 E min7(b5) A7 D min7(b5) G7 C min7(b5) F7 Bb maj7 Bb maj7 Geber Ramalho 7 É possível modelar este tipo de atividade? Problema “mal colocado” • muitas soluções, objetivos dinâmicos e mal definidos A7(b9) | Cm7 | F7 | Fm7 | Bb7 . . . Criação coletiva e em tempo real • Reações adequadas, rápidas e coordenadas Ambiente complexo • dinâmico, não-determinista, contínuo, e não-episódico Geber Ramalho 8 Conhecimento musical Sua aquisição é o problema central! • grande “gap” entre a grade de acordes e a música tocada • falta de introspecção sobre como raciocinam • falta de justificativa em termos de nota por nota Geber Ramalho 9 Fragmentos melódicos e rítmicos (1/2) Eles têm um papel fundamental no jazz • aprendizado por imitação • reutilização de frases (“clichês”) Dm7 A7 Miles Davis: Geber Ramalho 10 Fragmentos melódicos e rítmicos (2/2) Eles permitem minimizar o esforço de aquisição de conhecimento • Estão disponíveis • Exemplificam o conhecimento que é difícil de ser formalizado Cm7(b5) F7 tons vizinhos, dissonante, pouco denso, ascendente, etc. Em7(b5) A7 arpejado, consonante, relativamente denso, em V, etc. Geber Ramalho 11 Solução atual de maior “sucesso” Reutilização de fragmentos musicais! Idéia: • Resolver novos problemas baseando-se em problemas já resolvidos Observação • igual ao case-based reasoning, • onde novos problemas (ex. seqüência de acordes) são resolvidos adaptando-se soluções (ex. fragmentos melódicos) de problemas já resolvidos Geber Ramalho 12 Funcionamento: laço principal Para um dado instrumento, enquanto sua posição_atual < final_da_grade, faça: • Descreva o contexto atual C; • Busque na biblioteca B o fragmento P mais adequado c/ relação a C; • Adapte P a C, obtendo P’; • Adicione (cole) P’ à melodia ou linha rítmica composta até então Geber Ramalho 13 Quatro questões fundamentais Qual a natureza e o tamanho dos fragmentos? Como representá-los? Como indexá-los? Qual critérios utilizar para preferir um fragmento particular? Geber Ramalho 14 Natureza dos casos Conteúdo • com relação às dimensões: altura, duração, e amplitude Hodgson (67 sax), Ramalho (256 baixo) Band-in-a-box (100) alturas: {C3, D3, Eb3, E3, F3, D3, G3, G#3, A} spector (5) intervalos: {2M, 2m, 2m, 2m, -3m, 4, 1#, 2m} intervalos diatônicos : {2, 2, 2, 2, 3, 4, 1, 2} durações: {1, 1, 1, 1, 0.5, 0.5, 1, 1, 1} Ulrich (16) Baggi (16 piano + 22 bateria) ... Geber Ramalho 15 Comprimento dos casos Critérios • plausibilidade musical (fixo x variável) • granularidade (continuidade x reatividade) |Em7(b5) | A7(b9) | Cm7 | F7 | Fm7 ... Soluções atuais: • • • • unidade de tempo (beat) compasso acorde esquema de acorde (II-V, II-V-I, II-SubV-I, ... ) Geber Ramalho - Johnson-Laird, - Brown, Baggi - Band-in-a-box, Pachet - Ramalho, Hodgson 16 Indexação dos casos Objetivo • conjunto de índices para uma recuperação rápida e apropriada Dois tipos de índices • Descrição do contexto: acordes sub-jascentes, posição, andamento, próximos acordes , ... • Propriedades musicais do fragmento: dissonância, densidade, tessitura, contorno melódico, dinâmica, ... Janela: quão do passado deve ser considerado? • é preciso determinar o tamanho da janela de indexação: Geber Ramalho 17 Indexação dos casos: exemplo Janela de indexação Frase a ser armazenada Contexto • acordes subjascentes = “Dbmaj7 Gb7”; esquema de acorde = “II-V maior”; posição = “turnaround”; etc. Propriedades • dissonância = baixa; densidade = média; sincopado = médio, estilo = arpejo; etc. Geber Ramalho 18 Preferência Caracterização da recuperação • Query Q = (C, D) , – onde C = {c1,...,ck} contexto D = {d1,...,dj} propriedades musicais Função de recuperação • F(Q,L) -> fragmento P, onde L é a base de casos F pode ser: • aleatória • baseada em similaridade • baseada em pesos fornecidos pelo usuário Geber Ramalho 19 Adaptação Objetivos: • coerência harmônica, continuidade melódica, intenções musicais... Complicado: • transformações complexas e não ortogonais Adaptações implementadas até agora • transposição, mudança de amplitude, inserção e eliminação de notas, mudança de alturas Política de recuperação alternativa • não só pensar na similaridade mas na adaptabilidade também Geber Ramalho 20 Abordagem Impact: improvisação como resolução de problemas 1) Determinar o segmento S da grade segundo os “esquemas de acordes” (ex. II-V-I) 2) Determinar os “critérios musicais” do segmento a - Ativar novas PACTs em função dos dados perceptivos; b - Selecionar as PACTs para o segmento S; c - Montar as PACTs selecionadas. 3) Recuperar um fragmento da Memória Musical e adaptá-lo segundo a PACT produzida no passo anterior Exemplo “Stella by Starlight” segmentada 1 E min7(b5) A7 C min 7 F7 5 F min 7 Bb 7 Eb maj7 Ab 7 9 Bb maj7 Emin7(b5) A7 13 F maj7 G min7 C7 Amin7(b5) 17 G7 21 Eb min7 25 E min7(b5) 29 C min7(b5) Geber Ramalho G7 D min7 G min7 D7 C min7 C min7 Bb maj7 Bb maj7 A7 D min7(b5) G7 F7 Bb maj7 Bb maj7 Eb min7 Ab 7 C7 22 Ativação de PACTs Formato das regras • SE situação S ENTÃO ativar PACT Y Regras relacionadas com os acordes: • SE o agente está em um acorde alterado, ENTÃO ativar PACT “usar cromatismo” neste compasso Regras relacionadas com os outros músicos: • SE o pianista esta tocando acordes dissonantes, ENTÃO ativar PACT “tocar de maneira consonante privilegiando arpejos” até que o pianista mude Geber Ramalho 23 Ativação de PACTs Regras relacionadas com o próprio passado: • SE faz mais de 2 compassos que o agente sobe por tons vizinhos e si la tessitura já está alta, ENTÃO ativar PACT “fazer um drop” agora Regras relacionadas com a forma: • SE o agente está no começo de um chorus, ENTÃO ativar PACT “tocar tônica no primeiro tempo” até o começo da próxima seção Geber Ramalho 24 Cenário: simulando o ambiente A escuta é muito difícil de implementar (Hidaka et al. 95, Pennycook et al. 93, Walker 94) O solista toca cromáticamente Cenário # @ O público aplaude % § $ Todos tocam “hot” Agente (execução) Grade |Em7(b5) | A7(b9) | Cm7 | F7 | Fm7 | Bb7 Seleção de PACTs PACT 76 PACT 75 PACT 74 PACT 65 PACT 63 PACT 37 PACT 21 PACT 2 segmento atual |Em7(b5) | A7(b9) | Cm7 | F7 tempo | Fm7 | Bb7 | Ebmaj7 | Ab7 ... Montagem de PACTs Resolução de conflitos e combinação de informação estado inicial PACTs Espaço de montagem elimine combine propague elimine combine Estado final (PACT tocável) propague elimine Recuperação dos casos Caso alvo (query) proriedades do fragmento antecedente proriedades do fragmento conseqüente contexto do fragmento antecedente contexto do fragmento conseqüente Caso fonte (memória musical) Exemplo: http://www.di.ufpe.br/~musica/cmps/impact/caso.htm Resultados Sistema ImPact • • • • • Smalltalk-80 + MusES + NéOpus Tempo real sem PC Pentium e Sun Sparc 10 Mais de 230 classes (OOP) e 5000 métodos 256 casos (354 fragmentos): Ron Carter 6 bases de regras (85 regras) et 3 meta-bases de regras Foi considerado o melhor baixo de jazz pelos especialistas (1997) Geber Ramalho 29 Continuação do trabalho... Outros estilos musicais, sobretudo os brasileiros • frevo, maracatú, bossa-nova, etc. Outros instrumentos • bateria, percussão, piano, etc. • implica em sistema multiagentes Projeto D’Accord Guitar • acompanhamento de violão onde ritmo segue mesma abordagem e harmonia baseada em regras (por enquanto) Antecipação de acordes • acompanhamento “de ouvido” Batucada: um lego rítmico Geber Ramalho 30 Conclusões A reutilização de fragmentos musicais é uma técnica promissora... • aquisição de conhecimento mais simples • melhores resultados musicais • é independente do domínio ...mas é necessária a integração de mais conhecimento • indexação, preferência, adaptação, etc. ...ou seja, a inteligência está na escolha do fragmento! Geber Ramalho 31 Exemplos sonoros Exemplos sonoros (Autumn Leaves) • • • • 1 - Usando regras 2 - Usando só o CBR 3 - Usando CBR + PACTs 4 - Usando CBR + PACTs + Cenário http://www.di.ufpe.br/~glr/Thesis/examples.html Geber Ramalho 32 Fragments Reuse Three benefits that justify our choice • Minimizes the formalization problem – The fragments themselves embody a certain musical knowledge • Scalable – It is possible to use the same process to any instrument and style • Improves expressiveness – By reusing fragments directly captured from a human musician performance nuances can be taken into account Geber Ramalho 33