Você está na página 1de 8

XXVI Congresso da Associao Nacional de Pesquisa e Ps-Graduao em Msica B.

Horizonte - 2016

Programao textual em linguagem visual para computao musical

MODALIDADE: PSTER

SUBREA: MSICA E INTERFACES

Lucas de Oliveira da Silva


Laboratrio de Acessibilidade (LAB) da UNICAMP e-mail: factoryfiftylucas@gmail.com

Gabriel Mary Dixon Henrique


Laboratrio de Acessibilidade (LAB) da UNICAMP e-mail: gabrielzello@gmail.com

Antonio Fernando da Cunha Penteado


Departamento de Msica, Instituto de Artes (IA) da UNICAMP e-mail: nando@nandopenteado.com

Vilson Zattera
LAB e IA da UNICAMP e-mail: vilson.zattera@gmail.com

Jos Fornari
Ncleo Interdisciplinar de Comunicao Sonora (NICS) da UNICAMP e-mail: tutifornari@gmail.com

Resumo: Este trabalho apresenta uma pesquisa em andamento que trata do desenvolvimento de
um mtodo de programao textual para o ambiente visual de programao de performances de
msica computacional; o Puredata (Pd). Este mtodo particularmente til para o msico
deficiente visual que, dessa forma, passa a ter total acesso para a criao de composies e
performances de msica computacional e arte multimodal atravs do Pd.
Palavras-chave: Computao Musical, Puredata, Acessibilidade.

Title: Textual programming of visual language of computing music


Abstract: This paper presents an ongoing research that deals with the development of a textual
programming method for Puredata (Pd), the visual programming language for computer music
performances. This method is particularly useful for the visually impaired musician that can now
have full access to the creation of electronic compositions, computer music performances and art
multimodal using Pd.
Keywords: Computing Music, Puredata, Accessibility.

1. Introduo
Linguagens de programao visual so muitas vezes utilizadas na programao de
processos em tempo-real. A msica uma arte fortemente atrelada ao domnio do tempo, no
apenas em termos do sentido do seu deslocamento, como tambm com relao ao seu
andamento, sua percepo e contextualizao do presente aparente (specious present); a
janela do tempo que, apesar de acusticamente fazer parte do passado, cognitivamente compe
o que sentimos como o presente (o momento atual) e intuitivamente separamos do passado
bvio (JAMES, 1893). Como processo, a msica ocorre em tempo-real. A notao musical,
apesar de estruturada em tempo diferenciado, apenas se torna msica no momento da
performance. Com os avanos tecnolgicos e computacionais, os computadores pessoais (PC)
passaram a ser utilizados como ferramentas de criao musical e gerao sonora. O
barateamento dos PCs possibilitou a criao e acesso linguagens de programao
XXVI Congresso da Associao Nacional de Pesquisa e Ps-Graduao em Msica B. Horizonte - 2016

especificamente desenvolvidas para a composio musical e a arte sonora. Uma das primeiras
linguagens de programao musical o Csound (http://csound.github.io), inicialmente
desenvolvido nos anos 80s por Barry Vercoe, no Massachusetts Institute of Technology (MIT)
descendendo do programa de sntese sonora MusicN, de Max Mathews. Nos anos 90s
surgiu o Pure Data (Pd); um novo ambiente computacional para msica e artes sonoras em
tempo-real. Pd uma linguagem de programao visual, desenvolvida por Miller Puckette,
que especializada em criar performances de computao musical e intalaes multimodais.
Pd uma ferramenta de cdigo aberto e pertence famlia de linguagens patcher, tais
como: Max (Max/FTS, ISPW Max, Max/MSP, jMax e DesireData. Estas so linguagens de
programao em fluxo de dados, onde blocos (mensagens, objetos, tomos) so conectados
por segmentos de retas que conectam as sadas (outlets) de blocos s entradas (inlets) de
outros blocos. Estas conexes representam a passagem de dados de controle e mdia
(PUCKETTE, 1988).

2. Linguagem textual de programao visual


Um programa em Pd chamado de patch e o formato deste arquivo textual, mas
possui extenso .pd (ex: teste.pd). Quando um arquivo com extenso .pd aberto num
editor de textos, pode-se observar que existe uma linguagem de programao textual por trs
da programao visual (de fluxo de dados) do Pd. Esta corresponde univocamente (do textual
para o visual) a todos os elementos do patch (ex: os blocos e suas conexes). O formato de
linguagem textual do Pd oficialmente no-oficial, ou seja, no existe documentao
oficial sobre a linguagem textual que representa a linguagem visual do ambiente Pd. No
entanto, existem diversos voluntrios e desenvolvedores que mapearam este formato de
arquivo e documentaram suas semntica e sintaxe1. A figura 1 mostra um patch simples do Pd
e o seu arquivo textual correspondente.
Nesta figura observa-se a correspondncia entre o patch a programao visual,
na forma de um diagrama de fluxo de dados ( esquerda) e a linguagem textual ( direita). A
primeira linha desta (canvas) define o tamanho e a posio da janela deste patch. O primeiro
bloco (message ou msg) possui um argumento numrico (o valor 440). Ao ser clicado, este
transmite este valor para a caixa de baixo (floatatom) que o transmitir para a caixa de baixo
(osc~, que gera um sinal senoidal contnuo) onde este valor ir representar a frequncia desta
senide. Este objeto gera um sinal senoidal de udio que transmitido (por conexes com
linhas mais grossas, que representam dados de udio) para a ltima caixa (dac~, que
XXVI Congresso da Associao Nacional de Pesquisa e Ps-Graduao em Msica B. Horizonte - 2016

representa os 2 canais da sada de udio). As conexes entre as caixas so representadas pelos


comandos connect.
#N canvas 577 134 450 300 10;
#X msg 210 37 440;
#X floatatom 210 66 5 0 0 0 - - -;
#X obj 210 94 osc~;
#X obj 201 163 dac~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 0 3 1;
este apenas um comentrio;
Figura 1. Patch do Pd (esquerda) e o seu correspondente arquivo de texto (direita).

3. Implementao
Existem trs maneiras de tornar um software acessvel: 1) Reprogramao:
modificao do cdigo fonte (desde que disponvel); 2) Interao atravs de ferramentas de
acessibilidade, como o caso dos chamados leitores de tela, e 3) Uso de software alternativo
para criar ou editar o arquivo de armazenamento do software original. Optou-se neste estudo
pelo terceiro item, utilizando-se um editor de texto simple (como o bloco de notas do
Windows) para editar diretamente o arquivo salvo no formato do Pd. Este mtodo conhecido
como Engenharia Reversa, que, de acordo com CHIKOFSKY (1990: 15), o processo de
analisar um sistema para identificar seus componentes e como se interrelacionam, e criar
representaes do sistema em outra forma ou nvel mais alto de abstrao.
O Pd tambm um software livre. Segundo STALLMAN (2010: 3) todo software
livre deve garantir a seus usurios a liberdade de estud-lo e modific-lo, oferecendo livre
acesso ao seu cdigo fonte. Cdigo Fonte2. O cdigo fonte do Pd3, de livre acesso e
portanto permite ser analisado. Verificou-se assim que os arquivos do Pd possuem um
formato textual simples, que pode ser facilmente compreendido. Em um arquivo do Pd, as
informaes so salvas em registros. Cada registro escrito em uma linha do arquivo. Cada
linha inicia sempre com uma cerquilha (#) e finaliza com um ponto e vrgula (;), como pode
ser observado na figura 1.
Logo aps a cerquilha existe um caractere descritor do tipo do registro, o qual
pode ser um entre estes trs tipos de descritores: X, N ou A. Tais descritores identificam
respectivamente: Elementos, Janelas e Listas de dados. Cada descritor seguido por um
elemento. No exemplo da figura 1, na quarta linha, o elemento um objeto (obj), seguido de
XXVI Congresso da Associao Nacional de Pesquisa e Ps-Graduao em Msica B. Horizonte - 2016

parmetros, que so: a posio horizontal do objeto na tela (210), sua posio vertical (94),
um parmetro indicando que o elemento um oscilador senoidal de udio (osc~).
Os objetos do Pd so interconectados, na interface grfica por segmentos de retas,
que so automaticamente desenhadas em trao fino (para dados de controle) ou grossas (para
dados de udio). Estas conexes so registradas no arquivo textual atravs do elemento
connect. Na figura 1 (nas linhas 6, 7, 8 e 9) tem-se a presena destes elementos.
A sintaxe do elemento connect obedece seguinte regra: a cerquilha (#), o
descritor de tipo (X), o descritor de elemento (connect) e 4 parmetros. Os nmeros dos
parmetros obedecem a lgica da linguagem C, onde o primeiro nmero o 0 e o n-simo o
N-1 (assim, o parmetro de valor n representado por n-1). As conexes so sempre feitas da
sada (outlet) de um elemento para a entrada (inlet) de outro. Exemplificando, na figura 1,
linha 8, os parmetros so (2, 0, 3, 0). O primeiro parmetro indica qual elemento ter seu
inlet conectado. No caso, o terceiro objeto (osc~), representado pelo valor 2 (3-1=2). O
segundo parmetro representa qual outlet deste objeto ser conectado. No caso, o primeiro (e
nico), representado por 0 (1-1=0). O terceiro parmetro representa qual objeto ter seu inlet
conectado. No caso, o quarto elemento (dac~), representado por 3 (4-1=3). Por fim, o ltimo
parmetro representa qual inlet deste objeto receber a conexo. No caso, o primeiro,
representado por 0 (1-1=0). A linha abaixo (linha 9) cujos parmetros so (2 0 3 1), representa
praticamente a mesma conexo entre os mesmoe objetos, com a exceo do ltimo parmetro,
que representa a conexo ao segundo inlet (2-1=1) do objeto dac~. Assim, no arquivo textual
do Pd, os objetos no possuem um nome especfico. Estes so apenas numerados
sequencialmente (conforme aparecem ordenados na lista de definies dos elementos).
Uma outra necessidade, importante para facilitar o processo de programao e
depurao do cdigo, a insero de linhas de comentrios. Estas funcionam como lembretes
ao programador acerca do que est sendo realizado em cada parte do cdigo. No encontrou-
se uma indicao, na documentao disponvel, para a sintaxe de insero de uma linha de
comentrio, na programao textual do Pd. No entanto, aps diversos experimentos, o
primeiro autor deste artigo conseguiu uma soluo adequada; introduzir uma linha de
comentrio no arquivo textual bastando para isso no utilizar o cerquilha inicial e finalizar o
comentrio com um ponto e vrgula (como mostra a linha 10 da figura 1).
A incluso de comentrios claros e relevantes, segundo JONES (2010: 107),
parte essencial das boas prticas de programao. O formato de insero de comentrios,
testado na verso 0.46 do Pd, consistindo em inserir uma linha que no comece com a
cerquilha e que termine com um ponto e vrgula, gera um aviso (warning) na janela principal
XXVI Congresso da Associao Nacional de Pesquisa e Ps-Graduao em Msica B. Horizonte - 2016

do Pd, porm, at onde testamos, este no corrompe o arquivo, nem tampouco impede o
funcionamento correto e robusto do patch.

4. Acessibilidade Msica Computacional


A possibilidade de programar patches de Pd de modo textual traz grandes
vantagens para o usurio deficiente visual. Atravs de ferramentas de software que lem
arquivos de texto (os leitores de tela4), o usurio deficiente visual pode criar e editar arquivos
de texto. Se estes forem devidamente elaborados, de acordo com as regras brevemente
exemplificadas na figura anterior, um usurio deficiente visual pode programar um patch em
Pd, o que, de forma tradicional (a programao visual do Pd), seria impossvel de ser
realizado. O objetivo deste trabalho assim propiciar a acessibilidade e a insero do msico
deficiente visual na programao do Pd.
Um caso de utilizao deste procedimento o relato do Prof. Vilson Zattera, co-
autor deste trabalho, doutor em etnomusicologia, msico (violonista) e deficiente visual.
Segundo ele: ...venho buscando acessibilidade computacional para o meu aprimoramento
profissional e pessoal em msica. Atualmente existem alguns softwares que so
razoavelmente acessveis ou que possuem uma certa acessibilidade (alguns software livres,
como, o Audacity5). No entanto, os softwares que oferecem alguma acessibilidade so
comerciais, portanto com um alto custo. Um dos mais importantes recursos de acessibilidade
para deficientes visuais so os leitores de telas, que lem textos de uma maneira eficiente.
Porm esses mesmos programas apresentam bastante limitaes para a leitura de outros
arquivos, como pginas da internet, tornando-se quase que ineficientes na questo da leitura
de grficos e imagens. Como a maioria dos softwares possuem uma interface grfica, alguns
softwares, como Pd, se demonstravam at ento totalmente inacessveis. O Pd, que um
ambiente computacional de programao visual, se mostrava impossvel ou de extrema
dificuldade para que eu conseguisse oper-lo. Comeamos assim a investigar como acessar
esse programa juntamente com o leitor de tela. Conseguimos abrir o menu mvel do Pd,
porm nenhum dos comandos que tentamos executar se mostraram eficiente, pois, por esse
mtodo no possvel conectar os objetos do Pd. Posteriormente abrimos um patch do Pd
atravs do editor de texto bloco de notas. Inicialmente isso se mostrou bastante confuso e
complexo, porm comeamos a mapear os comandos, nmeros e expresses que aparecem no
arquivo de texto e assim a fazer uma relao com a parte visual. Isso abriu para ns, como
pesquisadores (e para mim, como deficiente visual) uma possibilidade indita de poder
trabalhar com um programa como o Pd que , em teoria, totalmente visual. Atravs do
XXVI Congresso da Associao Nacional de Pesquisa e Ps-Graduao em Msica B. Horizonte - 2016

mapeamento e da identificao dessas expresses, verificamos que podemos fazer toda e


qualquer atividade que possvel realizar no Pd de modo visual, atravs do texto. Como um
msico deficiente visual essa nova possibilidade de trabalhar com o Pd certamente ir ampliar
o meu conhecimento dentro da msica computacional, em termos de criao sonora,
performance e composio musical, bem como ser um grande incentivo para continuar essa
pesquisa de ampliao da acessibilidade para msicos deficientes. A partir dessa pesquisa
pretendemos tornar realidade a acessibilidade para msicos com deficincia visual que hoje
em dia se encontra em estagio precrio, se comparado aos msicos videntes.

5. Discusso
O procedimento utilizado para garantir acessibilidade ao Pd para o msico
deficiente visual foi a edio textual do arquivo de programao do patch. A principal
vantagem deste mtodo permitir que um msico com deficincia visual crie patches com o
Pd, que um software principalmente visual, porm atravs da edio de seus arquivos de
textos correspondentes, sem a necessidade de utilizar a interface grfica do editor padro do
Pd. Arquivos texto so facilmente acessveis pelo msico deficiente visual, seja atravs do uso
de leitores de tela (que convertem textos em fala) ou atravs de dispositivos conhecidos como
displays braille6 que so capazes de converter dinamicamente linhas de texto em caracteres
braille.
No entanto, deparou-se com duas questes deste mtodo textual de criao de
patches. A primeira a inexistncia de um formato oficial para a incluso de comentrios no
arquivo de armazenamento, em formato .pd. A soluo encontrada funcionou na verso
0.46 e em algumas anteriores, mas no se pode garantir que ter suporte em verses futuras.
No de fato uma boa prtica de programao quando um programa, ao ser executado, gera
avisos (warnings), mesmo que estes no sejam erros que impeam ou interfiram com o seu
bom funcionamento. A segunda dificuldade foi a ausncia de um modo de nomear os
elementos, que so referenciados por nmeros, o que em geral no costuma ser considerado
amigvel. GOODLIFE (2007: 40) afirma que um nome marca um elemento como uma
entidade distinta, transformando este, de um conceito etreo, para uma realidade bem
definida7.
A utilizao de nomes amigveis para identificar elementos da programao
textual poderia ser realizada atravs da utilizao de um software intermedirio,
especialmente desenvolvido para este fim. A vantagem deste mtodo, alm do uso para
nomear objetos, seria tambm permitir a incluso de comentrios no cdigo. No entanto, a
XXVI Congresso da Associao Nacional de Pesquisa e Ps-Graduao em Msica B. Horizonte - 2016

principal desvantagem seria a curva de aprendizagem que o msico deficiente visual teria que
passar para aprender e dominar um novo software, alm da possvel incluso de erros (bugs)
no cdigo traduzido, situao esta que qualquer novo desenvolvimento est sujeito.

6. Concluso
Este trabalho apresenta uma pesquisa em andamento, que est sendo realizada no
Laboratrio de Acessibilidade (LAB) da UNICAMP por alunos do PIBIC EM, intitulado:
Ferramentas de software e hardware livre para a acessibilidade musical do deficiente visual.
Este projeto visa o auxlio na utilizao, desenvolvimento e apoio utilizao de ferramentas
de software para msicos deficientes visuais, em processos de anlise, composio e
performance musical. Este artigo tratou da viabilizao da acessibilidade do msico deficiente
visual ao Pd, uma das mais importantes ferramentas de programao para msica
computacional e instalaes multimodais operando em em tempo-real. Aps cumprida a etapa
de mapeamento da semntica e da sintaxe que compem a linguagem textual por trs da
programao visual do Pd, o prximo passo ser redigir um documento, em texto acessvel,
para o ensino desta metodologia, e distribu-la gratuitamente aos msicos deficientes visuais
interessados em aprender a programar em Pd. Feito isto, este documento dever passar por
diversas revises (vindas dos prprios usurios) at que este se torne suficientemente
completo e coerente. Este projeto se estender desde a questo da utilizao e implementao
de ferramentas computacionais de auxlio ao acesso msica, para compositores e
instrumentistas com deficincia visual, at a explorao da interatividade musical, dada pela
excelncia aural destes msicos, no que tange sua destacada capacidade de localizao
espacial sonora, e que pode assim constituir uma vantagem da percepo sonora do deficiente
visual, podendo esta ser utilizada na anlise, criao e performance musical contempornea.

Referncias:

CHIKOFSKY, Elliot J.; CROSS, James H.. Reverse engineering and design recovery: A
taxonomy. IEEE Software, v. 7, n. 1, p. 13-17, 1990.
GOODLIFFE, Pete. Code craft: the practice of writing excellent code. No Starch Press, 2007.
JAMES, W. The principles of psychology. New York: H. Holt and Company. Page 609. 1893.
JONES, Caper. Software Engineering Best Practices: Lessons from Successful Projects in the
Top Companies. New York, NY, USA: McGraw-Hill, Inc, 2010
PUCKETTE, Miller. The patcher. In Proceedings of International Computer Music
Conference. 1988.
STALLMAN, Richard; LESSIG, Lawrence. Free software, free society : selected essays of
Richard Stallman. Boston, MA: Free Software Foundation, 2010.
1
https://puredata.info/docs/developer/PdFileFormat (acessado em abril de 2016)
2
Instrues escritas em uma linguagem facilmente legvel por humanos e que posteriormente so convertidas para o
chamado cdigo binrio que ser executado por um computador
3
https://sourceforge.net/p/pure-data/pure-data/ci/master/tree/src (acessado em abril de 2016)
4
https://pt.wikipedia.org/wiki/Leitor_de_tela (acessado em abril de 2016)
5
http://www.audacityteam.org (acessado em abril de 2016)
6
https://en.wikipedia.org/wiki/Refreshable_braille_display (acessado em abril de 2016)
7
Goodlife dedicou o captulo 3 inteiro de sua obra Code Craft para chamar a ateno importncia deste fato, o ttulo
do captulo uma resenha de seu prprio contedo: O que h em um nome - dando nomes significativos para coisas
significativas

Você também pode gostar