Você está na página 1de 3

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA DE MSICA PROGRAMA DE PS-GRADUAO DOUTORADO EM COMPOSIO DISCIPLINA: Estudos EspeciaisMUS524 PROFESSOR: Pedro Krger

ALUNO: Cristiano Severo Figueir DATA: 6 de julho de 2010


Relatrio: Anlise Humdrum no Pure data

Introduo

Esse trabalho tem como objetivo determinar um mtodo de comunicao do Humdrum com o Pure data. O Pd uma linguagem grca orientada ao objeto que surgiu como linguagem voltada para a criao de msica eletrnica e nos ltimos anos foi-se desenvolvendo inmeras bibliotecas de objetos especializados em modelos matemticos, modelamentos de interface grca, diversas implementaes em processamento e anlise em tempo-real de sinal de udio, vdeo, rede e hardware. Dentro de um projeto de msica interativa, so necessrias informaes quantitativas quanto a variao de parmetros musicais pelo msico, como por exemplo quais acordes foram mais usados nos ltimos 12 compassos. Nesse sentido o Humdrum uma boa plataforma de anlise simblica de estruturas musicais. Nesse trabalho, procuramos investigar de que maneira podem se conectar as duas linguagens com vizualizao de dados em Gem. Na gura 1 mostramos a viso geral da interface e controle do prottipo, com a opo de se carregar um arquivo midi, que pode ser substitudo por arquivos midi gerados em tempo real durante uma performance.

Parseando strings no Pd
Figura 1: interface traz diversas informaes sobre o arquivo enviadas para um arquivo de texto como por exemplo: HUMDRUM DATA

O parser funciona em 3 instncias: 1) Abre-se um arquivo midi com o objeto [openpanel] atravs de uma janela de dilogo, o path do arquivo substitui a varivel dlar 1 como argumento para o programa mid2hum que converte arquivos midi para o formato kern (.krn), usado pelo humdrum. midi2hum $1 > m2h.krn O cdigo acima formatado numa mensagem e enviado ao objeto [shell] onde converte o arquivo midi e envia o resultado para um novo arquivo chamado m2h.krn. 2) Nessa etapa onde se aplica os comandos do humdrum ao arquivo gerado. No caso o comando census -k m2h.krn > m2h.txt

Number Number Number Number Number Number Number

of of of of of of of

data tokens: null tokens: multiple-stops: data records: comments: interpretations: records:

2510 0 470 2511 817 301 3629

KERN DATA Number of note-heads: Number of notes: Longest note: Shortest note: Highest note: Lowest note: Number of rests: Maximum number of voices: Number of single barlines: Number of double barlines: 2491 2209 2 384 gggg# FFF 310 4 237 0

Visualizao com GEM

Os valores de nmeros de notas e nmero de vozes so visualizados com objetos da biblioteca Gem (Graphics Environment for Multimedia). No caso os 2 parmetros so enviados para 2 cubos 3D onde os valores so lidos como valores de tamanho dos cubos.

3) Nessa parte expomos um mtodo de navegar e procurar por informaes no arquivo de texto. O cdigo usado como modelo, est assinalado na gura 2. O arquivo m2h.txt lido pelo objeto [msgle] e envia uma lista com todo contedo do arquivo para os objetos [list-nd] e [listseek]. Em [list-nd] podemos procurar por um smbolo especco dentro da lista e nos retorna a posio do smbolo. No caso do cdigo assinalado, vemos o smbolo notes: , porm como desejamos o valor de notes: pegamos a posio de notes: na lista e adicionamos um nmero para acessar o lugar do valor de notes: na lista. Essa posio enviada para [list-seek] que retorna o valor ou smbolo na posio desejada. Como teste escolhemos os parmetros notes: e voices:, respectivamente nmero de notas e nmero de vozes encontradas no arquivo. Figura 3: GEM

Figura 4: GEM texto

4
Figura 2: parser

Concluso

Nesse trabalho desenvolvemos uma metodologia simples de unir duas linguagens muito usadas em pesquisa de msica. Essa metodologia uma maneira clara de como acessar outra linguagem dentro do Pd enriquecendo as possibilidades da linguagem.

Figura 5: gemwin

Você também pode gostar