Geber Ramalho
Acompanhamento musical em tempo real
Jam Session
3 Geber Ramalho
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
4 Geber Ramalho
Sistemas de acompanhamento e improvisaçãoSistema Intrumentos Estilo
Band in a box B, D, P 20 estilos
NeurSwing B, D, P standard
Cybernetic Composer B, D, P Blues, standard,rock, rag time,
ImPact B 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
5 Geber Ramalho
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
A tarefa de um agente Jazzmanraciocínioraciocínio
Conhecimento:- teoria musical, frases melódicas, ...- habilidade instrumental ...
Objetivos:- ficar feliz- tocar bem
Ações:- escolher e tocar notas
execuçãoexecuçãopercepçãopercepção
Acordes: ... A7(b9 | Cm7 | F7 | Fm7 | Bb7 | Ebmaj7 . . .
Solo: ...Piano: ...Bateria: ...Publico: ...Baixo: ...
Agente
7 Geber Ramalho
Exemplo de uma Grade de Acordes
E min7(b5) A 7 C min 7 F 7
F min 7 Bb 7 Eb maj7 Ab 7
Bb maj7 Emin7(b5) A7 D min7 G min7 C7
F maj7 G min7 C7 Amin7(b5) D 7
G 7 G7 C min7 C min7
Eb min7 Eb min7 Ab 7 Bb maj7 Bb maj7
E min7(b5) A 7 D min7(b5) G 7
C min7(b5) F 7 Bb maj7 Bb maj7
Stella by Starlight
8 Geber Ramalho
É possível modelar este tipo de atividade? Problema “mal colocado”
• muitas soluções, objetivos dinâmicos e mal definidos
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
A7(b9) | Cm7 | F7 | Fm7 | Bb7 . . .
9 Geber Ramalho
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
10 Geber Ramalho
Fragmentos melódicos e rítmicos (1/2)
Dm7 A7
Miles Davis:
Eles têm um papel fundamental no jazz• aprendizado por imitação
• reutilização de frases (“clichês”)
11 Geber Ramalho
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
Em7(b5) A7
tons vizinhos, dissonante, pouco denso, ascendente, etc.
arpejado, consonante, relativamente denso, em V, etc.
12 Geber Ramalho
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
13 Geber Ramalho
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
14 Geber Ramalho
Quatro questõe
s fundamenta
is
Qual a natureza e o tamanho dos fragmentos?
Como representá-los?
Como indexá-los?
Qual critérios utilizar para preferir um fragmento particular?
15 Geber Ramalho
alturas: {C3, D3, Eb3, E3, F3, D3, G3, G#3, A} 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}...
Hodgson (67 sax), Ramalho (256 baixo)Band-in-a-box (100)
spector (5)
Ulrich (16)Baggi (16 piano + 22 bateria)
Natureza dos casos
Conteúdo• com relação às dimensões: altura, duração, e amplitude
16 Geber Ramalho
Critérios• plausibilidade musical (fixo x variável)• granularidade (continuidade x reatividade)
Soluções atuais: • unidade de tempo (beat) - Johnson-Laird, • compasso - Brown, Baggi• acorde - Band-in-a-box, Pachet• esquema de acorde (II-V, II-V-I, II-SubV-I, ... ) - Ramalho, Hodgson
|Em7(b5) | A7(b9) | Cm7 | F7 | Fm7 ...
Comprimento dos casos
17 Geber Ramalho
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:
18 Geber Ramalho
Frase a ser armazenada
Janela de indexação
Indexação dos casos: exemplo
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.
19 Geber Ramalho
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
20 Geber Ramalho
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
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 segmentoa - 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
22 Geber Ramalho
Exemplo
“Stella by Starlight” segmentada
E min7(b5) A 7 C min 7 F 7
F min 7 Bb 7 Eb maj7 Ab 7
Bb maj7 Emin7(b5) A7 D min7 G min7 C7
F maj7 G min7 C7 Amin7(b5) D 7
G 7 G7 C min7 C min7
Eb min7 Eb min7 Ab 7 Bb maj7 Bb maj7
E min7(b5) A 7 D min7(b5) G 7
C min7(b5) F 7 Bb maj7 Bb maj7
1
5
9
13
17
21
25
29
23 Geber Ramalho
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
24 Geber Ramalho
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
|Em7(b5) | A7(b9) | Cm7 | F7 | Fm7 | Bb7
# @ % § $
O públicoaplaude
Agente (execução)
Cenário
O solista tocacromáticamente
Todos tocam “hot”
Grade
Cenário: simulando o ambiente A escuta é muito difícil de implementar (Hidaka et al. 95,
Pennycook et al. 93, Walker 94)
Seleção de PACTs
segmentoatual
PACT 76PACT 75PACT 74
PACT 21
PACT 63
PACT 2
tempo
PACT 37
PACT 65
|Em7(b5) | A7(b9) | Cm7 | F7 | Fm7 | Bb7 | Ebmaj7 | Ab7 ...
PACTsestado inicial Estado final (PACT tocável)
Espaço de montagem
combine propagueelimine elimine combine propague elimine
Montagem de PACTs
Resolução de conflitos e combinação de informação
Recuperação dos casosCaso 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.html
29 Geber Ramalho
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)
30 Geber Ramalho
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
31 Geber Ramalho
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!
32 Geber Ramalho
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
33 Geber Ramalho
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