Instruções aos Autores de Contribuições para o SIBGRAPI
Transcrição
Instruções aos Autores de Contribuições para o SIBGRAPI
Um Ambiente Computacional Interativo e Imersivo para a Síntese Evolutiva de Cantos de Pássaros José Fornari1, Francisco Barretto2 1 Núcleo Interdisciplinar de Comunicação Sonora (NICS) – Rua da Reitoria, 165 Cidade Universitária "Zeferino Vaz" – CEP: 13.083-872 – fone/fax: +55 (19) 3521 7923 – Universidade Estadual de Campinas (UNICAMP) – Campinas – SP – Brazil 2 Laboratório de Pesquisa em Arte Computacional (Midialab). Departamento de Artes Visuais. Instituto de Artes. Universidade de Brasília (UnB). Brasília – DF – Brasil {tutifornari,kikobaretto}@gmail.com Abstract. Birdsongs are a ubiquitous sound component in several natural soundscapes. They can be seen as agents, in an ecological network, where their interaction self-organizes a sonic texture, with similar cognitive features and distinct acoustic aspects. This article presents a computer model for the generation of artificial soundscapes of birdsongs. Such synthetic environment is created by an Evolutionary Algorithm, the ESSynth model, that continuously generates control parameters for models of syrinx sound synthesis, which is capable of emulating a broad variety of birdsongs. The result is an interactive soundscape coupled with an interactive computer animation, both influenced by the instant text messages transmitted from the micro-blog Twitter. Resumo. Os cantos de pássaros são parte integrante de diversas paisagens sonoras naturais. Estes podem ser vistos como agentes de uma rede ecológica cuja interação autoorganiza um sistema sonoro de características cognitivas similares e aspectos acústicos dinamicamente originais. Este artigo apresenta um sistema computacional desenvolvido para a geração de paisagens sonoras artificiais de cantos de pássaros. Tal ambiente artificial é criado por um algoritmo evolutivo, o ESSynth, que gera continuamente parâmetros de controle para modelos computacionais de siringe, capazes de emular uma ampla variedade de cantos de pássaros. O resultado é uma paisagem sonora e animação digital interativa; ambas dinamicamente influenciadas por mensagens instantâneas (tweets) do microblog: Twitter. 1. Introdução É espantosa a quantidade e variedade de ambientes onde é possível escutar o canto de pássaros. Estes trocam informações sonoras com outros indivíduos, através de seus característicos cantos, formando sua rede de comunicação social que constitui para nós uma paisagem sonora. Tal textura de sons orgânicos, dinâmicos e similares, muitas vezes, se mescla com os ruídos urbanos de máquinas e pessoas, criando um ambiente imersivo cibernético (Wiener, 1968), composto da interação entre agentes orgânicos e maquinais, criando um complexo sistema sonoro, emergente, acusticamente auto-organizado e cognitivamente auto-similar. A estrutura fisiológica, que permite aos pássaros gerar cantos tão diversos e complexos, é de sofisticação impar. Existem modelos computacionais já desenvolvidos do aparato orgânico, em essência, a siringe. Porém, os modelos computacionais da siringe possuem um grande número de parâmetros de controle, o que, muitas vezes, torna a sua exploração manual dificultosa e até mesmo inarticulável. Controlar um grande número de parâmetros simultaneamente é uma das tarefas de extrema complexidade que o cérebro realiza com larga facilidade. Um exemplo disto é o controle da posição e deslocamento corporal, e consequentemente, da expressão gestual, que é realizado pela maioria das pessoas praticamente de modo automático e até mesmo inconsciente. Uma alternativa de simular tal controle é através de modelos computacionais inspirados nas estratégias naturais e biológicas da resolução de tais problemas. Este é o ramo tratado pela Inteligência Artificial, inspirados em dois processos naturais de resolução de problemas complexos: o cérebro, de onde advêm metodologias tais como as redes neurais; e a Evolução Natural, que trata do desenvolvimento não-supervisionado de sistemas complexos (tais como o próprio cérebro) e que motivou a criação de Algoritmos Evolutivos (AE); onde está baseada a abordagem deste trabalho. Para tanto, desenvolvemos um modelo computacional de AE que permite não apenas o controle de um modelo de canto de pássaros, mas da simulação de um pequeno ecossistema destes, formado por uma população, com tamanho variável de indivíduos, que são modelos computacionais de siringes. Cada indivíduo é o instanciamento de uma sub-rotina em Pure Data (www.puredata.info) de síntese sonora procedural, que realiza o modelamento físico do processo acústico onde o pássaro gera e modula o som do seu canto, ao invés de utilizar amostras de áudio de sons gravados dos pássaros. Tais indivíduos têm seu próprio genótipo, constituído por um arquivo de texto contendo os parâmetros de cada síntese sonora. Dentro da população, os indivíduos nascem, reproduzem-se e morrem, compondo assim uma paisagem sonora evolutiva, dinâmica, cognitivamente similar e acusticamente original. Para tornar este sistema aberto, foi estabelecido um segundo grau de interatividade. Além de permitir a livre evolução da população de indivíduos, este sistema também permite a interveniência externa de múltiplos usuários, que podem inserir dinamicamente novo material genético na população evolutiva, conforme explicado adiante. Para viabilizar a interatividade simultânea de diversos usuários com o sistema evolutivo, utilizamos o serviço de microblog conhecido por Twitter (www.twitter.com). Twitter é uma palavra da língua inglesa que significa “silvar”, ou seja, a sucessão de pequenos sons emitidos pelos pássaros canoros. A metáfora aferida por tal nome, que compara o canto de pássaros com a comunicação de pequenos textos numa rede social, encaixa-se perfeitamente na contextualização deste sistema, posto que descreve com precisão a filosofia por detrás deste microblog. Os silvos dos pássaros inicialmente podem soar como algo aparentemente desprovido de significado ou ordem. Porém, o seu contexto é dinamicamente inferido pela cooperação entre as aves, que os emitem e os escutam. O mesmo se aplica ao Twitter, onde as inúmeras mensagens, vistas isoladamente, podem parecer completamente aleatórias e/ou desprovidas de sentido, porém dependem ativamente do seu receptor para estabelecer um significado global que as unifique em um único contexto (Dorsey, 2009). Utilizou-se aqui a metáfora dos pássaros como base fundamental para o desenvolvimento deste trabalho. Neste trabalho, o Twitter fornece o canal de inserção de novo material genético para a síntese evolutiva do AE. Cada modelo de canto de pássaros é visto como um indivíduo na população do AE. Cada modelo de siringe utiliza 16 parâmetros de controle. Tais parâmetros correspondem ao gene do DNA. Por simplicidade, optamos por utilizar o código ASCII dos caracteres das mensagens do Twitter, como o DNA dos indivíduos da população. O sistema AE é implementado em PD. Já o cliente Twitter foi implementado em Java. Ao receber uma nova mensagem, este a transforma num vetor de números inteiros, correspondendo aos caracteres ASCII, normalizados entre 0 e 1, e representando o DNA utilizado pela síntese evolutiva. A cada instante que uma nova mensagem é recebida, um novo indivíduo, contendo este respectivo DNA é inserido na população evolutiva. Este indivíduo corresponde a um novo objeto sonoro, ou seja, um novo canto de pássaro. Cada objeto sonoro tem um período de vida limitado, onde pode reproduzir, ser selecionado e, por fim, morrer. A resultante sonora de todos os indivíduos ativos (vivos) a cada momento da evolução da População, conforme explicado adiante, se auto-organiza na forma de uma Paisagem Sonora (PS). Em paralelo, um outro modelo computacional, desenvolvido em Processing (www.processing.org) foi implementado, para a geração de uma Paisagem Visual (PV) em correspondência à PS. Esta é controlada pelos mesmos genótipos, ou seja, parâmetros dos modelos de síntese da siringe, que são compartilhados através do protocolo OSC (www.opensoundcontrol.org) e complementam a experiência imersiva de criação dinâmica e interativa da PS, coletivamente composta e interativamente experimentada. 2. O Som da Siringe As aves canoras (aves que cantam) fazem parte da ordem biológica dos Passeriformes. Seus integrantes são chamados de pássaros ou passarinhos. O grupo é bastante numeroso e diversificado, com cerca de 5.400 espécies, que representam mais da metade do total das aves catalogadas. Os passeriformes se dividem em: 1) Tyranni (Suboscines, ou "aves gritadoras") e 2) Passeri (Oscines, ou "aves canoras, que cantam"). Ambos possuem siringe; o principal órgão responsável pela produção e emissão de sons nos pássaros (Clarke, 2004). Diferente dos humanos, as aves canoras podem controlar independentemente cada pulmão, o que as permite simultaneamente inspirar com um pulmão enquanto expiram com o outro. Isto possibilita que estes cantem aos mesmo tempo que respiram, e assim gerem frases sonoras muito longas; muto além da capacidade volumétrica de seus pulmões. A siringe no pássaro é o correspondente da laringe humana. Esta possui 3 grupos musculares que permitem constringir independentemente a traquéia e os 2 brônquios, modificando a intensidade e frequência do som produzido; conferindo aos pássaros um imenso controle sobre os sons por estes gerados. A siringe é localizada na extremidade final da traquéia, na união entre os 3 tubos (a traqueia e os 2 brônquios), onde é localizada a membrana timpânica; uma membrana cartilaginosa suspensa por uma cavidade; uma espécie de saco inflado de ar; chamado de saco clavicular. Esta membrana pode mover-se lateralmente, de modo livre e rápido. Desse modo, esta membrana é o oscilador principal da siringe e pode ser comparada com a palheta de um instrumento musical de sopro, como o Oboé. Os pássaros canoros podem controlar tanto a entrada do fluxo de ar, que veicula no saco clavicular, vindo da traqueia, como a sua saída, pelos brônquios. Além disso, estes podem também controlar a rigidez da própria membrana, através de músculos similares aos dos lábios humanos (laterais e mediais). A Figura 1 mostra o diagrama esquemático de uma siringe, contendo os três grupos musculares independentemente controlados e a membrana timpânica, que é a fonte oscilatória de todo o sistema. Figura 1. Diagrama esquemático de uma siringe. Diversos algoritmos computacionais do modelamento físico da siringe, foram desenvolvidos. Aqui, nos baseamos no modelo computacional de Hans Mikelson, inicialmente desenvolvido para o ambiente de programação Csound (Mikelson, 2000). Este algoritmo foi posteriormente aperfeiçoado e implementado em PD por Andy Farnell, que criou um modelo computacional que simula a siringe e também o processamento sonoro dado pela traquéia e pelo bico (Farnell, 2010). Na Figura 2, tem-se a imagem da estrutura em PD do modelo computacional de uma siringe. Este é um algoritmo simplificado da síntese procedural do modelamento físico da síntese sonora e controle paramétrico da siringe, conforme observada na figura anterior. A Figura 2 também contém a equação da síntese sonora, controlada por 5 parâmetros. Figura 2. Implementação em PD do modelo computacional simplificado da síntese sonora da siringe. 3. A Síntese Evolutiva Dentre os métodos adaptativos computacionais, a Computação Evolutiva (CE) é aquela diretamente inspirada na estratégia biológica de busca dinâmica pela melhor solução de um problema (Eiben, 2007). Em CE, populações de indivíduos se adaptam às variações inesperadas de seu meioambiente. Métodos de CE são normalmente usados na tentativa de encontrar a melhor solução possível para problemas quando não existe informação suficiente para solucioná-los através de métodos matemáticos formais (métodos determinísticos). Assim, algoritmos de CE, em geral, são projetados para realizar a procura não-supervisionada da melhor solução para um problema complexo, dentro do escopo de uma “paisagem” (landscape) de soluções possíveis. Existem diversos estudos de metodologias evolutivas alinhadas à criação de obras artísticas e musicais, tais como os sistemas: 1) VoxPopuli, um sistema capaz de gerar frases musicais complexas e harmônicas, utilizando Operadores Genéticos (Moroni, 2000); 2) RoBoser, um sistema criado em colaboração com o grupo SPECS da UPF (Barcelona) que utiliza Controle de Distribuição Adaptativa (CDA) para o desenvolvimento de uma correlação entre o comportamento adaptativo robótico e as composições algorítmicas (Manzolli, 2005); 3) ESSynth, o método de síntese evolutiva de segmentos sonoros, utilizado em RePartitura, que insere mudanças na dinâmica sônica, utilizando Operadores Genéticos no processo de Reprodução e a Distância de Hausdorff (métrica de distância entre conjuntos) como função de adequação (fitness) do processo de Seleção (Fornari, 2008). A primeira implementação computacional do ESSynth já havia demonstrado sua característica de gerar sequências de segmentos sonoros perceptualmente similares, mas nunca idênticas, o que é um dos atributos primordiais de uma PS. Este sistema foi posteriormente aprimorado para incluir a parametrização da localização espacial dos Indivíduos (objetos sonoros) a fim de criar uma PS através do mapeamento de objetos gráficos extraídos de uma série de desenhos conceituais, criando assim uma ponte entre paisagem sonora e visual (Fornari, 2009). 3.1. A codificação do DNA O sistema evolutivo de criação da PS foi implementado em PD, como um patch (um modelo computacional): o essynth.pd. Os indivíduos são instanciamentos de um patch auxiliar, chamado em PD de abstraction: o ind.pd. Cada instanciamento de ind.pd gera um indivíduo pertencente à população de essynth.pd. Cada indivíduo é um algoritmo de modelamento físico da siringe, similar ao que foi apresentado na Figura 2. Cada indivíduo possui o seu próprio genótipo, que é correspondente ao DNA biológico, que mapeia as características sonoras intrínsecas do canto de pássaros, gerado em cada instanciamento deste modelo computacional. Este DNA é constituído por um vetor de 140 elementos, correspondente à uma mensagem do Twitter (tweet). A sequência de DNA é aqui composta de números entre 0 e 127, correspondente aos caracteres ASCII da mensagem. Cada vetor será normalizado (entre 0 e 1) e cada grupo sequencial de 16 elementos equivalendo a um gene, que representa um bloco de parâmetros do modelo computacional da siringe, utilizado no algoritmo do indivíduo da síntese evolutiva. Teremos assim 9 genes por DNA, correspondo a 9 etapas de parametrização de cada modelo computacional da siringe. Afim de completar os 9 genes de 16 elementos (perfazendo 144 elementos), os últimos 4 elementos do DNA (da mensagem de 140 caracteres) serão elementos nulos (zero). Os 16 elementos formadores de cada gene que constituem o DNA, são números escalares normalizados entre 0 e 1. Cada gene controla uma etapa no tempo, da parametrização do modelo computacional da siringe. Esta utiliza 16 parâmetros para controlar a síntese procedural. Os elementos são respectivamente: 1) Articulação do bico, 2) taxa de aleatoriedade dos silvos, 3) freqüência do primeiro formante da siringe, 4) amplitude do primeiro formante da siringe, 5) freqüência do segundo formante da siringe, 6) amplitude do segundo formante da siringe, 7) freqüência de base, 8) extensão da variação da freqüência de base, 9) taxa de modulação, 10) base da modulação, 11) primeiro formante da traquéia, 12) base do primeiro formante da traquéia, 13) segundo formante da traquéia, 14) base do segundo formante da traquéia, 15) ressonância do filtro da traquéia, 16) amplitude global. 3.2. A função de adequação (fitness) A fim de criar uma PS auto-organizada, a função de adequação, ou fitness, é dada por uma métrica de distanciamento psicoacústico, que constitui o processo de seleção do patch essynth.pd. Este processo mede a distância entre cada indivíduo da população e elimina aqueles mais distantes do cluster populacional; o grupo de indivíduos da População evolutiva mais próximos entre si, segundo tal métrica. Esta é calculada pela distância Euclidiana entre os valores de 3 descritores psicoacústicos: 1) Loudness, 2) clareza de Pitch e 3) centroide Espectral, conforme demonstrado na equação a seguir: D= √ (( L1− L2)2+ (P1− P2)2 + (E1− E2)2) (1) 3.3. Os operadores genéticos Utilizamos aqui os operadores genéticos tradicionalmente usados em EAs: recombinação (crossover) e mutação. Estes manipulam os 9 genes (de 16 elementos) de cada DNA (de 144 elementos). A recombinação mistura os valores dos genes entre os DNAs de 2 indivíduos (A e B), criando assim um novo DNA, correspondente a um novo indivíduo (C). Os genes que serão misturados são escolhidos aleatoriamente. A mistura é a combinação convexa dos 16 elementos de cada gene. A taxa de mistura é determinada pela taxa de recombinação tr; um valor escalar, entre -1 e 1, que determina o grau de mistura entre os genes dos indivíduos A e B. Se tr = -1, os valores dos genes escolhidos para a recombinação em C, serão idênticos aos de A. Se tr = 1, os valores dos genes escolhidos para recombinação em C, serão idênticos aos de B. Se tr = 0, os valores dos genes escolhidos para recombinação em C, serão dados pela média aritmética dos 16 valores dos respectivos genes de A e B. A mutação é o operador que insere informação original no DNA do novo indivíduo. Este operador genético também possui uma taxa de mutação tm, porém que varia entre 0 e 1. Este determina o grau a variabilidade inserida no código genético do DNA do novo indivíduo. Tal variação é dada através da multiplicação do vetor de 144 elementos por um vetor de valores aleatórios, entre [(1tm), 1]. Se tm = 0, não existe qualquer perturbação inserida no DNA recém-criado, uma vez que o DNA é multiplicado por um vetor de valores unitários. Se tm = 1, o vetor de multiplicação possui valores aleatórios entre [0, 1] e assim a perturbação é máxima. Os valores das taxas de recombinação e mutação, são contínuos e dinamicamente variáveis, no entanto, costumam ser mantidos em taxa de recombinação tr = 0.5 e taxa de mutação tm = 0.1, afim de representarem padrões usuais, empiricamente constatados como suficientes para garantirem a atuação eficiente destes operadores genéticos no processo evolutivo do sistema. 4. A Paisagem Sonora (PS) PS, (Soundscape) é um termo cunhado por Murray Schafer, que se refere ao ambiente sônico imersivo, percebido por ouvintes que podem interagir com este, de forma passiva, ouvindo e o reconhecendo; e/ou de forma ativa, sendo um dos agentes de sua composição (Schafer, 1994). Deste modo, uma PS é, em si, o fruto da percepção sonora do ouvinte. Sendo assim, esta pode ser reconhecida pelos seguintes aspectos cognitivos: 1) Primeiro plano; 2) Plano de fundo; 3) Contorno; 4) Ritmo; 5) Espaço; 6) Densidade; 7) Volume e 8) Silêncio. De acordo com Schafer, PSs podem ser formadas por 5 categorias de conceitos sônicos analíticos. Elas são: 1) Tônicas; 2) Sinais; 3) Marcas sonoras; 4) Objetos sonoros e 5) Símbolos sonoros. A Tônica é formada pelos sons vivos e onipresentes, usualmente no Plano de fundo da percepção do ouvinte. Os Sinais são os sons no Plano de frente, que chamam a atenção consciente do ouvinte – uma vez que eles podem conter informações importantes. As Marcas sonoras são os sons exclusivamente encontrados em cada PS. Os Objetos sonoros são os componentes atômicos de uma PS. Como definido por Pierre Schaeffer – que cunhou o termo – um Objeto Sonoro é um evento acústico formado por aspectos que levam o ouvinte a uma percepção sônica, particular e única. Por fim, os Símbolos sonoros são sons que evocam respostas cognitivas e afetivas, baseadas no contexto sociocultural e pessoal do ouvinte. Tais unidades cognitivas são características emergentes do processo de auto-organização de sistemas complexos e abertos. Como tal, estas unidades podem ser encontradas e analisadas por descritores acústicos, mas não são suficientes para definir um processo real de geração de PSs. Afim de fazê-lo, é necessário definir não apenas a representação acústica de objetos sonoros, mas também as suas características intrínsecas, que podem ser usadas como regras no modelamento computacional da síntese sonora de um conjunto de objetos sonoros semelhantes e originais. Em termos da catalogação sistêmica de uma PS, estas podem ser vistas como sistemas autoorganizados, complexos e abertos, formados por objetos sonoros atuando como agentes dinâmicos. Juntos, estes orquestram um ambiente sonoro que é sempre original no âmbito acústico, mas que, perceptualmente, retém auto-similaridade suficiente para permitir sua identificação e discriminação, por similaridade cognitiva. Tal similaridade variante é uma característica encontrado em qualquer PS. Afim de se gerar computacionalmente uma PS artificial, é necessário um algoritmo capaz de criar objetos sonoros com invariância psicoacústica e variância acústica, o que levou à utilização da classe de métodos computacionais adaptativos, tais como a CE. 5. Interatividade Multimídia Neste trabalho, a interatividade entre a paisagem sonora e a visual se dá pela utilização de sistemas autônomos que permitem a inserção de informação genotípica no sistema evolutivo programado em PD (o ESSynth) através de mensagens do Twitter. Para tal, são extraídos deste microblog os tweets (mensagens de até 140 caracteres) que mencionam “@evopio”. Uma vez coletadas estas mensagens, cada uma delas é enviada ao sistema evolutivo do ESSynth, sob a forma de genótipos, onde são utilizados para criar os indivíduos, cuja expressão fenotípica é um objeto sonoro. Estes pertencem à População evolutiva que se auto-organiza em uma PS. Para cada indivíduo instanciado como objeto sonoro, é também criado um objeto gráfico no ambiente Processing, conforme explicado adiante. O conjunto destas animações sincronizadas aos objetos sonors integra a PV. A comunicação entre PD e Processing ocorre através do protocolo Open Sound Control (OSC). 5.1 Twitter O histórico das trocas de mensagens instantâneas, que fomentou o surgimento de vários microblogs, teve início em 1988, com o surgimento do Internet Relay Chat (IRC), desenvolvido para permitir a troca de mensagens curtas em grupo. Em seguida, com a popularização dos telefones celulares, foi criado o Short Message Service (SMS) que opera com mensagens de até 160 caracteres, sendo 20 destinados ao nome e número telefônico do remetente, seguidos de 140 caracteres alfanuméricos, alocados ao conteúdo da mensagem (Akcora, 2010). O Twitter foi fundado em 2006, sob o formato de uma rede social que focava no serviço de microblogging, caracterizado pela curta extensão das mensagens. Este tipo de serviço também foi oferecido por outras redes sociais, como Facebook e o Orkut. No entanto, o Twitter difere dos demais por sua simplicidade; não oferecendo quaisquer outros recursos, como o compartilhamento de áudio ou imagens. Segundo Jack Dorsey; criador deste serviço, a conceito do Twitter foi inspirado no controle auto-organizado no tráfego urbano, por cada agente (carros e/ou bicicletas) que, ao circularem, devem notificar uns aos outros, através de sinais visuais e sonoros, onde estão, o que estão fazendo e o que pretendem fazer (Dorsey, 2009). O Twitter chama a postagem, ou mensagem, de tweet, que significa, em Inglês, um silvo de um pássaro. Cada tweet tem a tamanho limite de 140 caracteres herdado das mensagens SMS (Java, 2007). Segundo Akcora e Dermibas, o sucesso do Twitter pode ser atribuído a dois fatores: 1) a Elegância de seu projeto e 2) a Simplicidade de sua integração. O primeiro fator se expressa no limite de caracteres de cada mensagem, atribuído como uma das razões da popularidade desta rede social. Nos blogs “convencionais”, onde não há limite no tamanho das mensagens, há a necessidade por parte do usuário de ter um bom domínio de escrita, bem como de extenso conteúdo para criar textos interessantes, ao passo que a utilização do Twitter não requer um domínio aprofundado da escrita ou longas reflexões sobre um tópico qualquer. Já o segundo fator – a simplicidade de integração do Twitter – deve-se o fato dos posts inseridos no microblog, além de outros dados, poderem ser acessados por aplicativos desenvolvidos por terceiros, através de uma Interface de Programação de Aplicações (Application Programming Interface - API) própria, gratuitamente disponibilizada pelo próprio Twiter. Existem inúmeros aplicativos desenvolvidos visando a integração com o Twitter e oferecendo os mais diversos aprimoramentos, como: a busca por outros usuários afins, ou a escrita de resenhas sobre livros (Akcora, 2010). Uma outra diferença entre os blogs e microblogs é a frequência de atualização pelo seu usuário mantenedor: enquanto o blog é normalmente atualizado esporadicamente, o microblog pode ser atualizado inúmeras vezes em um mesmo dia (Java, 2007). A maior parte dos aplicativos para Twitter foi desenvolvida por seus próprios usuários, na medida em que detectavam necessidades específicas. No entanto, os aplicativos desenvolvidos não se limitam apenas a estender as funcionalidades desta rede social. A simplicidade no acesso aos dados desta rede e a metáfora do Twitter incitam também aplicações artísticas, que podem utilizar estes dados como inputs em sistemas de composição algorítmica ou na construção de modelos computacionais generativos. Um destes aplicativos com finalidade artística é o Ciberintervenção Urbana Interativa (CIURBI), cuja proposta relaciona o espaço-tempo das cidades e os espaços cibernéticos em rede através da exploração da estética da arte grafite no contexto da arte computacional. O CIURBI é um projeto audiovisual completamente emergente: tanto o texto exibido quanto o som gerado depende diretamente das interações realizadas via Twitter, e das inferências realizadas por meio de um algoritmo de Inteligência Artificial (Barretto, 2010). Os tweets inseridos na rede social são captados e transformados em som e imagem, que são, por sua vez, projetados em tempo-real em locais da cidade. O aplicativo CIURBI captura os posts inseridos pelos usuários, quebra a mensagem em palavras e as projeta sobre obras arquitetônicas. Além disso, alguns parâmetros do tweet controlam a síntese de áudio enquanto que um algoritmo de lógica fuzzy controla a velocidade com que os parâmetros são modificados (Venturelli, 2010). 5.2. Protocolo OSC O Open Sound Control (OSC) é um protocolo de comunicação entre computadores, sintetizadores de som e outros dispositivos multimídia utilizando a arquitetura cliente/servidor, cuja especificação 1.0 foi publicada em 2002 (Wright, 2002). Os dados OSC são transmitidos em unidades de dados chamadas packets. Qualquer aplicativo ou dispositivo físico que envia OSC packets é denominado “cliente” enquanto aquele que os recebe é denominado “servidor” (Wright, 2003). A unidade básica do OSC é a message, conforme mostrado na figura 3. Esta consiste em um padrão de endereço (address pattern), uma string de especificação de tipo e argumentos. O padrão de endereço é uma string que especifica a entidade ou entidades dentro do servidor OSC, para o qual, a mensagem é endereçada. A string de especificação de tipo, denota o tipo de cada argumento, enquanto os argumentos são os dados em si (Wright, 2002). Figura 3: Estrutura de uma mensagem OSC, segundo (Schmeder et. al. 2010) A possibilidade de enviar inúmeros parâmetros, com tipos distintos, permite que, através da estruturação destes dados, seja possível não apenas controlar instrumentos virtuais, substituindo o protocolo MIDI, como também a comunicação entre diferentes aplicações. O suporte do PD ao OSC se dá através dos objetos sendOSC e dumpOSC que respectivamente enviam e recebem pacotes OSC. Estes funcionam utilizando o protocolo UDP/IP 1. O objeto sendOSC é programado para enviar os pacotes para um socket UDP (um IP e uma porta específica UDP). A recepção deste pacote é feita pelo objeto dumpOSC que, por sua vez, instancia uma porta UDP e passa a monitorar eventuais mensagens OSC endereçadas para esta porta. A cada mensagem recebida, o conteúdo é “desempacotado” e endereçado internamente para os diversos objetos, através do routeOSC (Wright, 2003). 5.3. Processing O Processing (http://processing.org/) é uma linguagem de programação de código-livre, orientada-a-objeto e baseada em Java (www.java.com). Criada em 2001 por Casey Reas e Benjamin Fry, para ensinar os fundamentos da programação dentro de um contexto visual, Processing relaciona alguns conceitos de software, como: os princípios visuais, um ambiente de desenvolvimento e, uma metodologia de ensino dentro de um sistema unificado. Isto permite que estudantes, artistas, 1 User Datagram Protocol (UDP) é um protocolo de rede da camada de transporte, descrito na RFC 78 (http://tools.ietf.org/html/rfc768) que trafega sobre a rede Internet Protocol (IP). programadores e pesquisadores utilizem o Processing no aprendizado, pesquisa, prototipação e produção artística (Reas, 2007). A linguagem de programação utilizada no Processing foi especialmente projetada para gerar e transformar imagens. Os métodos complexos utilizados no desenvolvimento de softwares que trabalham com CG (Computer Graphics) foram abstraídos em métodos mais simples, que pudessem ser compreendidos pelos estudantes. Exemplificando; para desenhar um retângulo, existe um método simplificado chamado rect() para o qual especifica-se apenas a posição x e y, a largura e altura do retângulo; não sendo necessário defini-lo linha-por-linha ou desenhá-lo ponto-por-ponto. Para o desenvolvedor experiente, é possível criar bibliotecas Java e incorporá-las ao Processing como “projetos”, ou importar o próprio Processing como uma biblioteca, num ambiente integrado de desenvolvimento de software (Reas, 2007). 6. A Paisagem Visual (PV) A PV foi desenvolvida utilizando o Processing, e também é baseada na metáfora dos cantos de pássaros, do mesmo modo que o Twitter, e descrita por (Dorsey, 2009). Enquanto que, na PS esta metáfora se expressa através de uma população de indivíduos – objetos sonoros da síntese de cantos dos pássaros – na PV esta se expressa na visualização da animação computacional destes indivíduos que se movimentam em um espaço virtual. Cada canto de pássaro existente na PS tem uma representação visual correspondente em PV. Considerando que a População tem muitos indivíduos, e estes irão interagir através de processos evolutivos, fez-se necessário a utilização de um algoritmo capaz de mediar estas interações visuais, da forma mais “natural” possível. Para tanto, foi empregado aqui o algoritmo Boids, de simulação de comportamento de grupos de indivíduos, como o de animais sociais, desenvolvido por (Reynolds, 1987). O movimento sincronizado de um grupo de animais, tal como um bando de pássaros, possui várias peculiaridades. Estes são formados por indivíduos independentes porém a movimentação geral durante o vôo é fluída e contínua; conceitualmente simples, porém visualmente complexa. O movimento de bando pode ser definido de forma simplificada através de um modelo de indivíduo que siga três regras: 1) Evitar a colisão: deve evitar a colisão com outros indivíduos próximos; 2) Equivalência de velocidade: deve tentar manter aproximadamente a mesma velocidade dos indivíduos próximos; 3) Centro do bando: deve tentar manter-se sempre próximo do centro do bando. Outras regras podem ser implementadas para aperfeiçoar o modelamento do comportamento do bando, como por exemplo, os indivíduos: 1) seguirem um “líder”, 2) tentarem atingir um objetivo ou 3) desviar de obstáculos ou “predadores”. Estas regras foram utilizadas para modelar o comportamento do grupo de indivíduos que integra o sistema de animação gráfica da PV. Afim de manter uma correspondência fidedigna entre PS e PV, a sincronização é realizada através da troca de mensagens entre as partes (visual e sonora) através do protocolo OSC. Cada animação descreve um formato em “V”, lembrando as asas de um pássaro. Esta é formada pela mensagem (tweet) que define o genótipo deste indivíduo. A figura 4 mostra alguns exemplos das animações criadas em Processing, simbolizando os indivíduos da população evolutiva que gera a PS. Figura 4: Exemplo de três pássaros virtuais, cujas asas são formadas pelo texto das respectivas mensagens (tweets) . 7. Discussão e Conclusões Este trabalho apresentou os fundamentos de criação de um sistema computacional para a criação de paisagens sonoras através do algoritmo evolutivo ESSynth, que se estende do campo sonoro para o visual, através da implementação de um ambiente de simulação gráfica dos agentes formadores da paisagem sonora, e sua representação sincrônica num ambiente computacional de paisagem visual. A paisagem sonora criada por tal sistema é inspirada na rede social da natureza, gerada pelos pássaros, através de seus cantos. Uma das características marcantes do ESSynth é criar uma textura sonora similar e variante. Isto é dado por um conjunto de objetos sonoros que evoluem ao longo do tempo, através dos processos computacionais que simulam a reprodução e a seleção, conforme observadas na natureza, em populações biológicas. O som resultante de todos os objetos sonoros, é cognitivamente similar, ao mesmo tempo que é acusticamente distinto. Pelo que consideramos, esta é uma das características fundamentais das paisagens sonoras naturais. Assim, o ESSynth possibilita gerar paisagens sonoras artificiais. Os objetos sonoros são os indivíduos pertencentes ao conjunto de tamanho variável; a População evolutiva. Os indivíduos têm um código genético que parametriza o processo de síntese sonora do modelamento físico da siringe. Este genótipo é modificado pelo processo de reprodução e medido pelo processo de seleção. Assim, estes indivíduos reproduzem em pares, gerando novos indivíduos, com características genotípicas similares a de seus predecessores. Estes são selecionados com base na similaridade de seus genótipos, com o da média da população. Os indivíduos têm um tempo de vida limitado. Quando um indivíduo morre, seu genótipo é eliminado da população, e nunca mais se repete. Assim, não existem clones na população evolutiva do ESSynth. Neste trabalho, os indivíduos são instanciamentos do modelo de síntese sonora procedural de cantos de pássaros. Utilizamos a adaptação em PD do modelo inicialmente criado por Hans Mikelson, que simula a siringe. O modelo foi estendido por Andy Farnell, para incorporar a geração de frases melódicas aleatórias, nos moldes que observamos os pássaros cantarem na natureza. Cada indivíduo da População evolutiva de ESSynth é o instanciamento destes modelos físicos do canto de pássaros. Os genótipos são dados por vetores de parâmetros destes modelos. Estes advêm de mensagens (tweets) do Twitter, o que permite que a População de objetos sonoros de ESSynth passe de um sistema fechado para aberto, caracterizando assim um CAS (Complex Adaptive Systems). Este é um sistema complexo e aberto, que apresenta características auto-similares, formado por agentes (indivíduos) independentes, mas que interagem entre si. O CAS apresenta propriedades emergentes, ou autoorganizadas, como são os sistemas naturais, criados pela evolução natural (Holland, 2006). Deste modo, o sistema aqui apresentado permite a interatividade de múltiplos usuários externos, que enviam mensagens para o sistema evolutivo, através do Twitter. Para criar a realimentação entre o usuário e o sistema, foi desenvolvido um modelo de animação gráfica dos indivíduos. Estes podem ser vistos pelos usuários que enviaram mensagens, na forma da metáfora visual de uma animação lembrando o vôo de um pássaro, cujas asas são formadas pela mensagem enviada. Assim, o usuário pode identificar a sua inserção no pool genético da população evolutiva. Com isso, temos duas camadas de interatividade sistêmica; a interna e a externa. A interna, se dá pelos indivíduos do ESSynth, que compõem a paisagem sonora, formada pela síntese dos diversos cantos de pássaros, similares e variantes, e engendradas pelos processos evolutivos de reprodução e seleção. A externa, é formada pelos tweets dos múltiplos usuários que alteram a composição genética da população e (eventualmente) podem identificar visualmente os indivíduos que criaram e os correlacionar com seus objetos sonoros correspondentes. Ambas esferas de interação são conectadas pela metáfora do microblog Twitter; cujo desenvolvimento também se baseou na rede social formada através dos cantos dos pássaros, que se auto-organizam em paisagens sonoras. 9. Referências Akcora, C. G., Demirbas, M. (2010) "Twitter: Roots, Influence, Applications." Technical, Department of Computing Science and Engineering, State University of New York at Buffalo, New York. Barretto, F. P. (2010) "Arte Inteligente: Abordagens para o Desenvolvimento de Sistemas Criativos." In Anais do 9º Encontro Internacional de Arte e Tecnologia, edited by Suzete Venturelli, 171-180. Brasília. Clarke, Julia A. (2004) "Morphology, Phylogenetic Taxonomy, and Systematics of Ichthyornis and Apatornis (Avialae: Ornithurae)". Bulletin of the American Museum of Natural History 286: 1–179. Dorsey, Jack. (2009) "Twitter creator Jack Dorsey illuminates the site's founding document." L.A. Times. David Sarno. February 18, 2009. http://latimesblogs.latimes.com/technology/2009/02/twittercreator.html (accessed May 17, 2010). Eiben, A.E., Smith, J. E., (2007) "Introduction to Evolutionary Computing". 2nd Ed., Springer, Natural Computing Series. Farnell, A. (2010) “Designing Sound”. MIT Press, Cambridge, Massachusetts, London, England. Fornari, J., Maia, A., Manzolli J., (2008) “Soundscape Design Through Evolutionary Engines”. Journal of the Brazilian Computer Society, 2008, Volume 14, Number 3, Pages 51-64 Fornari, J., Shellard, M., Manzolli, J. (2009) “Creating evolutionary soundscapes with gestural data”. Article and presentation. SBCM - Simpósio Brasileiro de Computação Musical. Holland, J. (2006) "Studying Complex Adaptive Systems." Journal of Systems Science and Complexity 19 (1): 1-8. Java, A., X. Song, T. Finin, and B. Tseng. (2007) "Why We Twitter: Understanding Microblogging Usage and Communities." Edited by Computer Science and Electrical Engineering. Procedings of the Joint 9th WEBKDD and 1st SNA-KDD (University of Maryland). Manzolli, J., Verschure, P. (2005) “Roboser: A real-world composition system”. Computer Music Journal 29(3), 55–74. 2005. Mikelson, Hans. (2000) Bird calls. Csound Magazine, Winter, 2000. Moroni A., Manzolli, J., Von Zuben, F., Gudwin, R. (2000) “Vox populi: an interactive evolutionary system for algorithmic music composition”. Leonardo Music Journal 10, 49–54. Reas, C., Fry, B. (2007) “Processing: a programming handbook for visual designers and artists”. 1st Edition. London: The MIT Press. Reynolds, C. W. (1987) "Flocks, Herds, and Schools: A Distributed Behavioral Model." ACM SIGGRAPH '87 Conference Proceedings. Anaheim - California: Computer Graphics: 25-34. Schafer, M., R. (1994) “The soundscape: our sonic environment and the soundscape”. Destiny Books Schmeder, A., A. Freed, and D. Wessel. (2010) "Best Practices for Open Sound Control." Linux Audio Conference '10. Venturelli, S., Barretto, F. P., Loch, C., Modesto, F., Valentim, V., and Ribeiro, R. (2010) "Ciberintervenção Urbana Interativa." In Anais do 9º Encontro Internacional de Arte e Tecnologia, edited by Suzete Venturelli, 89-93. Brasília. Wiener, N. (1968) "Cibernética e sociedade: o uso humano de seres humanos". São Paulo: Cultrix. Wright, M. (2002) “Open Sound Control 1.0 Specification”. http://opensoundcontrol.org/spec-1_0 (accessed May 17, 2011). Wright, M., A. Freed, and A. Momeni. (2003) "OpenSound Control: State of the Art." Proceedings of the 2003 Conference on New Interfaces for Musical Expression (National University of Singapore): 153160.