Composição e Performance Musical Utilizando Agentes Móveis

Leo Kazuhiro Ueda

Dissertação apresentada ao

Instituto de Matemática e Estatística da

Universidade de São Paulo

para obtenção do título de

Mestre em Ciência da Computação.

Orientador: Prof. Dr. Fabio Kon

Durante o desenvolvimento deste trabalho,

o autor recebeu apoio financeiro da CAPES.

São Paulo, 29 de outubro de 2004.

Visão Geral

Introdução e motivação

Conceitos

Computação Musical

Agentes móveis

Agentes móveis musicais

Sistema Andante

Infra-estrutura

Duas aplicações

Trabalhos Futuros

Apresentação das peças

Introdução

Compositores sempre acompanharam inovações da ciência

Computador sendo um importante instrumento

Popularização dos computadores

Novas formas de se fazer música

Agentes móveis

Agentes móveis musicais

Infra-estrutura para sistemas musicais baseados em agentes móveis (sistema Andante)

Computação Musical

Composição algorítmica

Anterior ao computador

Processos formais em alguns aspectos da música

Hiller: Illiac Suite (1956)

Xenakis: modelos estocásticos

Algoritmos determinísticos e não-determinísticos

Modificar ou não a saída dos algoritmos

Computação Musical (cont.)

Sistemas musicais interativos

Novas formas de produção de música

Computador “ouve” e reage à música

Música na Internet

Distribuição de música

Performance distribuída

Composição distribuída

Código Móvel

Classe de modelos de sistemas distribuídos

Conceito: mudar a localização do código em tempo de execução

Balancear carga

Mover computação para perto dos dados

Configurar/atualizar sistema

Dificuldades:

Complexidade do sistema

Segurança

Código Móvel (cont.)

Paradigmas

Avaliação remota

PostScript

Código sob demanda

Applets

Agentes Móveis

Agente Móvel

Programa capaz de migrar de uma máquina para outra

Código e estado são transferidos

Autônomo e reativo

Rede heterogênea: sistema de agentes fornece um ambiente homogêneo

Desenvolvimento recente

Agente Móvel (cont.)

Vantagens em relação a modelos tradicionais

Redução do tráfego na rede

Eliminação da latência

Execução autônoma e assíncrona

Adaptação dinâmica

Desvantagens: complexidade e segurança, mesmo em relação aos outros paradigmas de código móvel

Agente Móvel Musical

Agente móvel que participa de um processo de composição e/ou performance de música

Agentes se encontram em máquinas de uma rede

Analogia: músicos tocando em um palco

Agente Móvel Musical (cont.)

Cada agente pode executar uma ou mais ações

Carregar um algoritmo de composição

Interagir com outros agentes

Interagir com músicos humanos

Reagir a sensores

Migrar

Agente Móvel Musical (cont.)

Exemplo

Música distribuída

Sala com vários computadores conectados em rede

Cada computador equipado com sensores de movimento e hospedando agentes

Agentes comunicam-se entre si e produzem uma peça musical distribuída

Um agente em especial recebe informações dos sensores de modo que ele possa seguir uma pessoa que ande pela sala

Agente Móvel Musical (cont.)

Exemplo

Composição distribuída

Cada usuário implementa um agente e o envia a uma mesma máquina

Agentes se encontram na máquina e interagem

Todos recebem o som resultante de volta

Projeto Andante

Objetivos

Construir um middleware para criação de aplicações musicais baseadas em agentes móveis (a Infra-estrutura Andante)

Construir tais aplicações

Criar uma comunidade onde compositores e programadores colaboram para desenvolver o sistema

Infra-estrutura Andante

Infra-estrutura de software de código aberto para construir e executar aplicações baseadas em agentes móveis musicais

Construída para ser utilizada em diferentes sistemas operacionais (Linux, MacOS e Windows)

Código disponível sob a licença GPL na Incubadora Virtual da FAPESP

Arquitetura

Palcos: programas que hospedam agentes

Palco fornece meios de gerar som através de um Dispositivo de Áudio

Agentes realizam ações num Palco

Programa externo pode enviar comandos a agentes

Representante de agente provê transparência de localização

Arquitetura (cont.)

Tecnologias

Java

Independência de plataforma

Java Swing e Java Sound API (MIDI)

CORBA

Para uso de outras linguagens

Aglets

Suporte para agentes móveis em Java

MAX/MSP (experimentos apenas)

Aplicações

Aplicações podem ser construídas a partir da infra-estrutura descrita

Implementamos dois exemplos:

NoiseWeaver

Maestro

NoiseWeaver

Gera música estocástica e distribuída em tempo real

Usa um tipo de agente que gera uma melodia estocástica

Altura, intensidade e duração são determinadas por um gerador de números baseado em ruídos 1/fb

Parâmetros definidos pelo usuário determinam a forma como a melodia é gerada

Metrônomo sincroniza os agentes

Interface gráfica controla os parâmetros dos agentes

NoiseWeaver (cont.)

Maestro

Extensão do NoiseWeaver

Interface gráfica genérica, controla qualquer tipo de agente Andante

Maestro – Interface Genérica

Maestro (cont.)

Parâmetros dos agentes também podem ser controlados por um script

Script define envio de comandos no tempo

Interface gráfica permite editar e executar scripts

Maestro – Interface do Script

Maestro – Exemplo de script

# Declarações

NoiseAgent a1;

NoiseAgent a2;

Stage s1 villa:4434;

Stage s2 lobos:4434;

--

# Inicializações

a1 setProperty Scale Diatonic;

a1 setProperty ScaleStart 36;

a1 setProperty Channel 1;

a1 setProperty Instrument 1;

a2 setProperty PitchGenerator Pink;

a2 setProperty Scale Diatonic;

a2 setProperty ScaleStart 72;

a2 setProperty Channel 2;

a2 setProperty Instrument 36;

a1 dispatch s1;

a2 dispatch s2;

s1 setTempo 150;

s2 setTempo 150;

--

# Partitura

1 a1 play;

5 a2 play;

13 a1 setProperty IntensityMin 80;

13 a1 setProperty Scale Chromatic;

17 a2 setProperty DurationMax 2;

17 a2 setProperty ScaleStart 60;

25 a1 dispatch s2;

25 a2 dispatch s1;

37 a1 stop;

37 a2 stop;

--

Maestro (cont.)

Colaboração do compositor Wilson Cerqueira Ferreira

Compôs duas peças musicais

Trabalhos Futuros

Estudar questões de tempo real e qualidade de serviço

Fornecer alternativas de geração de som: MAX/MSP, jMax, Csound

Facilitar a programação de agentes

Criar aplicações que explorem melhor a mobilidade e a interação com os agentes

Colaboração com compositores

Publicações

Artigos

Andante: A Mobile Musical Agents Infrastructure. Leo Kazuhiro Ueda and Fabio Kon. In Proceedings of the IX Brazilian Symposium on Computer Music, Campinas, Brazil, August 2003.

Andante: Composition and Performance with Mobile Musical Agents. Leo Kazuhiro Ueda and Fabio Kon. In Proceedings of the International Computer Music Conference 2004, Miami, November 2004.

Pôster

Mobile Musical Agents - The Andante Project (extended abstract). Leo Kazuhiro Ueda and Fabio Kon. In OOPSLA'04 Companion, Vancouver, Canada, October 2004.

2003-08-01T04:48:32