Professional Documents
Culture Documents
Ritmos de Percusso
Pablo Sampaio, Patrcia Tedesco, Geber Ramalho
Centro de Informtica (CIn) Universidade Federal de Pernambuco (UFPE)
Caixa Postal 7851 50.732-970 Recife PE Brasil
{pas,pcart,glr}@cin.ufpe.br
1. Introduo
Na interseco entre as reas de Inteligncia Artificial e Computao Musical, vrios
sistemas foram criados aplicando o conceito de agentes inteligentes (Pachet, 2000)
(Pachet, 2002) (Miranda, 2002) (Murray-Rust, 2003) (Wulfhorst, et.al 2003). Nesses
sistemas, diversos aspectos da msica so abordados, porm a nfase maior costuma ser
na gerao de harmonia e/ou melodia. Poucos sistemas focam especificamente a parte
rtmica, que , entretanto, considerada fundamental para a sensao que a msica
causa em ouvintes humanos (Honning, 2002), alm de ter grande importncia cultural
em algumas sociedades como algumas tribos da frica (Ladzekpo, n.d).
Dentre os poucos sistemas inteligentes que abordam os instrumentos rtmicos,
aparentemente a maior parte voltada especificamente para bateria (Gannon, 2005)
(Kragtwijk, et.al 2001) (Pearce, 2000), sendo ainda menor o nmero daqueles voltados
para instrumentos de percusso em geral. Os poucos sistemas voltados para percusso
no tratam de maneira homognea da interao entre agentes inteligentes diversos e,
quando o fizeram, consideraram um modelo de interao distante do que acontece com
msicos reais. Alm disso, no h sistemas inteligentes para a criao de arranjos
puramente rtmicos, com possveis misturas de estilos musicais.
2. Percussionistas Virtuais
Nesta seo analisaremos dois sistemas multiagentes que tratam da criao de
performances rtmicas: o Rhythm Band Editor e o VirtuaLatin.
2.1 Rhythm Band Editor (Pachet, 2000)
No Rhythm Band Editor, cada agente comea com um padro rtmico inicial
(possivelmente vazio) e uma base de regras de transformao. Uma partitura global
mantida de modo a permitir que cada agente tenha acesso ao que os demais agentes
esto tocando. Um mdulo de percepo presente nos agentes recebe como entrada a
partitura global completa e gera um conjunto de informaes de alto nvel, tais como:
estrutura de batidas e batidas acentuadas. Um outro mdulo, chamado de mdulo de
produo, utiliza a base de regras fornecida na criao do agente para alterar o padro
corrente do agente. As regras tm suas pr-condies especificadas a partir das
informaes de alto-nvel geradas pelo mdulo de percepo e, quando disparadas (prcondies satisfeitas), executam uma ao de edio no ritmo tocado pelo agente. Um
exemplo de regra : se existe uma batida forte na qual o agente no toca, ento
adicione uma nota nessa batida.
Os agentes do Rhythm Band Editor permanecem indefinidamente em ciclo,
alternando, a execuo de seus respectivos padres com a aplicao das regras, de modo
a evoluir os padres rtmicos. Eventualmente, o sistema pode convergir para uma
situao em que nenhuma regra aplicvel. Nesse caso, os agentes continuam a tocar
seus padres sem novas alteraes.
2.2. VirtualLatin (Murray-Rust, 2003)
Outro sistema voltado para percusso o VirtuaLatin, onde um agente
inteligente, o timbaleiro, gera arranjos de timbales para salsa. O agente timbaleiro est
3. O CInBalada
Neste contexto, o CInBalada oferece um ambiente inovador que oferece a possibilidade
de experimentar as mais variadas misturas rtmicas, mesclando livremente estilos
musicais usando as mais diversas formaes de instrumentos de percusso. Desse modo,
o sistema funciona como um laboratrio rtmico, onde compositores e arranjadores
podem criar e testar novos arranjos percussivos facilmente, sem ter que arcar com os
custos de reunir msicos humanos para tocar em conjunto.
Inspirado em manifestaes rtmicas populares (como o samba e o maracatu), o
CInBalada dispe de agentes inteligentes que simulam msicos percussionistas, que
comunicam-se entre si para gerar uma performance rtmica polifnica. O uso de
mltiplos agentes inteligentes uma analogia natural para um grupo musical real
tocando junto e permite a adaptao do sistema a cada nova situao imposta pelo
base de cerca de duzentos padres rtmicos MIDI para doze instrumentos de percusso.
Cada um desses padres rtmicos est associado a um conjunto de informaes
de mais alto nvel, que so utilizadas pelos agentes do CInBalada em suas negociaes.
As principais informaes de alto nvel armazenadas para cada padro so:
Tipo do padro rtmico. Indica o papel que ele tem em uma performance.
Atualmente, inspirados no sistema VirtuaLatin, consideramos que os
padres podem ser de trs tipos: basic (ritmo bsico, deve ser tocado a
maior parte do tempo), fill (virada) ou roll (rufo).
4. Agente Outputter
O agente outputter responsvel por receber e mesclar todas os trechos musicais
(padres rtmicos) enviados pelos agentes msicos e envi-los a alguma sada (placa de
som ou arquivo). Existe apenas um agente outputter por instncia da aplicao. Ele
criado automaticamente quando a aplicao iniciada.
Quando um agente percussionista criado, ele se cadastra junto ao agente
outputter como produtor de msica. A partir disso, o outputter passa a mandar para o
agente msico, periodicamente, mensagens requisitando frases musicais novas. As
frases podem ser formadas por um nmero qualquer de compassos completos e so
transmitidas em formato XML. Um exemplo de uma frase musical no modelo XML
adotado pode ser visto na figura 3.
<?xml version="1.0" encoding="utf-8"?>
<Phrase resolution="400">
<Note pitch="36" dynamic="80" startTick="12" endTick="18"/>
<Note pitch="43" dynamic="80" startTick="30" endTick="45"/>
</Phrase>
5. Agentes Percussionistas
Atualmente, o CInBalada composto de um nico tipo de agente percussionista,
chamado search-agent. Este nome vem do mecanismo de negociao empregado para
escolha dos padres que sero tocados pelos agentes, que funciona como uma busca
intensiva pela melhor combinao de padres. Para julgar as combinaes de padres, o
sistema usa uma funo de avaliao rtmica (descrita em detalhes na seo 5.1).
Quanto organizao do sistema, os agentes se renem em uma estrutura
horizontal chamada Banda. Apesar de no haver qualquer relao hierrquica entre os
agentes, os agentes se comunicam por ordem de entrada na Banda, para facilitar as
interaes. Ou seja, durante uma rodada de negociao, o agente que primeiro ingressou
na Banda toma uma deciso e repassa para o segundo que repassa para o terceiro, etc.
6. Implementao
O CInBalada est sendo desenvolvido em C++ e possui trs mdulos centrais: uma
biblioteca musical, a plataforma multiagentes e os agentes dos sistema. No decorrer
dessa seo apresentamos sucintamente cada um dos mdulos implementados, bem
como os resultados obtidos com o sistema.
6.1. Biblioteca Musical
Criada para realizar as manipulaes sonoras necessrias para a implementao dos
agentes do CInBalada. O principal foco da biblioteca a tecnologia MIDI. A biblioteca
permite manipular arquivos MIDI e enviar eventos MIDI para a sada sonora. Alm
disso, h um conjunto de classes que mantm as informaes de alto nvel sobre os
padres rtmicos (mostradas na seo 3.1), armazenando-as no formato XML. Essas
funcionalidades esto concentradas na classe RhythmPattern que uma
representao de alto-nvel de um padro rtmico de um instrumento de percusso.
6.4. Resultados
Os testes preliminares feitos com a presente verso do sistema mostraram
resultados promissores. O sistema permite obter, facilmente, diversos arranjos de
percusso com coerncia musical entre os agentes aceitvel, desde que sejam escolhidos
poucos instrumentos (por volta de quatro). Com muitos instrumentos, o protocolo de
negociao tende a rejeitar novos agentes e, quando os aceita, gera uma sada musical
confusa, porque no h qualquer organizao dos instrumentos dentro da performance.
8. Referncias
Bellifemine, F. Rimassa, G. Poggi, A. (1999). JADE - A FIPA-compliant Agent
Framework. Em: Proceedings of the 4th International Conference and Exhibition on
The Practical Application of Intelligent Agents and Multi-Agents. Londres.
Ganascia, J.G. Ramalho, G. Rolland, P.Y. (1999). An Artificially Intelligent Jazz
Performer. Journal of New Music Research, 28 (2), pp. 105-129. Amsterd: Swets &
Zeitlinger.
FIPA: Foundation for Intelligent Physical Agents. (2003). Informaes no site:
http://www.fipa.org/ (acesso em 16 de junho de 2005).
Gannon, Peter. (2005). Band-in-a-Box [Programa de Computador]. Hamilton, Ontrio:
PG Music Inc.
Honning, H. (2002). Structure and Interpretation of Rhythm and Timing. Tijdschrift
voor Muziektheorie [Jornal de Teoria Musical], 7 (3), pp. 227-232.
Kragtwijk, M. Nijholt, A. Zwiers, J. (2001). Implementation of a 3D Virtual Drummer.
Em: Computer Animation and Simulation 2001, Editores: Magnenat-Thalmann, N.,
Thalmann, D. Viena: Springer Verlag Wien.
Ladzekpo,
C.
K.
(n.d.).
Rhythmic
Principles.
Disponvel
em:
http://cnmat.cnmat.berkeley.edu/%7Eladzekpo/PrinciplesFr.html (acesso 13 de junho
de 2005).
Lerdahl, F. Jackendoff, R. (1983). A Generative Theory of Tonal Music. MIT Press.
Messick, Paul (1998). Maximum MIDI: Music Applications in C++. (S.l.): Manning
Publications.
Miranda, E. R. (2002). Emergent sound repertoires in virtual societies. Computer Music
Journa, 26(2), pp. 77-90.