• Nenhum resultado encontrado

A intera¸c˜ao entre agentes musicais dentro do mundo virtual pode ser feita de diversas formas, entre elas a comunica¸c˜ao e outras formas de intera¸c˜ao f´ısica ou ecol´ogica. A principal forma de co-munica¸c˜ao entre agentes musicais ´e atrav´es da troca de informa¸c˜ao sonora, o que n˜ao exclui outras formas de comunica¸c˜ao, como por exemplo usando mensagens, gestos ou imagens. Exemplos de in-tera¸c˜oes f´ısicas e ecol´ogicas entre agentes s˜ao colis˜oes e reprodu¸c˜ao, entre outros. S˜ao consideradas tamb´em as intera¸c˜oes entre os agentes e o ambiente, como no caso do consumo de algum material (e.g. comida) ou no caso do agente estar sujeito a alguma lei natural (e.g. gravidade). A figura2.4 mostra as intera¸c˜oes entre agentes no ambiente.

Interações Físicas Interações Biológicas

Comunicação Visual Comunicação Física Comunicação Sonora Comunicação

Figura 2.4: Taxonomia de Intera¸oes no Ambiente

2.3.1 Comunica¸c˜ao entre Agentes

A comunica¸c˜ao entre agentes pode ser feita atrav´es da emiss˜ao de som no ambiente, visualmente ou diretamente atrav´es de um esquema de troca de mensagens.

2.3.1.1 Comunica¸c˜ao Sonora

Os agentes musicais tˆem como forma prim´aria de comunica¸c˜ao o som. Assim, a intera¸c˜ao mu-sical ´e feita atrav´es dos sons que cada agente gera, levando em considera¸c˜ao os sons presentes no ambiente e seu racioc´ınio musical. A comunica¸c˜ao sonora entre agentes respeita as leis de propa-ga¸c˜ao do som no ambiente virtual, baseadas na representa¸c˜ao f´ısica do som no espa¸co.

2.3.1.2 Comunica¸c˜ao por Mensagens

A comunica¸c˜ao atrav´es de mensagens ´e utilizada para que os agentes possam trocar outras informa¸c˜oes que, embora n˜ao codificadas do mesmo modo que o som (por exemplo, em ´audio ou MIDI), possam ser ´uteis do ponto de vista musical. Por exemplo, um agente pode enviar uma men-sagem ao outro solicitando uma mudan¸ca de tonalidade, informando uma inten¸c˜ao de performance futura ou compartilhando seu algoritmo de composi¸c˜ao. A codifica¸c˜ao utilizada na mensagem ´e

2.3 INTERA ¸C ˜OES 23 definida pela implementa¸c˜ao e pode ser negociada entre os agentes.

V´arias t´ecnicas podem ser utilizadas para a troca de mensagens, como o uso de Blackboard [WNV03], o envio de pacotes de mensagens atrav´es de um agente centralizador, ou diretamente entre os agentes.

2.3.1.3 Comunica¸c˜ao Visual

A comunica¸c˜ao visual e, consequentemente, a gestual, ´e muito importante em grupos musicais, seja entre um maestro regendo uma orquestra, ou em um quarteto de cordas. Assim, ´e interessante que os agentes musicais possam trocar informa¸c˜oes tamb´em atrav´es dos gestos.

Em um sistema completamente composto de agentes computacionais, a vis˜ao ou o gesto podem ser reduzidos a uma mensagem, mas quando o sistema interage com um m´usico humano, essa co-munica¸c˜ao pode ser feita gestualmente, pelas duas partes. Por exemplo, um sistema mais avan¸cado pode ser capaz de analisar o gesto de um agente humano atrav´es da captura e processamento de imagens, e o gesto do agente musical pode ser renderizado graficamente em uma tela, alterando assim a interpreta¸c˜ao da m´usica [SGVT04].

2.3.2 Intera¸c˜oes F´ısicas

As intera¸c˜oes f´ısicas entre agentes ou entre agente e ambiente dizem respeito a como as leis da f´ısica definidas para o ambiente interferem nos agentes. Por exemplo, os agentes musicais que se movimentam no ambiente podem colidir em obst´aculos presentes nesse ambiente, como paredes ou outros agentes, sendo for¸cados a respeitar as leis f´ısicas definidas para o ambiente.

2.3.3 Intera¸c˜oes Ecol´ogicas

As intera¸c˜oes ecol´ogicas entre agentes ou entre agentes e o ambiente, como a reprodu¸c˜ao e a alimenta¸c˜ao, podem ser utilizadas para simular um ecossistema artificial. Estes aspectos podem ser implementados tendo em vista um resultado musical, atrav´es do aumento ou diminui¸c˜ao do n´umero de agentes produzindo sons, ou atrav´es da combina¸c˜ao e modifica¸c˜ao de materiais ou m´ e-todos musicais (representado por um material gen´etico) de dois ou mais agentes.

No trabalho de Miranda [Mir02], tais formas de intera¸c˜ao s˜ao utilizadas com o objetivo de renovar constantemente a popula¸c˜ao de agentes, ocasionando uma sele¸c˜ao natural de melodias, na expectativa de que caracter´ısticas musicais interessantes sejam preservadas ou venham a emergir.

Em Living Melodies [DN01], os agentes s˜ao capazes de se reproduzir no caso de se encontrarem no tabuleiro e respeitarem certas condi¸c˜oes. Ap´os a intera¸c˜ao, um filho ´e gerado a partir da

recombina-¸c˜ao do genoma musical e procedural dos pais, subtraindo de ambos uma certa quantidade de energia.

Uma outra forma de intera¸c˜ao ´e a emocional, em que as a¸c˜oes dos agentes podem ser mo-dificadas devido `a est´ımulos emocionais recebidos do Ambiente. Por exemplo, no caso do Living Melodies, os agentes possuem um n´ıvel de felicidade que ´e aumentado quando eles escutam uma nota musical que gostam, e estar feliz ´e essencial para que a reprodu¸c˜ao aconte¸ca.

A comunica¸c˜ao entre os agentes musicais ´e ao mesmo tempo sonora e visual, pois os m´usicos devem seguir os gestos do maestro. Alternativamente, este pode enviar instru¸c˜oes espec´ıficas para um m´usico atrav´es de mensagens. As intera¸c˜oes f´ısicas s˜ao feitas a partir da gera¸c˜ao de som pelos m´usicos e da movimenta¸c˜ao dos ouvintes pelo ambiente. Existe uma intera¸c˜ao ecol´ogica emocional entre os m´usicos e os ouvintes, onde os primeiros s˜ao afetados pela recep¸c˜ao da plat´eia e os ouvintes pela qualidade da performance musical.

Cap´ıtulo 3

Arquitetura do Ensemble

Baseado na taxonomia descrita no cap´ıtulo anterior, o presente cap´ıtulo descreve a arquitetura do Ensemble, que fornece a base para a constru¸c˜ao de Agentes Musicais e do Ambiente onde eles habitam. O Ensemble ´e respons´avel por disponibilizar alguns servi¸cos essenciais para um sistema multiagente musical, como a transmiss˜ao de som entre os agentes. A partir do Ensemble, o usu´ario pode programar funcionalidades espec´ıficas para seu objetivo musical como, por exemplo, algorit-mos de composi¸c˜ao, an´alise e s´ıntese sonoras.

E importante observar que a implementa¸´ c˜ao do Ensemble corresponde a um arcabou¸co, e n˜ao a uma biblioteca. Em um arcabou¸co, o controle do fluxo de execu¸c˜ao ´e retirado do usu´ario e mantido pelo seu c´odigo interno. Assim, ao inv´es do usu´ario utilizar as funcionalidades do arcabou¸co como em uma biblioteca, ele implementa certos m´etodos que ser˜ao chamados em um momento oportuno pelo arcabou¸co. Por esta raz˜ao, implementa¸c˜oes espec´ıficas do usu´ario e extens˜oes do sistema de-vem seguir algumas conven¸c˜oes internas, uma vez que o arcabou¸co funciona como um programa principal, respons´avel por chamar m´etodos implementados pelo usu´ario, entre outros.

Algumas das vantagens da utiliza¸c˜ao de um arcabou¸co s˜ao: a reutiliza¸c˜ao de c´odigo que foi testado a priori pelo desenvolvedor do arcabou¸cou e por seus atuais usu´arios; a redu¸c˜ao da tarefa de programa¸c˜ao, uma vez que v´arias funcionalidades do dom´ınio de aplica¸c˜ao em quest˜ao j´a est˜ao presentes no arcabou¸co; e a possibilidade de estender suas funcionalidades atrav´es de novas atua-liza¸c˜oes ou programa¸c˜ao do usu´ario. Por outro lado, um arcabou¸co pode apresentar uma curva de aprendizado mais lenta que a simples utiliza¸c˜ao de uma biblioteca de fun¸c˜oes, uma vez que deve-se compreender alguns aspectos do seu funcionamento interno. O seu uso tamb´em pode causar de-grada¸c˜ao no desempenho devido ao c´odigo extra que controla o arcabou¸co e deve ser executado independentemente da aplica¸c˜ao do usu´ario.

O arcabou¸co aqui apresentado pode ser classificado, de acordo com Johnson e Foote [JF88], como do tipo caixa-branca, uma vez que o usu´ario deve ter um conhecimento m´ınimo de sua implementa¸c˜ao interna. Contudo, o Ensemble disponibiliza um n´umero razo´avel de componentes reutiliz´aveis (como ferramentas de an´alise e s´ıntese) que podem facilitar consideravelmente a espe-cifica¸c˜ao e parametriza¸c˜ao de um agente musical pelo o usu´ario, a ponto de nenhuma programa¸c˜ao ser necess´aria. Assim, nessa situa¸c˜ao, ele pode ser considerado tamb´em como um arcabou¸co caixa-preta.

E importante ressaltar que uma aplica¸´ c˜ao que utilize o Ensemble n˜ao precisa necessariamente utilizar todos os itens aqui descritos e, geralmente, ser´a constitu´ıda de um subconjunto destes. Por exemplo, um sistema pode necessitar da defini¸c˜ao do espa¸co f´ısico, mas escolher por n˜ao integrar a simula¸c˜ao de propaga¸c˜ao do som. Ou ainda, utilizar funcionalidades programadas por outros usu´arios e que n˜ao fazem parte do n´ucleo do sistema.

25

A arquitetura foi projetada de forma a ser plug´avel, ou seja, deve ser poss´ıvel para o usu´ario acrescentar novos componentes ao agente em tempo de execu¸c˜ao do sistema. Por exemplo, o usu´ a-rio poderia querer construir um agente musical antropom´orfico, e assim programar um sensor que tenha a fun¸c˜ao de um ouvido para o agente, com certa posi¸c˜ao espacial no corpo do agente e capaz de receber o som presente no ambiente virtual. Em seguida, o usu´ario poderia simular a escuta de um ser humano plugando mais um ouvido no agente, em outra posi¸c˜ao; este agente agora poderia, utilizando um racioc´ınio capaz de analisar o som captado pelos dois ouvidos, deduzir a dire¸c˜ao da fonte sonora captada.

A arquitetura do Ensemble n˜ao est´a ligada a nenhum tipo de tecnologia espec´ıfica, mas a certas estrat´egias de modelagem de software. Ela segue o paradigma de programa¸c˜ao orientada a objetos e, portanto, necessita de uma linguagem capaz de implement´a-los (como Java ou C++). Al´em disso, o Ensemble pressup˜oe o uso de um middleware de sistemas multiagentes que disponha das funcionalidades b´asicas n˜ao relacionadas com a ´area musical. Mais informa¸c˜oes sobre as escolhas feitas para a implementa¸c˜ao do sistema est˜ao no cap´ıtulo 4.

As pr´oximas se¸c˜oes deste cap´ıtulo descrevem em detalhes os componentes da arquitetura e o modo de funcionamento dos servi¸cos essenciais fornecidos pelo Ensemble, baseados nos requisitos funcionais apresentados na se¸c˜ao 1.4. Para auxiliar na visualiza¸c˜ao, utiliza-se a linguagem de mo-delagem Unified Modeling Language (UML), em sua segunda vers˜ao.