You are on page 1of 255

Universidade de So Paulo

Instituto de Fsica de So Carlos


Departamento de Fsica e Informtica
Grupo de Fsica Computacional e Instrumentao Aplicada

RENATO FABBRI

Msica no udio digital: descrio psicofsica e


caixa de ferramentas

So Carlos
2013

RENATO FABBRI

Msica no udio digital: descrio psicofsica e


caixa de ferramentas

Dissertao apresentada ao Programa de Psgraduao em Fsica do Instituto de Fsica de


So Carlos da Universidade de So Paulo, para a
obteno do ttulo de Mestre em Cincias.
rea de Concentrao: Fsica Aplicada
Orientador: Prof. Dr. Osvaldo Novais de Oliveira Junior
Colaborador: Prof. Dr. Luciano da Fontoura Costa

Verso Corrigida
(verso original disponvel na Unidade que aloja o Programa)

So Carlos
2013

AUTORIZO A REPRODUO E DIVULGAO TOTAL OU PARCIAL DESTE


TRABALHO, POR QUALQUER MEIO CONVENCIONAL OU ELETRNICO PARA
FINS DE ESTUDO E PESQUISA, DESDE QUE CITADA A FONTE.

Ficha catalogrfica elaborada pelo Servio de Biblioteca e Informao do IFSC,


com os dados fornecidos pelo(a) autor(a)
Fabbri, Renato
Msica no udio digital: descrio psicofsica e
caixa de ferramentas / Renato Fabbri; orientador
Osvaldo Novais de Oliveira Junior - verso corrigida
-- So Carlos, 2013.
253 p.
Dissertao (Mestrado - Programa de Ps-Graduao em
Fsica Aplicada) -- Instituto de Fsica de So Carlos,
Universidade de So Paulo, 2013.
1. Som. 2. udio digital. 3. Msica. 4.
Psicofsica. 5. Arte e tecnologia. I. Oliveira
Junior, Osvaldo Novais de, orient. II. Ttulo.

AGRADECIMENTOS

Agradeo ao Prof. Luciano da Fontoura Costa e ao Prof. Osvaldo Novais de Oliveira Junior
pela oportunidade e pela orientao deste trabalho.

Agradeo ao corpo de funcionrios do IFSC, pela prestatividade e eficincia em todos os momentos que precisei.

Agradeo aos Prof. Rafael Santos Mendes e Prof. Adolfo Maia Junior pelas orientaes na
gnese deste trabalho.

Agradeo minha famlia, em especial minha esposa Thas Teixeira Fabbri e ao meu filho
Antnio Anzoategui Fabbri.

Agradeo ao meu irmo Ricardo Fabbri e ao amigo Vilson Vieira da Silva Junior pelas profcuas
colaboraes acadmicas, artsticas e socialmente engajadas.

Agradeo aos participantes do labMacambira.sf.net pelas colaboraes diretas e indiretas nos


software, apresentaes e articulaes desde junho de 2011. Em especial agradeo ao Daniel Penalva, Caleb Macarenhas, Chico Simes, Fbio Simes, Daniel Marostegan, Marcos
Mendona, Geraldo Magela Rocha, Guilherme Lunhani, Patrcia Ferraz, Glerm Soares, Danilo
Shiga, Edson "Presto" Corra, Vanessa Ferreira e Srgio Teixeira de Carvalho. Agradeo aos
demais colaboradores das listas de email, IRC, AA e outros canais.

Agradeo ao Cultura Viva e aos pontos de cultura pelo apoio fundamental a este e outros trabalhos. Agradeo em especial a estes Pontes e Cultura Digital e Ao Gri pelo suporte a este
trabalho em aes regionais e nacionais: CDTL (PE), JuntaDados.org (BA), Ns Digitais (SP),
Casa dos Meninos (SP), Nina Gri (SP), Ponto da Eco (RJ), Casa de Cultura Tain (SP) e
Comisso Nacional dos Pontos de Cultura - CNPdC (GO).

Agradeo s comunidades de cultura e software livre por todos os conhecimentos e tecnologias


repassados e que compem esta contribuio.

Music is a hidden arithmetic exercise of the soul,


which does not know that it is counting.
Gottfried Leibniz (1646-1716)

Music is a hidden metaphysical exercise of the soul,


which does not know that it is philosophizing.
Arthur Schopenhauer (1788-1860)

from Pantheon import Obatal


from World import sharing, kitten
while True:
if sharing == 0:
Obatal.kill( kitten )
Autoria coletiva e ano nima (2010)

RESUMO
FABBRI, R. Msica no udio digital: descrio psicofsica e caixa de ferramentas. 2013.
253p. Dissertao (Mestrado) - Instituto de Fsica de So Carlos, Universidade de So Paulo,
So Carlos, 2013.

A representao dos elementos bsicos da msica - tais como notas, ornamentos e estruturas
intervalares - em termos do som discretizado bastante utilizada em software e rotinas para
criao musical e tratamento sonoro. No h, entretanto, uma abordagem concisa que relacione estes elementos s amostras sonoras. Nesta dissertao, cada elemento musical descrito
por equaes que resultam diretamente nas sequncias temporais do som em sua representao
discretizada. O elemento fundamental, a nota musical bsica com durao, volume, altura e
timbre, relacionado quantitativamente s caractersticas do sinal digital. As variaes internas, como tremolos, vibratos e flutuaes espectrais, tambm so contempladas, o que permite
sintetizar notas com inspirao nos instrumentos musicais reais alm de sonoridades novas. A
partir desta representao das notas, dispomos de recursos para a gerao de estruturas musicais, como a mtrica rtmica, os intervalos de altura e os ciclos. As equaes deram origem a
uma caixa de ferramentas computacionais: scripts que realizam cada equao e geram exemplos sonoros simples. Nomeamos massa, Msica e udio em Sequncias e Sries Amostrais,
este ferramental e sua eficcia foi comprovada com a sntese de pequenas peas usando notas
bsicas, notas incrementadas e notas em msica. possvel, tambm, sintetizar lbuns inteiros
atravs de colagens dos scripts e parametrizao especificada pelo usurio. Com o paradigma
de implementao em cdigo aberto, a (caixa de ferramentas) massa pode ser expandida em
processos de co-autoria e usada livremente por msicos, engenheiros e outros interessados. De
fato, o sistema j foi empregado por usurios externos para a produo de msicas, apresentaes artsticas, experimentos psico-acsticos e a difuso da linguagem computacional atravs
do apelo ldico dos artefatos audiovisuais.
Palavras-chave: Som. udio digital. Msica. Psicofsica. Arte e tecnologia.

ABSTRACT
FABBRI, R. Music on digital audio: psychophysical description and toolbox. 2013. 253p.
Dissertao (Mestrado) - Instituto de Fsica de So Carlos, Universidade de So Paulo, So
Carlos, 2013.

The representation of the basic elements of music - such as notes, ornaments and intervalar
structures - in terms of discrete audio signal is often used in software for music creation and design. Nevertheless, there is no unified approach that relates these elements to the sound discrete
samples. In this dissertation, each musical element is described by equations that represent the
sonic time samples, which are then implemented in scripts within a software toolbox, referred
to as massa (Music and Audio in Sequences and Samples). The fundamental element, the musical note with duration, volume, pitch and timbre, is related quantitatively to the characteristics
of the digital signal. Internal variations, such as tremolos, vibratos and spectral fluctuations,
are also considered, which enables the synthesis of notes inspired by real instruments and new
sonorities. With this representation of notes, resources are provided for the generation of musical structures, such as rhythmic meter, pitch intervals and cycles. The efficacy of massa was
confirmed by the synthesis of small musical pieces using basic notes, incremented notes and
notes in music. It is possible to synthesize whole albums through collage of the scripts and parameterization specified by the user. With the paradigm of open source implementation, massa
toolbox can be expanded in co-authorship processes and used freely by musicians, engineers
and other interested parties. In fact, massa has already been employed by external users for
diverse purposes which include music production, artistic presentations, psychoacoustic experiments and computer language diffusion where the appeal of audiovisual artifacts is exploited.
Keywords: Sound. Digital audio. Music. Psychophysics. Art and technology.

LISTA DE FIGURAS E TABELAS

Figura 1.1 -

Som digital em modulao por cdigo de pulsos (PCM): 25 amostras representadas por 4 bits cada uma. . . . . . . . . . . . . . .

Figura 2.1 -

Formas de onda musicais bsicas. As formas de onda sintticas


esto em (a) e as formas de onda reais esto em (b). . . . . . . .

Figura 2.2 -

35

44

Espectros das ondas sonoras musicais artificiais bsicas. A senoide tem o espectro puntual, a triangular apresenta somente os
harmnicos mpares, caindo a 6dB por oitava; a onda quadrada
tem somente os harmnicos mpares, caindo a 12dB por oitava;
a onda dente de serra apresenta todos os harmnicos, caindo a
6dB por oitava. . . . . . . . . . . . . . . . . . . . . . . . . . .

Figura 2.3 -

45

Espectros das ondas sonoras de uma nota de obo natural e de


perodo amostrado. O som natural possui flutuaes nos harmnicos e rudos, j o som de perodo amostrado possui espectro
perfeitamente harmnico. . . . . . . . . . . . . . . . . . . . . .

Figura 2.4 -

47

Oscilao de 2 amostras (frequncia mxima em qualquer fa ).


O primeiro coeficiente reflete o deslocamento (offset ou bias) e
o segundo coeficiente especifica a amplitude da oscilao. . . .

Figura 2.5 -

49

3 amostras fixas apresentam uma s frequncia no nula. c1 = c2


e w1 w2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

Figura 2.6 -

Componentes frequenciais em 4 amostras. . . . . . . . . . . . .

51

Figura 2.7 -

Formas de onda bsicas em 4 amostras. . . . . . . . . . . . . .

52

Figura 2.8 -

Componentes frequenciais em 6 amostras: 3 senoides se somam


ao bias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Figura 2.9 -

53

Formas de onda bsicas em 6 amostras: as ondas triangular e


quadrada possuem os harmnicos mpares, mas em propores
e fases diferentes; a dente de serra possui tambm o harmnico
par. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Figura 2.10 -

53

Deteco de localizao espacial de fonte sonora: esquema utilizado para clculo da diferena de tempo interaural (DTI) e da
diferena de intensidade interaural (DII). . . . . . . . . . . . . .

Figura 2.11 -

Mixagem de trs sequncias sonoras. As amplitudes so sobrepostas diretamente. . . . . . . . . . . . . . . . . . . . . . . . .

Figura 2.12 -

60

Concatenao de trs sequncias sonoras atravs da justaposio


temporal de suas amostras. . . . . . . . . . . . . . . . . . . . .

Figura 2.13 -

55

61

Procedimento de busca em tabela (conhecido como Lookup Table) para sntese de sons em frequncias diferentes a partir de
uma nica forma de onda em alta resoluo. . . . . . . . . . . .

Figura 2.14 -

Transies de intensidade para diferentes valores de (veja equaes 2.39 e 2.40). . . . . . . . . . . . . . . . . . . . . . . . . .

Figura 2.15 -

64

67

Interpretao grfica da convoluo. Cada amostra resultante


a soma das amostras anteriores de um sinal uma a uma multiplicadas pelas amostras retrgradas do outro sinal. . . . . . . . . .

70

Figura 2.16 -

Convoluo com o impulso: deslocamento (a), linhas de delays


(b) e sntese granular (c). Dispostos em ordem crescente de densidade de pulsos. . . . . . . . . . . . . . . . . . . . . . . . . .

Figura 2.17 -

72

Mdulos da resposta em frequncia (a), (b), (c) e (d) respectivamente dos filtros IIR das equaes 2.45, 2.46, 2.48 e 2.49 para
diferentes frequncias de corte, frequncias centrais e larguras
de banda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Figura 2.18 -

Rudos coloridos realizados atravs das equaes 2.50, 2.51, 2.52,


2.53, 2.54: espectros e ondas sonoras resultantes. . . . . . . . .

Figura 2.19 -

74

77

Espectrograma de um som com vibrato senoidal de 3Hz e profundidade de uma oitava em uma dente de serra de 1000Hz (considerada fa = 44.1kHz). . . . . . . . . . . . . . . . . . . . . . .

Figura 2.20 -

81

Tremolo de profundidade VdB = 12dB com padro oscilatrio de


uma dente de serra em f 0 = 1.5Hz em uma senoide de f = 40Hz
(considerada taxa de amostragem fa = 44, 1kHz). . . . . . . . .

Figura 2.21 -

83

Envoltria ADSR (Attack, Decay, Sustain, Release) e uma sequncia sonora arbitrria submetida envoltria. A variao linear de
amplitude est acima. Abaixo a variao de amplitude exponencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93

Tabela 2.22 -

Intervalos musicais, suas notaes tradicionais, classificaes


bsicas de dissonncia e nmero de semitons. As consonncias
perfeitas so os unssonos, as quintas e as oitavas justas (J). As
consonncias imperfeitas so as teras e as sextas maiores (M) e
menores (m). As dissonncias fortes so as segundas menores e
stimas maiores. As dissonncias brandas so as segundas maiores e as stimas menores. O primeiro caso especial consiste na
quarta justa, que consonante perfeita se considerada uma inverso da quinta justa, caso contrrio pode ser considerada uma
dissonncia ou uma consonncia imperfeita. O segundo caso
especial o trtono (4aum, 5dim, tri). Este consonante em
algumas culturas. J para a msica tonal, o trtono indica dominante e busca sua resoluo em uma tera ou sexta e, por esta
instabilidade, considerado intervalo dissonante. . . . . . . . .

Tabela 2.23 -

97

Resumo das funes harmnicas tonais para a escala maior. A


tnica o centro da msica, a dominante tende tnica e a subdominante se distancia da tnica. Os trs acordes podem, a princpio, serem substitudos livremente pelas respectivas relativas
ou anti-relativas. . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Figura 2.24 -

Movimentos diferenciados pelo contraponto com vistas a preservar a independncia entre as vozes. 3 tipos de movimentos:
direto, contrrio e oblquo, categorizam as possibilidades. O movimento paralelo um tipo de movimento direto. . . . . . . . . 109

Tabela 2.25 -

Transio das duraes ouvidas individualmente para alturas. . . 110

Figura 2.26 -

Divises e aglomeraes do pulso musical para estabelecimento


de mtrica. Ao lado esquerdo esto as divises da semnima estabelecida como pulso. Ao lado direito, frmulas de compasso
que especificam as mesmas mtricas, mas na escala das aglomeraes do pulso musical. . . . . . . . . . . . . . . . . . . . . . 111

Figura 2.27 -

Distines cannicas do clmax musical em uma melodia e outros domnios. As possibilidades diferenciadas so: clmax no
comeo, clmax na primeira metade, clmax no meio, clmax na
segunda metade, clmax no fim. No est especificado o eixo das
ordenadas pois pode no haver variao paramtrica real, neste
caso a estrutura uma referncia. . . . . . . . . . . . . . . . . . 117

Tabela 2.28 -

Change Ringing: Peal (padro) com 3 sinos. As permutaes esto entre as ordenaes. Cada linha uma ordenao dos sinos,
cada ordenao tocada, uma linha por vez. . . . . . . . . . . . 119

LISTA DE RELAES ANALTICAS


DESCRITAS E IMPLEMENTADAS
COMPUTACIONALMENTE NO
APNDICE A

Equao

2.1 - Sequncia de amostras de um udio PCM.

Equao

2.2 - Potncia.

Equao

2.3 - Decibels entre dois udios.

Equao

2.4 - Amplitude dobrada em decibels.

Equao

2.5 - Potncia dobrada em decibels.

Equao

2.7 - Variao de amplitude no volume dobrado (10 dBs).

Equao

2.8 - Converso de decibels em variao de amplitude.

Equao

2.9 - Representao bsica de uma sequncia peridica.

Equao

2.10 - Sequncia infinita senoidal.

Equao

2.11 - Sequncia infinita de uma onda dente de serra.

Equao

2.12 - Sequncia infinita de uma onda triangular.

Equao

2.13 - Sequncia infinita de uma onda quadrada.

Equao

2.14 - Sequncia infinita de uma forma de onda sampleada.

Equao

2.15 - Recomposio das amostras temporais com base nos coeficientes espectrais.

Equao

2.16 - Recomposio das amostras temporais reais em termos do mdulo e fase.

Equao

2.17 - Nmero de pares de coeficientes relativos mesma frequncia.

Equao

2.18 - Coeficientes equivalentes em termos das frequcias que representam.

Equao

2.19 - Equivalncias dos mdulos dos coeficientes espectrais.

Equao

2.20 - Equivalncias das fases dos coeficientes espectrais.

Equao

2.21 - Reconstruo das amostras temporais em termos dos coeficientes pareados


e independentes.

Equao

2.22 - Nota bsica com durao, frequncia e altura.

Equao

2.23 - Forma de onda sinttica ou amostrada.

Equao

2.24 - Nota bsica com forma de onda especificada.

Equao

2.25 - Distncia de uma fonte sonora a cada ouvido.

Equao

2.26 - Diferena de Tempo Interaural (DTI).

Equao

2.27 - Diferena de Intensidade Interaural (DII).

Equao

2.28 - Sequncia binaural PCM com DTI e DII para localizao espacial.

Equao

2.29 - ngulo resolvido pela implementao da DTI e DII.

Equao

2.30 - Mixagem de N sequncias.

Equao

2.31 - Concatenao de N sequncias.

Equao

2.32 - Procedimento de busca em tabelas (Lookup Table).

Equao

2.33 - Frequncias em cada amostra em uma variao linear.

Equao

2.34 - ndices para busca na tabela em uma variao linear de frequncia.

Equao

2.35 - Sequncia amostral em uma variao linear de frequncias.

Equao

2.36 - Frequncias em cada amostra em uma variao exponencial.

Equao

2.37 - ndices para busca na tabela em uma variao exponencial de frequncia.

Equao

2.38 - Sequncia amostral em uma variao exponencial de frequncias.

Equao

2.39 - Sequncia de amplitudes em uma variao exponencial.

Equao

2.40 - Sequncia amostral em uma variao exponencial de amplitude.

Equao

2.41 - Sequncia de amplitudes em uma variao linear de amplitude.

Equao

2.42 - Sequncia amostral em uma variao exponencial de amplitude dada em


decibels.

Equao

2.43 - Convoluo de sequncias reais e finitas.

Equao

2.44 - Equao a diferenas para aplicao temporal de filtros IIR.

Equao

2.45 - Coeficientes de um filtro passa-baixas bem comportado de primeira ordem


com frequncia de corte varivel.

Equao

2.46 - Coeficientes de um filtro passa-altas bem comportado de primeira ordem


com frequncia de corte varivel.

Equao

2.47 - Variveis auxiliares de um filtro n de segunda ordem.

Equao

2.48 - Coeficientes de um filtro passa-banda de segunda ordem com frequncia


central e largura de banda variveis.

Equao

2.49 - Coeficientes de um filtro rejeita-banda de segunda ordem com frequncia


central e largura de banda variveis.

Equao

2.50 - Coeficientes espectrais para sntese de rudo branco.

Equao

2.51 - Coeficientes espectrais para sntese de rudo rosa.

Equao

2.52 - Coeficientes espectrais para sntese de rudo marrom.

Equao

2.53 - Coeficientes espectrais para sntese de rudo azul.

Equao

2.54 - Coeficientes espectrais para sntese de rudo violeta.

Equao

2.55 - Coeficientes espectrais para sntese de rudo preto.

Equao

2.56 - ndices auxiliares para um vibrato de frequncia varivel.

Equao

2.57 - Expoentes auxiliares para um vibrato de frequncia varivel.

Equao

2.58 - Frequncias por amostra de um vibrato de frequncia e profundidade variveis.

Equao

2.59 - ndices um vibrato de frequncia e profundidade variveis.

Equao

2.60 - Amostras de um udio com vibrato de frequncia e profundidade variveis.

Equao

2.61 - Amplitudes por amostra de um tremolo de frequncia e profundidade variveis.

Equao

2.62 - Amostras de um udio com tremolo de frequncia e profundidade variveis.

Equao

2.63 - Espectro da sntese FM.

Equao

2.65 - Espectro da sntese AM.

Equao

2.66 - ndices auxiliares para sntese FM.

Equao

2.67 - Sequncia auxiliar para sntese FM.

Equao

2.68 - Sequncia de frequncias para cada amostra para sntese FM.

Equao

2.69 - ndices para sntese FM.

Equao

2.70 - Sequncia amostral resultante da sntese FM.

Equao

2.71 - Sequncia de amplitudes por amostra na sntese AM.

Equao

2.72 - Sequncia amostral resultante da sntese AM.

Equao

2.73 - Exemplo de vnculo entre a frequncia e parmetros do tremolo e do vibrato em um som.

Equao

2.74 - Equao bsica da frequncia observada no efeito Doppler.

Equao

2.75 - Amplitude observada no efeito Doppler.

Equao

2.76 - Frequncia efetiva observada no efeito Doppler.

Equao

2.77 - Primeiro perodo de uma reverberao.

Equao

2.78 - Segundo perodo de uma reverberao.

Equao

2.79 - Resposta ao impulso de uma reverberao.

Equao

2.80 - Envoltria ADSR com variaes lineares e logartmicas.

Equao

2.81 - Aplicao da envoltria ADSR em uma sequncia arbitrria.

Equao

2.22 - Intervalos musicais em nmero de semitons.

Equao

2.82 - Escalas simtricas na oitava divida em 12 notas.

Equao

2.83 - Escalas diatnicas.

Equao

2.84 - Sucesso de intervalos em uma escala diatnica.

Equao

2.85 - Escalas menores natural, harmnica e meldica.

Equao

2.86 - Trades maior, menor, diminuta e aumentada.

Subseo

2.3.1 - Relaes microtonais atravs de fraes de semitons ou atravs de quantidades inteiras de divises arbitrrias da oitava.

Subseo

2.3.2 - Relaes bsicas de harmonia tonal.

Subseo

2.3.3 - Regras bsicas de conduo de vozes com independncia.

Subseo

2.3.4 - Relaes bsicas de mtrica e rtmica.

Subseo

2.3.6 - Formao de arcos musicais atravs de estruturas direcionais.

Subseo

2.3.7 - Estruturas cclicas para a sntese musical.

Elementos de notao

abreviao de Herz, medida de frequncia, nmero de ocorrncias por segundo.

Hz

kHz abreviao de kilo Hertz, i.e. mil Herz.


m

metro.

mm

milmetro.

segundo.

m/s metros por segundo.


fa

frequncia de amostragem, taxa de amostragem.

durao da separao temporal entre um par de amostras consecutivas.

PCM sigla de Pulse Code Modulation, veja seo 1.1


sequncia S indexada em i.

Si
y

{si } x sequncia com elementos si com ndices de x a y incluso.


bxc

parte inteira de x.

VdB volume em decibels.

ento.

portanto.

tal que.

para todo.

aproximadamente.

equivalente.

operao mdulo, resto da diviso.

comprimento em amostras.

comprimento em amostras de perodo de onda.

durao temporal.

ai

fator multiplicativo de amplitude da i-sima amostra.

Sumrio

1 Introduo

33

1.1

Som em udio digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

1.2

Arte sonora e teoria musical . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

1.3

Implementao computacional . . . . . . . . . . . . . . . . . . . . . . . . . .

36

1.4

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

1.5

Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

2 Msica no som digitalizado


2.1

39

Caracterizao da nota musical em tempo discreto . . . . . . . . . . . . . . . .

39

2.1.1

Durao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

2.1.2

Volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

2.1.3

Altura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

2.1.4

Timbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

2.1.5

O espectro no som amostrado . . . . . . . . . . . . . . . . . . . . . . .

47

2.1.6

A nota bsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

2.1.7

Localizao espacial e espacializao . . . . . . . . . . . . . . . . . .

54

2.1.8
2.2

2.3

Usos musicais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

Variaes na nota musical bsica . . . . . . . . . . . . . . . . . . . . . . . . .

63

2.2.1

Tabela de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

2.2.2

Variaes incrementais de frequncia e intensidade . . . . . . . . . . .

65

2.2.3

Aplicao de filtros digitais . . . . . . . . . . . . . . . . . . . . . . . .

69

2.2.4

Rudos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

2.2.5

Tremolo e vibrato, AM e FM . . . . . . . . . . . . . . . . . . . . . . .

80

2.2.6

Usos musicais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

Organizao de notas em msica . . . . . . . . . . . . . . . . . . . . . . . . .

95

2.3.1

Afinao, intervalos, escalas e acordes . . . . . . . . . . . . . . . . . .

95

2.3.2

Harmonias atonal, tonal, expanso e modulao . . . . . . . . . . . . . 103

2.3.3

Contraponto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

2.3.4

Ritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

2.3.5

Repetio e variao: motivos e unidades maiores . . . . . . . . . . . . 113

2.3.6

Estruturas direcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

2.3.7

Estruturas cclicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

2.3.8

Idioma musical? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

2.3.9

Usos musicais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

3 Concluses e trabalhos futuros

123

REFERNCIAS

125

Apndice A -- Cdigo computacional dos procedimentos expostos no captulo 2

133

A.1 Cdigo Python das relaes descritas na seo 2.1 . . . . . . . . . . . . . . . . 133


A.2 Cdigo Python das relaes descritas na seo 2.2 . . . . . . . . . . . . . . . . 138
A.3 Cdigo Python das relaes descritas na seo 2.3 . . . . . . . . . . . . . . . . 150

Apndice B -- Cdigo Computacional das Peas Musicais

157

B.1 Peas referentes seo 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158


B.1.1 Quadros sonoros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
B.1.2 Reduced-fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
B.2 Peas referentes seo 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
B.2.1 Transita para metro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
B.2.2 Vibra e treme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
B.2.3 Tremolos, vibratos e a frequncia . . . . . . . . . . . . . . . . . . . . . 167
B.2.4 Trenzinho de caipiras impulsivos . . . . . . . . . . . . . . . . . . . . . 167
B.2.5 Ruidosa faixa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
B.2.6 Bela Rugosi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
B.2.7 Chorus infantil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
B.2.8 ADa e SaRa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
B.3 Peas referentes seo 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

B.3.1 Intervalos entre alturas . . . . . . . . . . . . . . . . . . . . . . . . . . 177


B.3.2 Cristais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
B.3.3 Micro tom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
B.3.4 Acorde cedo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
B.3.5 Conta ponto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
B.3.6 Poli Hit Mia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
B.3.7 Dirracional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

Apndice C -- Finite Groups in Granular and Unit Synthesis e a sntese de um EP

187

C.1 FIGGUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187


C.1.1 FIGGUS.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
C.1.2 tables.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
C.1.3 __init__.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
C.2 PPEPPS: msicas de um EP solvente . . . . . . . . . . . . . . . . . . . . . . . 188
C.2.1 RUNME make EP MUSIC.py . . . . . . . . . . . . . . . . . . . . . . 188
C.2.2 ter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
C.2.3 Benzina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
C.2.4 Clorofrmio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

Apndice D -- Sntese FM e AM em escala logartmica

199

Apndice E -- Anlise sonora e musical

201

E.1 Espectro em frequncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201


E.2 Eventos no tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
E.3 Anlise de partituras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

Apndice F -- Msica digital em domnios no digitais

203

F.1

Experimentos abertos em udio: LADSPAs, Wavelets e Redes Complexas . . . 203

F.2

udio e msica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206


F.2.1

Msica em tempo diferido: minimum-fi e FIGGUS . . . . . . . . . . . 206

F.2.2

Msica em tempo real: Livecoding e ABeatTracker (ABT) . . . . . . . 217

F.2.3

Msica na matria: EKP e AHT . . . . . . . . . . . . . . . . . . . . . 224

F.2.4

Msica no tecido social: Sabrina Kawahara, Audioexperiments, EstudioLivre.org, CDTL, juntaDados.org, Devolts.org, MSST, LabMacambira.sf.net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

F.3

Materiais didticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229


F.3.1

Tutoriais em texto e cdigo: python, filtros e nyquist, plugins lv2, metrics, carta mdias livres, contra-cultura digital

F.3.2
F.4

Screencasts e outros materiais em video . . . . . . . . . . . . . . . . . 232

Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
F.4.1

F.5

. . . . . . . . . . . . . 229

Tecnologias sociais: Stios, Contedos e Articulao . . . . . . . . . . 233

Momento atual e previses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

Apndice G -- Trabalhos relacionados e caracterizao das contribuies deste trabalho

239

G.1 Livros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240


G.2 Bibliotecas, linguagens e conjuntos de implementaes computacionais voltados para msica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
G.3 Aprofundamento sobre esta dissertao com base nos trabalhos visitados nas
subsees G.1 e G.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

33

Introduo

"Tradicionalmente a notao musical


vista como um cdigo atravs do qual
sons, ideias musicais ou indicaes para
execuo musical so registrados sob
forma escrita."
Edson S. Zampronha.(1)

Representar estruturas e artifcios musicais atravs das caractersticas do som discretizado a


proposta deste trabalho. Os resultados so relaes matemticas e suas implementaes computacionais. Uma descrio terica est no captulo 2 e o conjunto de scripts disponibilizados
no Apndice A e online. A caixa de ferramentas (toolbox) recebeu o nome massa (msica e
udio em sequncias e sries amostrais) e foi utilizada para fazer pequenas peas e montagens
focadas nos princpios expostos. O Apndice B possui uma relao destas montagens assim
como o diretrio exemplos_de_uso da massa.(2)

1.1

Som em udio digital

O som uma onda mecnica longitudinal de presso. A banda de frequncias compreendida


entre 20Hz e 20kHz apreciada pelo aparelho auditivo humano com variaes dependentes
da pessoa, das condies climticas e do som em si. Considerada a velocidade do som no ar

34

343.2 m/s, estes limites correspondem respectivamente aos comprimentos de onda


17.16 m e

343.2
20000

343.2
20

= 17.16 mm.(3)

A percepo humana do som envolve captaes pelos ossos, estmago e orelha, funes de
transferncia da cabea e dorso e processamento pelo sistema nervoso. Alm disso, o ouvido
um rgo dedicado captura destas ondas. Seu funcionamento decompe o som em seu
espectro senoidal e passa para o sistema nervoso.(3) Estas componentes senoidais so cruciais
para os fenmenos musicais, como se pode observar tanto na composio dos sons de interesse
para a msica quanto nas afinaes e escalas.(4) A subseo 2.1 expe a presena de senoides
no som discretizado e caracteriza a nota musical bsica.
A representao do som o udio1 e este pode provir da captura do som por microfones ou
da sntese. Muitas vezes, o udio digital especificado atravs de protocolos que facilitam o
armazenamento e transferncia dos arquivos. A representao digital do som pode consistir em
amostras igualmente espaadas no tempo e cujas amplitudes individuais so registradas com
um mesmo nmero de bits. Estas amostras separadas por intervalos regulares a constituem a
forma padro de representao do som em tempo discreto, chamada de modulao por cdigo
de pulsos (PCM do ingls Pulse Code Modulation). Um som digital PCM caracterizado pela
frequncia de amostragem fa =

1
a ,

tambm chamada de taxa de amostragem, e a profundidade

de bit que o nmero de bits utilizados para representar a amplitude de cada amostra. A
figura 1.1 exibe 25 amostras de um udio PCM com 4 bits cada. Os 24 = 16 grados para a
amplitude de cada amostra junto ao espaamento regular a introduzem um erro de quantizao.
O rudo causado por estes erros diminuem com a diminuio destes espaamentos.(6)
Pelo teorema de Nyquist, constata-se que a metade da frequncia de amostragem a frequncia
mxima do sinal. Assim, para apreender as frequncias audveis, necessria uma taxa de
amostragem que seja ao menos o dobro da frequncia mais aguda fa 2 20kHz = 40kHz. Este
1

Os termos som e udio so muitas vezes usados de forma intercambivel.(5)

35

Figura 1.1 Som digital em modulao por cdigo de pulsos (PCM): 25 amostras representadas por 4
bits cada uma.

raciocnio est na base da utilizao das frequncias de amostragem fa = 44.1kHz e fa = 48kHz,


ambas padro em Compact Disks (CDs) e em sistemas de Rdio e TV, respectivamente.(6)

1.2

Arte sonora e teoria musical

A msica definida como a arte manifesta pelos sons e silncios. Para um ouvinte comum e boa parte dos especialistas - uma msica que seja msica pressupe tambm uma mtrica
rtmica e organizaes de alturas que formem melodias e harmonias como explicadas na seo 2.3. A msica do sculo XX ampliou esta concepo tradicional de msica. Isso ocorreu
na msica de concerto, especialmente nas correntes concreta, eletrnica e eletroacstica. J na
dcada de 90 era evidente que tambm a msica popular, especialmente as msicas eletrnicas
de dana, tinham incorporado sons sem altura definida e organizaes temporais fora de mtricas simples. Mesmo assim, a nota permanece paradigmtica como unidade fundamental das
estruturas musicais e, na prtica, pode se desdobrar em sons que contemplam estes desenvol-

36

vimentos recentes. A definio e expanso da nota como unidade fundamental da msica so


abordados nas sees 2.2 e 2.1, respectivamente. A seo 2.3 trata da organizao das notas em
estruturas de alto nvel.(711)
A teoria musical engloba assuntos to diversos quanto psico-acstica, manifestaes culturais
e formalismos. O texto do captulo 2 aborda estes assuntos mediante necessidade e assinala
complementos externos.(1214)

1.3

Implementao computacional

Os resultados apresentados desta dissertao incluem scripts, i.e. pequenos programas para
melhor disponibilidade e validao das tecnologias. Estes constituem a caixa de ferramentas

massa, disponibilizada em domnio pblico atravs de repositrios Git abertos.(15) Os scripts


esto em Python e fazem uso das bibliotecas externas Numpy e Scikits/Audiolab que realizam
chamadas linguagem Fortran para maior eficincia computacional. Parte deste cdigo foi
transcrita para JavaScript e Python nativos com facilidade, o que aponta para um uso destas
contribuies em navegadores como o Firefox e o Chromium.(1619)
Estas tecnologias so todas abertas, i.e. esto publicadas em licenas que permitem o uso, cpia,
distribuio e utilizao de quaisquer partes para estudo e gerao de produtos derivados. Desta
forma, o trabalho aqui descrito est disponvel e facilita os processos de co-autoria2 .

A comunidade e movimento chamada Open Source entende a publicao de cdigo computacional (e outras
tecnologias) em licenas abertas como uma vantagem pragmtica que facilita o desenvolvimento de software
e apresenta vantagens pedaggicas e mercadolgicas. A comunidade e movimento chamada Free Software
engloba este entendimento, mas adiciona a abordagem filosfica da liberdade e compartilhamento, dando nfase
a isso. Ambas as correntes reforam o entendimento de que o cdigo computacional o bem mais precioso
produzido atualmente pois consiste em tecnologia condensada, reativa (executa, processa ou gera resultados),
modular (partes so copiadas e reutilizadas eficientemente) e replicada sem custo adicional (a cpia de texto tem
custo baixssimo).(20, 21)

37

1.4

Objetivos

O objetivo principal desta dissertao apresentar de forma unificada relaes entre elementos
bsicos da msica e as sequncias amostrais do udio PCM. O captulo seguinte um texto
conciso em que os elementos musicais so apresentados junto s amostras temporais resultantes. Para validao e compartilhamento, as implementaes em cdigo computacional destas
relaes e de pequenas peas musicais3 foram reunidas em uma toolbox chamada massa e
disponibilizadas online e parcialmente nos Apndices A e B.
Dos objetivos secundrios, destaca-se a difuso da compreenso do cdigo computacional atravs de prticas ldicas, no caso a msica. Outro objetivo considerado a apresentao de um
arcabouo de sntese sonora e musical com controle amostral, para o qual h potenciais usos
em experimentos psico-acsticos e sntese em alta definio (hi-fi). Tambm considerada a
apresentao destes contedos de forma didtica, quase um tutorial, o que possibilita compreenso e uso facilitados. Esta exposio amistosa faz-se significativa pois os assuntos tratados
so de reconhecida complexidade: processamento de sinais, msica, psico-acstica, para citar
somente alguns exemplos. Deste ponto de vista pedaggico, tambm se presta a apresentao
destes resultados na forma de hipertexto, em que cada script e exemplo sonoro/musical seja
acessvel junto ao material terico.

1.5

Trabalhos relacionados

Dado o interesse humano pela msica e a multidisciplinaridade inerente a esta dissertao, os


trabalhos relacionados so numerosos. Assim, o Apndice G dedicado aos livros e implementaes computacionais de interesse ou que apresentem similaridades com a descrio de
elementos musicais em termos do udio digital. No h nfase em artigos pois foram poucos os
3

Ou, de forma menos pretensiosa, montagens musicais, sequncias musicais.

38

encontrados. A visita indica aspectos inditos deste trabalho, em especial a descrio analtica
de elementos musicais bsicos em termos das amostras sonoras e a descrio natural, formal e
concisa de tcnicas tradicionais da msica.

39

Msica no som digitalizado

The increasing dominance of graphic interfaces for music software obscured the continuing presence of the command-line tradition, the code writer, the hacker. The code writing
of deferred time computer programming may be assembled out of time order, debugged and
optimized.
Simon Emmerson, Living electronic music.(22)

2.1

Caracterizao da nota musical em tempo discreto

Em diversos contextos artsticos e tericos, a msica pensada atravs de unidades chamadas


notas e estas unidades compreendidas como "tomos" constituintes da msica.(7, 8, 23) Hoje,
estas notas so tidas como um paradigma de proposta musical e, de um ponto de vista cognitivo,
como discretizaes que facilitam e enriquecem o fluxo de informao atravs da msica.(3,
11) Canonicamente, as notas possuem ao menos durao, volume, altura e timbre.(11) Estas
so qualidades tratveis quantitativamente e ditadas pelas amostras, igualmente espaadas no
tempo, da onda sonora (veja seo 1.1 sobre udio PCM).(3)
Todas as relaes desta seo esto no Apndice A.1, as montagens musicais Quadros sonoros e
Reduced-fi esto nos Apndices B.1.1 e B.1.2. Estas implementaes esto tambm disponveis
online como parte do toolbox massa.(2)

40

2.1.1

Durao

A frequncia (ou taxa) de amostragem fa definida como o nmero de amostras por segundo.
Seja a sequncia T i = {ti } um conjunto ordenado de amostras reais separadas por a = 1/ fa segundos. Uma nota musical de durao se apresenta como uma sequncia de b. fa c amostras1 :

T i = {ti }i=0 a

b. f c1

(2.1)

Seja = b. fa c o nmero de amostras da sequncia, de forma que T i = {ti }1


0 .

2.1.2

Volume

A sensao de volume sonoro depende da reverberao e distribuio dos harmnicos, dentre


outras caractersticas trabalhadas na seo 2.2. Pode-se obter variaes do volume atravs da
potncia da onda (24):

pot(T i ) =

P1
i=0

ti2

(2.2)

O volume final depender sempre da amplificao do sinal nos alto-falantes, assim o crucial
a potncia relativa de uma nota em relao s outras ou de um trecho da msica em relao ao
resto. As diferenas de volume so medidas em decibels, e estes so calculados diretamente
com as amplitudes atravs das energias ou potncias2 :

pot(T i )
VdB = 10log10
pot(T i )
1

(2.3)

O limite superior de uma sequncia um nmero natural, mas . fa s satisfaz esta condio em casos muito
excepcionais. necessrio escolher um inteiro prximo de . fa e admitir algum erro. Por simplicidade, ser
considerada sempre a parte inteira da multiplicao, descrita por b. fa c e aceito o erro de at a segundos. Por
exemplo, a = 1/44100 2, 3.105 , por volta de 23 microssegundos, o que razovel para usos musicais.
Lembrando que, devido percepo logartmica, em um som de volume v a reduo da potncia p para uma
mesma frao .p com [0, 1] sentido como a mesma diminuio do volume v com 0.

41

A quantidade VdB possui a unidade decibel (dB). A cada 10 dB se atribui a sensao de "volume
dobrado". Referncias teis so os 10dB por grado na escala de intensidades: pianissimo, piano,
mezzoforte, forte e fortissimo. Valores ainda mais cruciais so equivalentes em dB de se dobrar
a amplitude ou a potncia:

se

ti = 2.ti
se

pot(T i ) = 4.pot(T i )

pot(T i ) = 2pot(T i )

VdB = 10log10 4

VdB = 10log10 2

3dB

6dB

(2.4)
(2.5)

e o ganho de amplitude necessrio para que uma sequncia tenha o volume dobrado (10dB a
mais):

pot(T i )
10log10
= 10
pot(T i )

b.X
fa c1

ti 2 = 10

ti2 =

ti = 10ti
0

1
X

( 10.ti )2

(2.6)

i=0

i=0

i=0

1
X

ti 3, 16ti

(2.7)

Ou seja, necessrio pouco mais que triplicar a amplitude para um volume dobrado. Estes
valores servem de guia para os aumentos e diminuies dos valores absolutos que compem as
sequncias de amostras sonoras com propsitos musicais. A converso direta de decibels em
ganho ou atenuao de amplitude se d da seguinte forma:

A = 10

VdB
20

(2.8)

Onde A o fator multiplicativo que relaciona as amplitudes do sinal antes e depois da amplificao.

42

2.1.3

Altura

Recapitulando, a partcula musical (nota) uma sequncia T i cuja durao e volume correspondem ao tamanho da sequncia e amplitude de suas amostras. A altura especificada pela
frequncia fundamental f0 com ciclo de durao f0 = 1/ f0 . Esta durao multiplicada pela
frequncia de amostragem fa resulta no nmero de amostras do ciclo f0 = fa . f0 = fa / f0 .
f

Por motivos didticos, seja f0 tal que divida fa e f0 resulte inteiro. Se T i uma sequncia
sonora de frequncia fundamental f , ento:

f
Ti

n fo  f  ( f
= ti = ti+ f = t

i+

)
fa
f

(2.9)

Na seo seguinte sero contempladas frequncias f que no dividem fa e esta restrio no


implica na perda de generalidade do contedo desta seo.

2.1.4

Timbre

Enquanto o perodo da onda corresponde a uma frequncia fundamental, o percurso da onda


sonora dentro do perodo - chamado de forma de onda - define um espectro harmnico e portanto
um timbre3 . Musicalmente, importa que espectros sonoros com diferenas mnimas resultam
em timbres com diferenas expressivamente cruciais e que, portanto, pode-se produzir timbres
diferentes atravs de espectros diferentes.(3)
O caso mais simples (e mais importante, como mostra o texto que segue) o do espectro que
consiste somente em sua prpria fundamental f . Este o caso da senoide, frequncia em
3

O timbre uma caracterstica subjetiva e complexa. Fisicamente, o timbre multidimensional e dado pelo comportamento temporalmente dinmico de energias em componentes espectrais tanto harmnicas quanto ruidosas.
Alm disso, a palavra timbre utilizada para designar coisas diferentes: uma mesma nota possui diferentes timbres, um mesmo instrumento possui diferentes timbres, dois instrumentos da mesma famlia possuem o mesmo
timbre que a caracteriza mas possuem timbres diferentes porque so instrumentos diferentes. Vale salientar que
nem tudo o que se atribui ao timbre se acha manifesto em diferenas espectrais e que at aspectos culturais ou
circunstanciais alteram nossa percepo do timbre.

43
f

movimento oscilatrio puro chamado movimento harmnico simples. Seja S i uma sequncia
f

cujas amostras si descrevem uma senoide de frequncia f :

n
i o n
i o
f
f
S i = {si } = sin 2
= sin 2 f
f
fa
Onde f =

fa
f

f
a

(2.10)

o nmero de amostras do perodo4 .

De forma semelhante, outras formas de onda so utilizadas na msica por suas qualidades
espectrais e simplicidade. Enquanto a senoide um ponto isolado no espectro, estas ondas
apresentam cadeias de componentes harmnicas. As formas de onda especificadas nas equaes 2.10, 2.11, 2.12 e 2.13 esto na figura 2.1. So as formas de onda artificiais tradicionalmente usadas na msica para sntese e controle oscilatrio de variveis e apresentam diversos
usos tambm fora da msica.(25)
A dente de serra apresenta todas as componentes da srie harmnica com energia decrescente
de 6dB/oitava. A sequncia de amostras temporais pode ser descrita da seguinte forma:
f
Di

)
n f o ( i % f
= di = 2
1
f

(2.11)

A forma de onda triangular apresenta somente os harmnicos mpares caindo a 12dB/oitava:


f
Ti


)
n f o (
i % f

= ti = 1 2 4


f

A onda quadrada apresenta somente os harmnicos mpares caindo a 6dB/oitava:

n
o
para (i % f ) < f /2

1
f
f
Qi = qi =

1
caso contrrio

(2.12)

(2.13)

A dente de serra um ponto de partida comum para a sntese subtrativa pois possui ambos os
4

Neste ponto j se tem toda a base para msica Reduced-fi do Apndice B.1.2.

44

harmnicos pares e mpares e em grande quantidade. Para fins musicais, estas formas de onda
so excessivamente ricas em harmnicos agudos e uma filtragem atenuante nos mdios e agudos
til para que o som ganhe naturalidade e fique mais agradvel. Os harmnicos relativamente
atenuados da onda triangular a fazem a mais funcional - dentre as citadas - para ser usada sem
nenhum tratamento na sntese de notas musicais.
J a onda quadrada pode ser usada na sntese subtrativa que vise a imitar um clarinete. Este
instrumento tambm s apresenta os componentes mpares do espectro harmnico e a onda
quadrada convm com sua energia abundante nas altas frequncias.

Figura 2.1 Formas de onda musicais bsicas. As formas de onda sintticas esto em (a) e as formas
de onda reais esto em (b).

A figura 2.1 apresenta as formas de onda descritas nas equaes 2.10, 2.11, 2.12 e 2.13 para
f = 100 (perodo de 100 amostras). Se ta = 44, 1kHz, como no padro PCM de Compact Disks,
a onda possui frequncia fundamental f =

fa
f

44100
100

= 441 Herz. Um l5 seja qual for a forma

de onda.
5

Um l 4, logo acima do d central, no segundo espao do pentagrama na clave de sol comum.

45

O espectro de cada forma de onda bsica est na figura 2.2. As componentes isoladas e exatamente harmnicas dos espectros correspondem a um perodo rigorosamente fixo. A senoide
consiste de um ndulo nico no espectro, frequncia pura. A dente de serra a nica com
a srie harmnica completa (pares e mpares). J as ondas triangular e quadrada possuem as
mesmas componentes espectrais, mas com decaimentos de 12dB/oitava e 6dB/oitava respectivamente.

Figura 2.2 Espectros das ondas sonoras musicais artificiais bsicas. A senoide tem o espectro puntual,
a triangular apresenta somente os harmnicos mpares, caindo a 6dB por oitava; a onda
quadrada tem somente os harmnicos mpares, caindo a 12dB por oitava; a onda dente de
serra apresenta todos os harmnicos, caindo a 6dB por oitava.

O espectro harmnico formado pelas frequncias mltiplas da frequncia fundamental fn =


(n + 1). f0 . Como a percepo humana de altura segue uma progresso geomtrica de frequncias, o espectro possui notas diferentes da frequncia fundamental. Alm disso, o nmero de
harmnicos ser limitado pela frequncia mxima fa /2 (pelo Teorema de Nyquist).
Musicalmente crucial aqui internalizar que a presena de energia em uma componente de
frequncia fn significa uma oscilao na constituio do som, puramente harmnica e naquela

46

frequncia fn . Esta energia concentrada especificamente na frequncia fn separada pelo ouvido para adentrar em um nvel cognitivo de processamento6 . As componentes senoidais so
geralmente as principais responsveis pela qualidade chamada timbre. Caso no se apresentem
em propores harmnicas (relaes de pequenos nmeros), o som percebido como ruidoso
ou dissonante e no com uma sonoridade de frequncia fundamental estabelecida de forma unvoca. Alm disso, a noo de altura absoluta em um complexo sonoro baseada na semelhana
do espectro com a srie harmnica.(3)
No caso de uma forma de onda fixa e de tamanho fixo, o espectro sempre harmnico e esttico. Cada forma de onda composta de propores especficas das componentes harmnicas
e quanto maior a curvatura do trecho na forma de onda, maior a contribuio do trecho para a
concentrao de energia nos harmnicos agudos. Pode-se constatar isso em sons reais. A onda
rotulada como som real amostrado na figura 2.1 um perodo de f = 114 amostras extrado
de um som real relativamente comportado. A onda de obo foi amostrada de um l 4 tambm
em 44, 1kHz. O perodo escolhido para a amostragem relativamente curto, com 98 amostras
corresponde a uma frequncia de

44100
98

= 450Hz. Pode-se perceber, atravs das curvaturas, o

espectro rico em frequncias agudas do obo e o espectro mais grave do som real.
1

A sequncia Ri = {ri }0 f

de amostras do som real da figura 2.1 pode ser tomada como base

para um som T i da seguinte forma:

n
o
f
f
T i = {ti } = r(i % f )

(2.14)

O som resultante possui o espectro momentneo do som original. Por ser repetido de forma
idntica, seu espectro perfeitamente harmnico, sem os rudos e variaes tpicas do fenmeno natural. Isso pode ser visto na figura 2.3, que mostra os espectros da nota original do
6

Esta separao em frequncia realizada por diversas espcies atravs de mecanismos similares cclea humana.(3)

47

obo e de uma nota artificial de mesma durao e cujas amostras consistem no mesmo perodo
da figura 2.1. O espectro natural possui variaes nas frequncias dos harmnicos, nas suas
intensidades e uma quantidade de rudo. J a nota cujo perodo foi amostrado possui espectro
perfeitamente harmnico.

Figura 2.3 Espectros das ondas sonoras de uma nota de obo natural e de perodo amostrado. O som
natural possui flutuaes nos harmnicos e rudos, j o som de perodo amostrado possui
espectro perfeitamente harmnico.

2.1.5

O espectro no som amostrado

A presena e comportamento destas componentes senoidais no som discretizado possui particularidades. Considere um sinal T i e sua decomposio de Fourier F hT i i = Ci = {ci }1
0 . A
recomposio a soma das componentes frequenciais em amostras temporais7 :

ti =

Lembrando que o fator

2k


1X
1X
ck e j i =
(ak + j.bk ) cos(wk i) + j.sen(wk i)
k=0
k=0

pode ser distribudo dentre a transformada e a reconstruo como preferir.

(2.15)

48

Onde ck = ak + j.bk dita a amplitude e fase de cada frequncia: wk =


fa
wk 2
=

fa
k

2
k

em radianos ou fk =

fa
2

dados pelo Teorema

em Hertz,com ateno para os respectivos limites em e em

de Nyquist.
No caso especfico de um sinal sonoro, as amostras ti so reais e dadas pela parte real da equao
2.15:

1X
[ak cos(wk i) bk sen(wk i)]
k=0
"
!#
1 q
1X
1 bk
2
2
=
ak + bk cos wk i tg
k=0
ak

ti =

(2.16)

A equao 2.16 mostra que o termo imaginrio de ck acrescenta uma fase senoide real, i.e.
os termos imaginrios bk da decomposio espectral por Fourier proporcionam a varredura de
h
i
 
fase 2 , + 2 dada pelo termo tg1 bakk que possui esta imagem. O sinal de ak especifica o lado
h
i
direito ou esquerdo do circulo trigonomtrico, o que completa a varredura de fase: 2 , + 2
i
h
3
,
2 2 [2].
A figura 2.4 exibe duas amostras e as componentes espectrais que contm. A decomposio
de Fourier possui neste caso um nico par de coeficientes {ck = ak j.bk }01=1 relativos s
n f o1 n f o1 n f
o
2
a
a
k)
frequncias { fk }10 = wk 2
= k =2
= 0, 2a = fmx com energias ek = (c
=2 . O papel das
0

amplitudes ak ntido com

a0
2

o deslocamento fixo8 e

a1
2

a amplitude da oscilao em si, dada

fa
pela relao fk = k =2
. Este caso de especial importncia pois o mnimo necessrio para

representar uma oscilao so 2 amostras e disso resulta a frequncia de Nyquist fmx =

fa
2.

Esta a frequncia mxima presente em um som amostrado com fa amostras por segundo9 .
Todas as sequncias fixas T i de apenas 3 amostras tambm apresentam somente 1 frequncia,
pois sua primeira harmnica usaria 1, 5 amostras e ultrapassa o limite inferior de 2 amostras m8
9

Chamado de bias ou offset.


Qualquer sinal amostrado possui esta caracterstica, no somente o som digitalizado.

49

Figura 2.4 Oscilao de 2 amostras (frequncia mxima em qualquer fa ). O primeiro coeficiente


reflete o deslocamento (offset ou bias) e o segundo coeficiente especifica a amplitude da
oscilao.

nimas, i.e. a frequncia da harmnica ultrapassaria a de Nyquist pois:

2. fa
3

>

fa
2.

Os coeficientes

{ck }1=2
apresentam-se em 3 componentes frequenciais. Uma delas relativa frequncia
0
zero (c0 ), as outras duas (c1 e c2 ) contribuem de forma igual na reconstruo da senoide com
f = fa /3.
amostras reais ti resultam em coeficientes complexos ck = ak + j.bk . Os coeficientes ck se
equivalem dois a dois correspondendo s mesmas frequncias e com contribuies idnticas10 .
n
j ko
Lembrando que fk = k fa , k 0, ..., 2 . Quando k > 2 , a frequncia fk espelhada em f2a da
seguinte forma fk =

fa
2

( fk f2a ) = fa fk = fa k fa = ( k) fa

fk fk , k < .

O mesmo pode ser observado com wk = fk . 2


fa e lembrando da periodicidade 2, que resulta em
wk = wk . Como o coseno uma funo par e a tangente inversa impar, as componentes em
wk e wk se somam na equao de reconstruo das amostras reais disposta na equao 2.15.
10

Parte real igual e imaginria com sinal trocado: ak1 = ak2 e bk1 = bk2 . Como consequncia os mdulos so
iguais e as fases possuem sinais opostos

50

Figura 2.5 3 amostras fixas apresentam uma s frequncia no nula. c1 = c2 e w1 w2 .

Ou seja, em uma decomposio de amostras, as componentes frequenciais {ci }1


resul0
tantes so equivalentes em pares. Exceo para f0 e, no caso de ser par, de f/2 = fmx =

fa
2

ambas as componentes so isoladas, i.e. no existe outra componente na frequncia f0 ou f/2


(se par) alm dela mesma. Pois f/2 = f(/2)=/2 e f0 = f(0)= = f0 . Alm disso, estas
duas frequncias (a frequncia zero e a frequncia mxima) no so representadas com variao
de fase e, portanto, so estritamente reais. Assim, pode-se concluir que o nmero de pares de
coeficientes equivalentes :

%2
+ %2 1
2

(2.17)

e ficam evidentes as equivalncias 2.18, 2.19 e 2.20:

fk fk , wk wk ,

1k

(2.18)

51

Figura 2.6 Componentes frequenciais em 4 amostras.

Como ak = ak e bk = bk :

q
q
a2k + b2k = a2k + b2k ,

1k

(2.19)

!
!
bk
1 bk
= tg
,
ak
ak

1k

(2.20)

tg

Com k N.
A observao da equao de reconstruo para o sinal real 2.16 em conjunto com as equivalncias dos mdulos e fases 2.19 e 2.20, o nmero de coeficientes pareados 2.17 e equivalncia de
pares de frequncias 2.18 expe o caso geral da combinao das componentes em cada amostra
ti :
"
!#
q
a/2
a0 2 X
1 bk
2
2
ti = +
ak + bk cos wk i tg
+
.(1 %2)
k=1
ak

(2.21)

Assim, a exemplo da figura 2.5, a transformada de Fourier de 3 amostras possui 2 coeficientes

52

Figura 2.7 Formas de onda bsicas em 4 amostras.

frequenciais com quantidades iguais de energia na mesma frequncia.


Com 4 amostras, pode-se representar 1 ou 2 frequncias em propores quaisquer. A figura 2.6
mostra uma forma de onda de 4 amostras e suas duas componentes. As contribuies individuais
se somam na forma de onda original, e uma breve inspeo revela que as curvaturas maiores so
fruto da frequncia mais aguda, enquanto um deslocamento fixo da somatria das componentes
advm da componente na frequncia zero.
A figura 2.7 explicita os harmnicos em 4 amostras nas formas de onda bsicas das equaes
2.10, 2.11, 2.12 e 2.13. Todas consistem em apenas 1 senoide, com exceo da dente de serra
que possui os harmnicos pares.
A figura 2.8 mostra uma decomposio senoidal para o caso de 6 amostras e a figura 2.9
decompe as formas de onda bsicas. Neste caso todas as ondas se diferenciam no espectro:
as quadrada e triangular possuem as mesmas componentes, mas em propores diferentes, j a
dente de serra possui uma componente a mais.

53

Figura 2.8 Componentes frequenciais em 6 amostras: 3 senoides se somam ao bias.

Figura 2.9 Formas de onda bsicas em 6 amostras: as ondas triangular e quadrada possuem os
harmnicos mpares, mas em propores e fases diferentes; a dente de serra possui tambm
o harmnico par.

2.1.6

A nota bsica

Seja f tal que f divida fa 11 . Uma sequncia T i de amostras sonoras separadas por a = 1/ fa
descreve uma nota musical de frequncia f Hertz e durao segundos se, e somente se, possuir
11

Como apontado anteriormente, esta limitao facilita a exposio sem perda de generalidade. A limitao ser
superada no incio da prxima seo.

54

a periodicidade f = fa / f e tamanho = b fa .c:

f,
Ti

= {ti % f }1
0

(
= t

)1

f
f 
i % fa

(2.22)
0

A nota por si s no especifica um timbre. Mesmo assim, faz-se necessria a escolha de uma
forma de onda para que as amostras ti tenham um valor estabelecido individualmente. Um
nico perodo dentre as ondas bsicas pode ser utilizado para a especificao da nota da seguinte
forma:
f =

f, f

fa
f

o nmero de amostras do perodo. Seja Li


f

a sequncia que descreve um perodo da

onda Li {S i , Qi , T i , Di , Ri } de durao f = 1/ f , dadas pelas equaes 2.10, 2.11, 2.12 e


f

2.13 e onde Ri uma onda real amostrada:

f, f

Li

n f o f . fa 1 n f o f 1
= li
= li
0

(2.23)

Ento a sequncia T i consistir em uma nota de durao e frequncia f se:

f,
Ti

2.1.7

n f ob fa .c1 ( f
= ti
= l
0

f 
i % fa

)1
(2.24)
0

Localizao espacial e espacializao

Embora no seja uma das quatro qualidades bsicas tradicionais de uma nota musical, esta
possui sempre uma localizao espacial, que a posio da fonte que a emitiu, no espao fsico
tridimensional ordinrio. Alm disso, h um ambiente que reverbera a nota emitida, assunto
ao qual a espacializao dedicada. Ambas, a espacializao e a localizao espacial, so
bastante valorizadas por audifilos e pela indstria fonogrfica.(4)

55

Localizao espacial
Acredita-se que a percepo da localizao espacial do som se d em nosso sistema nervoso
atravs destas trs informaes: o atraso de chegada do som entre um ouvido e o outro, a
diferena de intensidade do som direto em cada ouvido e a filtragem realizada pelo corpo,
incluindo trax, cabea e orelhas.(3, 26, 27)

Figura 2.10 Deteco de localizao espacial de fonte sonora: esquema utilizado para clculo da
diferena de tempo interaural (DTI) e da diferena de intensidade interaural (DII).

Se consideradas somente as incidncias diretas em cada ouvido, as equaes so simples. Dada


a separao entre os ouvidos12 , um objeto localizado em (x, y) conforme a figura 2.10 est
distante de cada ouvido:

d=
d0 =

s


2 2
x
+y
2

2

x+

+ y2

e clculos imediatos resultam na Diferena de Tempo Interaural:


12

Constata-se que 21, 5cm para um humano adulto.

(2.25)

56

DT I =

d0 d
v som no ar 343.2

segundos

(2.26)

e na Diferena de Intensidade Interaural:


DII = 20 log10
Convertendo para amplitude, obtm-se DIIa =

d
d0

!
decibels

d
d0 .

(2.27)

A DIIa pode ser utilizada como constante

multiplicativa do canal direito de um sinal sonoro estreo: {ti0 }1


= {DIIa .ti }1
0
0 . Pode-se utilizar a DII junto DTI como adiantamento no tempo do canal direito com relao ao esquerdo,
vnculo crucial para a localizao em sons graves e em sonoridades percussivas.(27) Considerando DT I = bDT I. fa c:

d0 d
fa
DT I =
343, 2
d
DIIa = 0
d
$

n
o+DT I 1
0
= {DIIa .ti }1
t(i+
0
DT I ) DT I
n oDT I 1
ti0
=0

(2.28)

Com ti o canal direito e ti0 o canal esquerdo. Caso DT I < 0, basta trocar ti por ti0 e utilizar
0DT I = |DT I |.
Embora consideravelmente simples at aqui, a localizao espacial depende drasticamente de
outras pistas. Pela DTI e DII especifica-se somente o ngulo horizontal (azimutal) dado por:

= tan

y
x

(2.29)

com x, y tais como representados na figura 2.10. Mesmo assim, h dificuldades quando in-

57

cide sobre o chamado "cone de confuso" em que um mesmo par de especificaes DTI, DII
resultam de vrios dos pontos do cone. Nestes pontos, a inferncia do ngulo azimutal depende
especialmente da filtragem atenuante nos agudos, pois a cabea interfere um tanto mais nas
ondas mecnicas agudas do que nas graves.(26, 27) Tambm pertinente audio de fonte lateral, quando o som grave o suficiente, h uma difrao e a onda chega ao ouvido 0, 7ms
depois.(4)
A figura 2.10 mostra tambm esta sombra acstica do crnio, importante para a percepo do
ngulo azimutal da fonte no cone de confuso. O cone em si no foi disposto na figura pois no
exatamente um cone e suas dimenses precisas no foram encontradas na literatura visitada e
no so facilmente concebveis, dadas as filtragens e a difrao dependente do espectro do som
em si. De toda forma, o cone de confuso pode ser entendido como um cone com o pice no
meio da cabea e saindo por cada uma das orelhas.(26)
J a localizao completa, incluindo distncia e elevao da fonte sonora, dada pela funo de
transferncia de cabea (HRTF - do ingls Head Related Transfer Function).(26) Existem bases
abertas e conhecidas de HRTF como a CIPIC e pode-se aplicar estas funes de transferncia
em um som por convoluo (veja equao 2.43).(28) O corpo do indivduo altera bastante as filtragens realizadas e existem tcnicas para gerar HRTFs que sejam - como proposta - utilizveis
de forma universal.(29)

Espacializao

J a espacializao o resultado das reflexes e absores do som nas superfcies do recinto/paisagem no qual a nota foi emitida. O som se propaga no ar a 343, 2m/s, e pode ser emitido da
fonte com qualquer padro de direcionalidade. Quando uma frente sonora encontra uma superfcie, h uma reflexo. Nesta reflexo ocorrem tanto 1) a inverso da componente da velocidade
de propagao que perpendicular superfcie, quanto 2) a absoro de energia, especialmente

58

nos agudos. As ondas se propagam at atingirem nveis inaudveis. Quando alguma frente
de onda atingir o ouvido, pode ser descrita com o momento de chegada ao ouvido e os filtros
de absoro de cada superfcie que atingiu. Pode-se simular reverberaes no possveis em
sistemas reais. Para experimentaes, pode-se usar reflexes assimtricas com relao ao eixo
perpendicular superfcie, ou ainda ganhos em determinadas bandas de frequncia (tidos como
ressonncias), ambas as caractersticas no so encontradas em sistemas reais.
Existem algumas modelagens de reverberao menos atreladas ao clculo de cada reflexo,
exploram informaes valiosas do ponto de vista auditivo. De fato, a reverberao pode ser
modelada com um conjunto de 2 caractersticas temporais e no espectro:

Primeiro perodo: as primeiras reflexes so mais intensas e esparsas.


Segundo perodo: a reverberao tardia praticamente uma sucesso densa de atrasos
indistintos com um decaimento exponencial e ocorrncias estatsticas.
Primeira banda: o grave possui algumas frequncias de ressonncia relativamente espaadas.
Segunda banda: o mdio e agudo possuem um decaimento progressivo e suave com flutuaes estatsticas.

Smith III aponta que boas salas de concerto possuem um tempo total de reverberao de aproximadamente 1, 9 segundos. Aponta tambm o perodo das primeiras reflexes de 0, 1 segundos.
Estas quantidades sugerem que, nas condies contempladas, h frentes de onda perceptveis
que se propagam at 652, 08 metros (83, 79k amostras em fa = 44, 1kHz) antes de atingirem o
ouvido. Alm disso, as reflexes do som formam, aps a propagao por 34, 32 metros (4, 41k
amostras em fa = 44, 1kHz ), um emaranhado cujas incidncias so pouco distintas na audio. Estas primeiras reflexes so particularmente importantes para a sensao de espao. A

59

primeira incidncia o som direto, descrito por DTI e DII das equaes 2.26 e 2.27. Admitindo que cada uma das primeiras reflexes, antes de chegar ao ouvido, se propagar, ao menos,
3 30m dependentes das dimenses da sala, a separao entre as primeiras reflexes de, ao
menos, 8 90 milissegundos ( 350 4000 amostras em fa = 44.1kHz). Verifica-se experimentalmente que o nmero de reflexes aumenta em proporo quadrtica k.n2 . Apontamentos
do uso de convolues e filtragens para facilitar estas implementaes esto na subseo 2.2.6,
especialmente nos pargrafos sobre reverberao.

2.1.8

Usos musicais

A partir da nota bsica, cabe realizar estruturas musicais com sequncias destas partculas. A
N1 de mesmo tamanho
soma dos elementos de mesmo ndice de N sequncias T k,i = {tk,i }k=0

resulta em seus contedos espectrais sobrepostos em um processo de mixagem sonora:


N1 1

{ti }1
=
tk,i

k=0

(2.30)

A figura 2.11 ilustra este processo de superposio de ondas sonoras discretizadas. A figura
dispe 100 amostras, de onde pode-se concluir que, se fa = 44.1kHz, as frequncias da dente
de serra, da onda quadrada e da senoide so, respectivamente,
e

fa
100/5

= 2205Hz. A durao do trecho bastante curto

fa
100/2

fa =44.1kHz
100

= 882Hz,

fa
100/4

= 1764Hz

2 milissegundos. Basta

completar com zeros para somar sequncias de tamanhos diferentes.


As notas mixadas so em grande parte separadas pelo ouvido por leis fsicas de ressonncia e
pelo sistema nervoso.(3) O resultado da mixagem de notas musicais a harmonia musical, cujos
intervalos entre as frequncias e os acordes de notas simultneas regem aspectos subjetivos e
abstratos da msica e sua apreciao.(30)
As sequncias podem tambm ser concatenadas no tempo. Caso as sequncias {tk,i }0k 1 de

60

Figura 2.11 Mixagem de trs sequncias sonoras. As amplitudes so sobrepostas diretamente.

tamanhos k representem k notas musicais, sua concatenao em uma nica sequncia T i em


uma sequncia musical simples ou melodia:

{ti }0

k 1

= {tl,i }0

k 1

, l menor inteiro :

l > i

l1
X

(2.31)

j=0

Este mecanismo demonstrado de forma ilustrativa na figura 2.12 com as mesmas sequncias
da figura 2.11. As sequncias so curtas para as taxas de amostragem usuais, mas pode-se
observar a concatenao de sequncias sonoras. Alm disso, cada nota tem a durao maior
que 100ms se fa < 1kHz.
A montagem musical reduced-fi explora de forma isolada este uso de justaposio temporal das
notas, resultando em uma pea homofnica. O princpio vertical est demonstrado nos quadros
sonoros, sons estticos com espectros peculiares. Ambas as peas esto em cdigo Python nos
Apndices B.1.1 e B.1.2 e esto disponveis como parte da toolbox massa.(2)
Est descrita a nota musical digital bsica e a seo seguinte desenvolve a evoluo temporal

61

Figura 2.12 Concatenao de trs sequncias sonoras atravs da justaposio temporal de suas amostras.

de seus contedos, como nos glissandi e nas envoltrias de volume. A filtragem de componentes espectrais e a gerao dos rudos completam a constituio da nota musical como unidade
isolada e se desdobra na seo 2.3, dedicada estruturao destas notas em msica atravs de
mtricas e trajetrias.

62

63

2.2

Variaes na nota musical bsica

A nota musical digital bsica foi definida na seo 2.1 com os parmetros: durao, altura,
intensidade (volume) e timbre. Esta uma modelagem til e paradigmtica, mas no esgota o
que se entende por uma nota musical.
Em primeiro lugar, as caractersticas da nota se modificam no decorrer da prpria nota.(24) Por
exemplo, uma nota de piano de 3 segundos tem a intensidade com incio abrupto e decaimento
progressivo, alm de variaes do espectro, com harmnicos que decaem antes dos outros e
alguns que aparecem com o tempo. Estas variaes no so obrigatrias e sim orientaes da
sntese sonora para usos musicais, pois como os sons se apresentam na natureza13 . Explorar
todas as formas pelas quais estas variaes ocorrem est fora do escopo de qualquer trabalho
dada a considervel sensibilidade do ouvido humano e a complexidade da nossa cognio sonora. A seguir, sero apontados recursos primrios para estas variaes das caractersticas na
nota bsica. Todas as relaes descritas nesta seo esto implementadas em Python no Apndice A.2. As montagens musicais Transita para metro, Vibra e treme, Tremolos, vibratos e
a frequncia, Trenzinho de caipiras impulsivos, Ruidosa faixa, Bela rugosi, Chorus infantil,
ADa e SaRa esto nos Apndices B.2.1, B.2.2, B.2.3, B.2.4, B.2.5, B.2.6, B.2.7 e B.2.8. Estes
cdigos so parte da caixa de ferramentas massa, disponvel online.(2)

2.2.1

Tabela de busca

Mais conhecida pelo termo em ingls, a Lookup Table (ou simplesmente LUT), uma estrutura
de dados para consultas indexadas usada frequentemente para reduzir a complexidade computacional e por permitir o uso de funes sem possibilidade de clculo direto, como amostras
recolhidas da natureza. Na msica seu uso transcende estes primeiros, facilitando as operaes
13

A regra de ouro aqui : para que um som isolado desperte interesse por si s, faa com que tenha variaes
internas.(3)

64

e permitindo que um nico perodo de onda possa ser usado para sintetizar sons em toda a banda
de frequncias audveis, qualquer que seja a forma de onda amostrada.

Figura 2.13 Procedimento de busca em tabela (conhecido como Lookup Table) para sntese de sons
em frequncias diferentes a partir de uma nica forma de onda em alta resoluo.

n o1
e
e o tamanho do perodo e Lei = e
Seja
li
os elementos e
li de um perodo de onda qualquer
(veja equao 2.23). Uma sequncia

0
f,
Ti

com amostras de um som de frequncia f e durao

pode ser obtida a partir de Lei da seguinte forma:

f,
Ti

n f ob fa . c1 n
o1
= e
li %
,
= ti
e
0


e
onde i = i. f
fa

(2.32)

e da LUT, pode-se sintetizar o som em qualquer frequnOu seja, com os ndices corretos (i %)
n o
cia. A figura 2.13 ilustra o clculo de uma amostra de {ti } a partir de e
li para uma frequncia
e = 128 e considerada a taxa de amostragem em fa = 44.1kHz. Esta no
de f = 200Hz,
uma configurao praticvel, como assinalado abaixo, mas possibilita uma disposio grfica
do procedimento.
e Para fins de
O clculo do inteiro i introduz um rudo, e este diminui com o aumento de .

65

e = 1024 amostras, pois j no gera rudo relevante


sntese, em fa = 44.1kHz o padro usar
no espectro audvel. O mtodo de arredondamento ou interpolao no decisivo.(31)
A expresso que define a varivel i pode ser compreendida da seguinte forma: i acrescida
de fa a cada 1 segundo. Caso seja dividida pela frequncia de amostragem, resulta

i
fa ,

que

acrescida de 1 a cada 1 segundo. Multiplicada pelo comprimento do perodo, resulta i fa


e

que varre o perodo em 1 segundo. Por fim, com a frequncia f , resulta i. f

fa

que completa

e em 1 segundo, i.e. a sequncia resultante apresenta a frequncia


f varreduras do perodo
fundamental f .
Importantes consideraes: f qualquer, s h limitantes nas frequncias graves quando o tae no suficientemente grande para a taxa de amostragem fa . O procedimento
manho da tabela
de busca em tabela computacionalmente bastante barato, substituindo clculos por buscas
simples (por isso geralmente entendido como um processo de otimizao). Salvo quando assinalado, no texto que usar este procedimento para todos os casos cabveis pois simplifica as
rotinas e computacionalmente coerente.
O uso de LUTs bastante difundido nas implementaes computacionais voltadas para msica
e um uso clssico que explora com nfase as LUTs na sntese sonora musical, a chamada
Wavetable Synthesis que consiste em vrias LUTs utilizadas em conjunto atravs da mixagem
para gerar uma nota musical quasi-peridica. (10, 32).

2.2.2

Variaes incrementais de frequncia e intensidade

Segundo a lei de Weber e Fechner, a percepo humana tem uma relao logartmica com
o estmulo que a causa.(33) Em outras palavras, um estmulo em progresso exponencial
percebido como linear. Por razes didticas e dado o uso nas AM e FM (veja subseo 2.2.5),
a variao linear ser abordada primeiro.

66

Em uma nota de durao =

fa ,

a frequncia f = fi varia de f0 at f1 linearmente. Pode-se

escrever:


Fi = { fi }1
=
f0 + ( f1 f0 )
0

i = fi
fa

i 1
1 0

(2.33)

i
i e 

X
X
e
j

i =
f0 + ( f1 f0 )
f j =
fa
fa
1
j=0

(2.34)

j=0

1 n

o1
f0 , f1
= e
li %
ti
e

(2.35)

Onde i = fi fa o incremento da LUT entre duas amostras dada a frequncia do som na


e

primeira amostra.
f , f1

Desta forma, pode-se calcular os elementos ti 0

n o1
com base no perodo e
li
.
0

As equaes 2.33, 2.34 e 2.35 so relativas progresso linear da frequncia. Como assinalado
para o caso geral, tambm aqui uma progresso de frequncia percebida como linear segue uma
i

progresso exponencial14 . Pode-se escrever que: fi = f0 .2 1 n8 onde n8 = log2


i

de oitavas entre f0 e f1 . De forma que fi = f0 .2 1

log2

i
f
1
log2 1
f0

f1
f0

= f0 .2

f1
f0

o nmero

= f0

f

1
f0

i
 1

Portanto, as equaes de transies de frequncia lineares para o ouvido so:

Fi = { fi }1
0

! i 1

f1 1

=
f

f0

(2.36)

i = fi
fa

14

j
! 1
i
i
X
X

e
e

f
1

i =
f j =
f0

f
f
f
a
a
0
j=0
j=0

(2.37)

Ou, dito ainda de outra forma, uma progresso geomtrica da frequncia percebida como uma progresso
aritmtica de alturas.

67


1 n
o1
f ,f
ti 0 1
= e
li %
e
0

(2.38)

Figura 2.14 Transies de intensidade para diferentes valores de (veja equaes 2.39 e 2.40).

O termo

i
1

varre o intervalo [0, 1] e pode-se elev-lo a uma potncia para que o incio da

transio seja mais suave ou abrupto. Este procedimento til para variaes de energia da
onda vibratria para alterao do volume15 . Basta multiplicar a sequncia original (seja ela



i
1

gerada ou pr-estabelecida) pela sequncia a1

onde o coeficiente citado e a1 frao

da amplitude original que se visa atingir ao final da transio.


Assim, para variaes de amplitude:


i 1
! 1



 

i 1
a

1
1
(a
)
=
a
=
com a0 = 1
{ai }1

0
1
0

a0
0

(2.39)

15

A mudana do volume (qualidade psicofsica) ocorre atravs de diferentes caractersticas do som, como a reverberao e a concentrao de harmnicos agudos, dentre as quais est a energia da onda. A manipulada com mais
facilidade a energia da onda (veja equao 2.2) e esta tambm pode variar de diferentes formas. Uma forma
mais simples variar a amplitude atravs da multiplicao da sequncia toda por um nmero real. O aumento de
energia sem variao de amplitude a compresso sonora, til na produo musical atual.(34)

68



 
i 1
0
T i = T i Ai = {ti .ai }01 = ti .(a1 ) 1

(2.40)

Pode-se tomar a0 = 1 para iniciar a nova sequncia com a amplitude original e ento ir modificando com o decorrer das amostras. Esta restrio faz com que o termo a1 seja a variao da
amplitude. Caso = 1, a variao de amplitude segue exatamente a progresso geomtrica que
caracteriza a percepo linear. A figura 2.14 exibe as transies para diferentes valores de e
para a transio entre os valores 1 e 2, um ganho de 6dB segundo a equao 2.4.
Algum cuidado necessrio para lidar com a = 0. Na equao 2.39, se a0 = 0 h diviso por
zero e se a1 = 0, h uma multiplicao por zero. Ambos os casos tornam o procedimento
intil pois nenhum nmero diferente de zero pode ser representado como uma proporo com
relao ao zero. Pode-se resolver isso escolhendo um nmero suficientemente pequeno como
80

80dB a = 10 20 = 104 como o volume mnimo no caso de um fade in (a0 = 104 ) ou de


um fade out (a1 = 104 ).
Para uma amplificao linear, mas no linear para a percepo, basta usar uma sequncia {ai }
adequada:

ai = a0 + (a1 a0 )

i
1

(2.41)

Aqui convm a converso de decibels para amplitude. Assim, as equaes 2.8 e 2.40 especificam a transio de VdB decibels:


VdB  i  1
T i = ti 10 20 1
0

(2.42)

para o caso geral de variaes de amplitude segundo a progresso geomtrica. Quanto maior o
valor de , mais suave a introduo do som e mais intenso o final da transio. > 1 resulta

69

em transies de volume muitas vezes chamadas de slow fade enquanto < 1 resulta em fast
fade.(34)
As transies lineares sero usadas para as snteses AM e FM e a aplicao das transies
logartmicas para os tremolos e vibratos. Uma explorao no oscilatria destas variaes est
na montagem musical Transita para metro, cujo cdigo est no Apndice B.2.1 e online na

massa.(2)
2.2.3

Aplicao de filtros digitais

Esta subseo limita-se a uma descrio do processamento das sequncias, por convoluo
e equao a diferenas, e em aplicaes imediatas, pois a complexidade facilmente foge ao
escopo16 . A aplicao de filtros pode ser parte constituinte da sntese ou feita posteriormente
como parte dos processos tipicamente chamados de tratamento sonoro.

Convoluo e filtros de resposta ao impulso finita (FIR)


Os filtros aplicados por convoluo so conhecidos pela sua sigla FIR (do ingls Finite
Impulse Response) e so caracterizados por possurem uma representao amostral finita
no tempo. Esta representao amostral chamada de resposta ao impulso {hi }. Os filtros
FIR so aplicados no domnio temporal ao som digitalizado pela convoluo do som com
a resposta ao impulso do filtro17 . Para os fins deste trabalho, a convoluo fica definida
como:

16

A elaborao de filtros constitui uma rea reconhecidamente complexa, com literatura e pacotes de software
dedicados. Recomendamos ao leitor interessado uma visita nossa bibliografia.(25, 35)
17 Pode-se aplicar o filtro do domnio espectral atravs da multiplicao das transformadas de Fourier de ambos o
som e a resposta ao impulso, e ento realizada a transformada inversa de Fourier do espectro resultante.(25)

70

Figura 2.15 Interpretao grfica da convoluo. Cada amostra resultante a soma das amostras
anteriores de um sinal uma a uma multiplicadas pelas amostras retrgradas do outro
sinal.

t 0 1

min(
h 1,i)

X
n ot +h 2 = t 0 1

t 0 1
0
h
.t
= {(T j H j )i }0
=
ti

j
i
j

j=0
0

t 0 1

=
t
.h
j i j

j=max(i+1 ,0)

(2.43)

Onde ti = 0 para as amostras no definidas de antemo. Ou seja, o som {ti0 } resultante da


convoluo de {ti } com a resposta ao impulso {hi } tem cada i-sima amostra ti substituda
h 1
pela soma de suas ltimas h amostras {ti j }j=0
multiplicadas uma a uma pelas amostras
h 1
da resposta ao impulso {hi }
. Este procedimento est ilustrado na figura 2.15, onde a
0

0 e t0 so duas amostras
resposta ao impulso {hi } percorrida na forma retrgrada e t12
32

calculadas pela convoluo (T j H j )i = ti0 . O sinal resultante possui sempre o tamanho


t + h 1 = t0 .
Com este procedimento pode-se aplicar reverberadores, equalizadores, delays e vrios

71

outros tipos de filtros para fins de tratamento sonoro ou efeitos musicais/artsticos.


A resposta ao impulso pode provir de medies fsicas ou da sntese. Uma resposta
ao impulso para a aplicao de reverberao pode resultar da gravao sonora em um
ambiente ao disparar um estalo que se assemelhe a um impulso ou de uma varredura em
senoide, que transformada se aproxima da resposta em frequncia. Ambas so respostas
ao impulso que, convoluidas com a sequncia sonora, resultam na prpria sequncia com
uma reverberao que se assemelha quela do ambiente em que ocorreu a medio.(10)
A transformada inversa de Fourier de uma envoltria par e real uma resposta ao impulso de um FIR. Este realiza uma filtragem em frequncia com a envoltria. Quanto
maior o nmero de amostras maior a resoluo da envoltria e tambm o processamento
computacional, pois a convoluo cara.
Uma propriedade importante o deslocamento temporal causado pela convoluo com
o impulso deslocado. Embora caro computacionalmente, pode-se criar linhas de delays
atravs da convoluo do som com uma resposta ao impulso que possui um impulso
para cada reincidncia do som. Na figura 2.16 pode-se observar o deslocamento causado
pela convoluo com o impulso. Dependendo da densidade dos impulsos, o resultado
de carter rtmico (20 impulsos por segundo ou menos) ou de amlgama sonoro (2040 impulsos por segundo ou mais). Neste ltimo caso, ocorrem processos tipicamente
vinculados sntese granular, delays, reverbs e equalizaes.

Filtros de resposta ao impulso infinita (IIR)


Esta classe de filtros conhecida pela sigla IIR (do ingls Infinite Impulse Response) e
caracterizada por possuir uma representao temporal infinita, i.e. a resposta ao impulso
no converge para zero. Sua aplicao usualmente feita pela equao:

72

Figura 2.16 Convoluo com o impulso: deslocamento (a), linhas de delays (b) e sntese granular (c).
Dispostos em ordem crescente de densidade de pulsos.

J
K
X

X
1

0
ti0 = a j .ti j +
bk .tik

b0 j=0
k=1

(2.44)

com b0 = 1 na grande maioria dos casos pois pode-se normalizar as variveis: a0j =
b0k =

aj
b0

bk
b0

b00 = 1. A equao 2.44 chamada equao a diferenas por exibir as amosn o


tras resultantes ti0 atravs das diferenas entre as amostras originais {ti } e as amostras
n o
0
resultantes anteriores tik
.
Existem diversos mtodos e ferramentas para a elaborao de filtros IIR e segue abaixo
uma seleo com fins didticos e para consulta futura por utilidade. So filtros bem
comportados e cujas filtragens esto na figura 2.17.
No caso dos filtros de ordem simples, a frequncia de corte fc onde o filtro realiza uma
atenuao de 3dB 0.707 da amplitude original. No caso dos filtros passa e rejeita
banda, esta mesma atenuao resultado de duas especificaes: fc (neste caso mais bem
compreendida como frequncia central) e a largura de banda bw, em ambas as frequn-

73

cias fc bw h uma atenuao de 0.707 da amplitude original. Existe amplificao


do som no caso dos filtros passa e rejeita banda quando a frequncia de corte baixa e
a largura de banda grande o suficiente. Nos agudos, estes filtros apresentam somente
um desvio do perfil esperado, expandindo a envoltria para o lado grave da banda em
evidncia.
Para filtros cujas respostas em frequncia possuem outras envoltrias (para o mdulo),
pode-se realizar cascatas destes filtros aplicando-os sucessivamente. Outra possibilidade
utilizar alguma receita de filtro biquad18 ou rotinas para clculo de coeficientes de filtros
Chebichev19 . Ambas as possibilidades so exploradas por ttulos em nossas referncias,
em especial (35, 36) e a coleo de filtros da comunidade Music-DSP, da Universidade
de Columbia.(25, 37)
1. Passa-baixas de polo simples com mdulo da resposta em frequncia no canto superior
esquerdo da figura 2.17. A frmula geral tem por referncia da frequncia de corte fc
(0, 21 ), frao da frequncia de amostragem fa em que h aproximadamente uma atenuao
de 3dB. Os coeficientes do filtro IIR a0 e b1 so dados atravs da varivel intermediria
x [e , 1]:

x = e2 fc
a0 = 1 x

(2.45)

b1 = x
2. Passa-altas de polo simples com o mdulo da resposta em frequncia no canto superior
direito da figura 2.17. A frmula geral, com frequncia de corte fc (0, 12 ), calculada
18

Abreviao de biquadrado pois sua funo de transferncia possui dois polos e dois zeros, i.e. sua forma normal
1
2
0 +a1 .z +a2 .x
consiste em dois polinmios quadrticos formando uma frao: H(z) = a1b
1 b .z2 .
.z
1
2
19 Filtros Butterworth e Elpticos podem ser considerados como casos especficos dos Filtros do tipo Chebichev.(25,
35)

74

Figura 2.17 Mdulos da resposta em frequncia (a), (b), (c) e (d) respectivamente dos filtros IIR das
equaes 2.45, 2.46, 2.48 e 2.49 para diferentes frequncias de corte, frequncias centrais
e larguras de banda.

atravs da varivel intermediria x [e , 1]:

x = e2 fc
x+1
2
x+1
a1 =
2

a0 =

(2.46)

b1 = x
3. N (notch filter). Este filtro parametrizado pela frequncia central20 fc e a largura de
banda bw - fc bw, que resultam em 0.707 da amplitude, i.e. atenuao de 3dB - ambos
dados como fraes de fa , portanto f, bw (0, 0.5).
Por facilidade, sejam as variveis auxiliares K e R:

20

Ateno com a frequncia de corte tambm fc nos filtros passa baixas e passa altas.

75

R = 1 3bw
1 2R cos(2 fc ) + R2
K=
2 2 cos(2 fc )

(2.47)

O filtro passa banda do canto inferior esquerdo da figura 2.17 possui os seguintes coeficientes para a equao 2.44:

a0 = 1 K
a1 = 2(K R) cos(2 fc )
a2 = R2 K

(2.48)

b1 = 2R cos(2 fc )
b2 = R2

Os coeficientes do filtro rejeita banda so:

a0 = K
a1 = 2K cos(2 fc )
a2 = K

(2.49)

b1 = 2R cos(2 fc )
b2 = R2

com o mdulo de sua resposta em frequncia disposto na parte inferior esquerda da figura 2.17.

76

2.2.4

Rudos

De forma geral, os sons sem altura definida so chamados rudos.(11) Estes so constituintes
importantes dos sons musicais de altura definida, como os rudos presentes nas notas do piano,
do violino, etc. Alm disso, os instrumentos de percusso, em grande parte, no possuem
altura definida e seus sons so em geral compreendidos como rudos.(3) Na msica eletrnica,
incluindo a eletroacstica e gneros de pista de dana, os rudos possuem usos diversificados e
comumente caractersticos do estilo musical.(10)
A ausncia de uma altura definida fruto da ausncia de uma organizao harmnica perceptvel
nas componentes senoidais que formam o som. Assim, so incontveis as possibilidades de
gerar rudos. A utilizao de valores aleatrios para a gerao da sequncia sonora T i um
mtodo atraente, mas os resultados no so to teis, tendendo geralmente ao rudo branco.(10)
Outra possibilidade a gerao de rudo atravs do espectro desejado, a partir do qual executamos a transformada inversa de Fourier. A distribuio espectral deve ser feita com cuidado pois
caso se utilize a mesma fase, ou fases com forte correlao, o som sintetizado possuir energia
bastante concentrada em alguns trechos de sua durao.
Abaixo elencamos alguns rudos de espectro esttico. So chamados coloridos por terem sido
associados a cores. A figura 2.18 mostra lado a lado o perfil espectral e a sequncia sonora. Os
rudos foram gerados com a mesma fase, ento pode-se observar o resultado das contribuies
em diferentes regies do espectro.

O rudo branco deve seu nome por possuir energia distribuda igualmente por todas as
frequncias. Pode-se realizar o rudo branco com a transformada inversa dos seguintes
coeficientes:

77

Figura 2.18 Rudos coloridos realizados atravs das equaes 2.50, 2.51, 2.52, 2.53, 2.54: espectros
e ondas sonoras resultantes.

78

c0 = 0
ci = e

pois evita-se bias


j.x

"
#

, j = 1 , x randmico [0, 2] , i 1, 1
2
2

c/2 = 1

(2.50)

(se par)

ci = ci , para i >

O valor de ci calculado pela exponencial apenas um artifcio para resultar em mdulo


unitrio e fase aleatria. J c/2 sempre puramente real (como vimos na seo anterior).
O rudo rosa possui uma queda de 3dB por oitava. Este rudo muito usual no teste de
equipamentos e montagens de aparelhos alm de presena destacada na natureza (3).

fmin 15Hz
fi = i

fa
,

i




3 log2
20
i = 10

, i N
2

fi
fmin

ci = 0 , i : fi < fmin

(2.51)

ci = e j.x .i , j2 = 1 , x randmico [0, 2] , i : fmin fi < fd/21e


c/2 = /2

(se par)

ci = ci , para i > /2
A frequncia mnima fmin pode ser escolhida com base no limite da audio, pois no se
escuta como altura uma componente sonora cuja frequncia esteja abaixo de 20Hz.
Os rudos restantes podem ser feitos com base no procedimento descrito para o rudo rosa,
bastando que modificar detalhes, em especial a equao que define i .
O rudo marrom deve seu nome a Robert Brown, que descreveu o movimento browniano.

79

Embora esta origem seja um tanto dspar do que pode-se considerar motivo para uma
associao com a cor marrom, o rudo sonoro ficou consagrado com este nome. De
qualquer forma, bastante comum declarar satisfatria a associao do rudo com a cor
marrom, uma vez que os rudos branco e rosa so mais estridentes e relacionados a cores
mais intensas (10, 34).
O que caracteriza este rudo a queda de 6dB por oitava. Desta forma, i no conjunto
2.51 fica:


6 log2
20

i = (10

fi
fmin

(2.52)

No rudo azul h ganho de 3dB por oitava em uma banda limitada pela frequncia mnima
fmin e a frequncia mxima fmx . Assim, tambm com base no conjunto de equaes 2.51:


log2

3
20

i = (10 )

fi
fmin

(2.53)

ci = 0 , i : fi < fmin ou fi > fmx


O rudo violeta similar ao rudo azul, mas o ganho de 6dB por oitava:


6
20

log2

i = (10 )

fi
fmin

fmin 15Hz

(2.54)

O rudo preto possui perdas maiores que 6dB por oitava, assim:

20

i = (10

log2

fi
fmin

>6

(2.55)

O rudo cinza definido como um rudo branco sujeito a uma das curvas iso-audveis.
Estas curvas so resultados experimentais e necessrias para a obteno de i . Uma
implementao da ISO 226, a ltima reviso destas curvas, est na toolbox massa.(2)

80

Foram expostos somente rudos com espectro esttico. Existem classificaes de rudos com
variaes do espectro no decorrer do tempo. Existem tambm rudos que so fundamentalmente
transientes, como os clicks e os chirps. O primeiro modelado facilmente por um impulso
relativamente isolado, enquanto o segundo no um rudo, mas uma varredura rpida de alguma
banda de frequncia.(10)
Os rudos das equaes 2.50, 2.51, 2.52, 2.53, 2.54 esto na figura 2.18. Os espectros foram
feitos com a mesma fase em cada coeficiente de mesma frequncia, de forma que se pode
observar a contribuio dos harmnicos agudos e das frequncias graves.

2.2.5

Tremolo e vibrato, AM e FM

O vibrato uma variao peridica de altura (frequncia) e o tremolo uma variao peridica
de volume (intensidade).21 Para o caso geral, o vibrato descrito da seguinte forma:

e
M

i0 = i f 0
fa

(2.56)

e0 %
ti0 = m
eM

(2.57)

f +
fi = f
f

i = fi
fa

21

!t 0
i

= f.2ti 12

!t0 X
i
i e
i e
X

e
j

0
f +
t j 12

=
i =
f j =
f
f.2
fa
f
f
f
j=0
j=0 a
j=0 a

(2.58)

(2.59)

Alguns instrumentos e contextos musicais usam nomenclaturas diferentes. Por exemplo, no piano, o chamado
tremolo um vibrato e um tremolo segundo a classificao aqui utilizada. As definies presentes neste trabalho
tem por base uma literatura mais abrangente do que a utilizada para um nico instrumento, prtica ou tradio
musical e comum em contextos de teoria musical e musica eletrnica.(11, 30)

81

f,vbr( f 0 , )

Ti

n f,vbr( f 0 , ) o1 n
o1
= ti
= e
li %
e
0

(2.60)

Figura 2.19 Espectrograma de um som com vibrato senoidal de 3Hz e profundidade de uma oitava em
uma dente de serra de 1000Hz (considerada fa = 44.1kHz).

Para a correta realizao do vibrato, importante ateno para as duas tabelas e sequncias. A
e M e a sequncia de ndices 0 formam a sequncia t0 que o padro da
ei de tamanho
tabela M
i
i
e e a sequncia de ndices i formam
oscilao da frequncia enquanto a tabela e
Li de tamanho
ti que o som em si. As variveis e quantificam a intensidade do vibrato: uma medida
direta da quantidade de Hertz envolvidos no limite superior da oscilao e a medida direta
de semitons envolvidos na oscilao (2 o nmero de semitons entre os picos superiores e
inferiores de oscilao da frequncia do som {ti } causada pelo vibrato). conveniente =
log2

f +
f

neste caso pois o aumento mximo de frequncia no equivale diminuio mxima,

mas a variao de semitons se mantm.


A Figura 2.19 o espectrograma de um vibrato artificial de uma nota em 1000Hz (entre um si e
um d) e cujo desvio da frequncia atinge uma oitava para cima e para baixo. Qualquer forma

82

de onda pode ser utilizada para gerar o som e o padro de oscilao do vibrato em quaisquer
frequncia de oscilao e desvio de altura envolvidos22 . Estas oscilaes com formas precisas e
amplitudes arbitrrias no so praticveis em instrumentos musicais tradicionais, introduzindo
novidade nas possibilidades artsticas.
O caso do tremolo semelhante: f 0 , i0 e ti0 permanecem os mesmos. A sequncia de amplitudes
a serem multiplicadas pela sequncia original ti fica:

ai = 10

tr( f 0 )

Ti

VdB 0
20 ti

t0

i
= amx

(2.61)



1

n tr( f 0 ) o1
0 VdB 1
ti0
= ti .amx
= ti
= {ti .ai }01 = ti .10ti 20
0

(2.62)

Onde VdB a profundidade da oscilao em decibels do tremolo e amx = 10

VdB
20

o ganho

mximo de amplitude envolvido. A medio em decibels pertinente pois o aumento mximo


de amplitude no equivale diminuio mxima relacionada, enquanto a diferena em decibels
se mantm.
A figura 2.20 mostra a amplitude das sequncias {ai }1
e {ti0 }1
para trs oscilaes de um
0
0
tremolo com forma da dente de serra. A curvatura devida progresso logartmica de intensidade. A frequncia do tremolo de 1, 5Hz pois fa = 44, 1kHz durao =
3oscilaes
2s

imx =82000
fa

= 2s

= 1, 5 oscilaes por segundo (Hz).

A montagem musical Vibra e treme explora estes recursos dos tremolos e vibratos em associao
e isoladamente com frequncias f 0 e profundidades ( e VdB ) diferentes, variaes progressivas
dos parmetros23 . A pea desenvolve tambm uma comparao entre os vibratos e tremolos
em escala logartmica e em escala linear para uma apreciao qualitativa. Seu cdigo est no
22

O desvio de altura chamado profundidade do vibrato e geralmente dado por convenincia em semitons ou
cents.
23 Os tremolos e vibratos ocorrem muitas vezes juntos em instrumentos tradicionais e na voz.

83

Apndice B.2.2 e disponvel online como parte da toolbox massa.

Figura 2.20 Tremolo de profundidade VdB = 12dB com padro oscilatrio de uma dente de serra em
f 0 = 1.5Hz em uma senoide de f = 40Hz (considerada taxa de amostragem fa = 44, 1kHz).

No aumento progressivo de f 0 , a aproximao do limiar de frequncia para audio do fenmeno sonoro como altura ( 20Hz) gera rugosidades para ambos tremolos e vibratos. Estas
rugosidades so muito apreciadas tanto na tradio erudita quanto na msica eletrnica atual,
especialmente no Dubstep. A rugosidade tambm gerada atravs de contedos espectrais que
geram batimentos.(38, 39) A sequncia Bela Rugosi explora este limiar com concomitncias de
tremolos e vibratos na mesma voz, com intensidades e formas de onda diferentes. Seu cdigo
est o Apndice B.2.6 e disponvel online como parte da massa.
Aumentando ainda mais a frequncia, estas oscilaes deixam de ser eventos identificveis.
Neste caso, as oscilaes so audveis como altura. Assim, f 0 , e a forma de onda realizam
alteraes espectrais no som original T i de formas diferentes para os tremolos e para os vibratos. So as chamadas snteses AM (Amplitude Modulation) e FM (Frequency Modulation),
respectivamente. Estas so tcnicas conhecidas, com aplicaes em sintetizadores como o Ya-

84

maha DX7, e com aplicaes fora da msica, como em telecomunicaes para transmisso de
informao via ondas eletromagnticas (ex. rdios AM e FM).
Para fins musicais e em resumo, pode-se entender a sntese FM atravs do caso entre senoides
e decompor os sinais em seus espectros de Fourier (i.e. senoidais) para casos mais complexos.
Assim, a sntese FM realizada com um vibrato senoidal de frequncia f 0 e profundidade em
um som tambm senoidal T i de frequncia f gera bandas centradas em f e distantes f 0 entre si:

"

!#)
i
i
0
cos f.2
+ .sen f .2
=
fa 1
fa 1
+
#
"

i
i
X

0
=
+
k.
f
.2
J
()
cos
f.2
=

1
f

1
a
a
k=
#
"
+

i
X

0
=
J
()
cos
(
f
+
k.
f
).2

fa 1

{ti0 } =

(2.63)

k=

onde
2
Jk () =

Z
0

 



cos k + . sin w .cos k + k.w dw
2
2

k = k%2 , k N

(2.64)

a funo de Bessel (36, 40) que na FM especifica a amplitude de cada componente.


Nestas equaes, a variao de frequncia introduzida por {ti0 } no respeita a progresso geomtrica de frequncia que acompanha a percepo de altura, mas sim a equao 2.33. A utilizao
das equaes 2.58 para a FM est no Apndice D, onde calculado o contedo espectral da
sntese FM obtida com oscilaes na escala logartmica. De fato, o comportamento simples que
torna a FM atraente obtido somente com as variaes lineares em 2.63.
O caso da modulao de amplitude (AM) mais simples:

85

{ti0 }1
0

!#
!)1
i
i
.P. sin f.2
=
fa 1
fa 1 0
!
"
!
!#)1
(
P.M
i
i
i
0
0
+
sin ( f f ).2
+ sin ( f + f ).2
= P. sin f.2
fa 1
2
fa 1
fa 1 0
= {(1 + ai ).ti }1
0

("
= 1 + M. sin f 0 .2

(2.65)
Ou seja, o som resultante o original e a reproduo de seu contedo espectral acima e abaixo
da frequncia original, distantes f 0 de f . Novamente, isso obtido com a variao na escala
linear de amplitude. No Apndice D est uma exposio do espectro da AM realizada com a
oscilao na escala logartmica de amplitude. Esta tambm perde o comportamento simples.
A sequncia T i de frequncia f , chamada portadora, modulada pela f 0 , chamada moduladora.
No jargo de FM e AM, e = 10

VdB
20

so chamados ndices de modulao. Assim, para o

padro de vibrao da moduladora {ti0 } as equaes:

i0


e M
0

= i f
fa

(2.66)

e0 %
ti0 = m
eM

(2.67)

Para aplicao da moduladora {ti0 } na portadora {ti } por FM:

fi = f + .ti0

i = fi
fa

(2.68)

i
i e
X
X

i =
f j =
( f + .t j )
fa
fa
j=0

j=0

(2.69)

86

f, F M( f 0 , )

Ti

n f, F M( f 0 , ) o1 n
o1
= ti
= e
li %
e
0

(2.70)

e da portadora.
Onde e
l um perodo da forma de onda de comprimento
Para realizar a AM, basta modular {ti } com {ti0 } atravs das equaes:

ai = 1 + .ti0

f, AM( f 0 , )

Ti

2.2.6

n f, AM( f 0 , ) o1
= {ti .ai }01 = {ti .(1 + .ti0 )}1
= ti
0
0

(2.71)

(2.72)

Usos musicais

A este ponto as possibilidades musicais explodiram. As caractersticas de altura (dada pela


frequncia), timbre (dado pela forma de onda e filtragens), volume (dado pela intensidade) e
durao (dada pelo nmero de amostras) podem ser consideradas de forma absoluta ou tratadas
ao longo de sua durao, com a nica exceo da durao em si.
Desta forma, os usos musicais aqui dispostos so uma coleo de possibilidades com o objetivo de exemplificar manipulaes sonoras que resultem algo musical, por razes variadas e
aprofundadas na prxima seo.

Vnculos entre caractersticas

Uma outra possibilidade interessante usar vnculos entre os parmetros do tremolo e do vibrato e algum parmetro da nota bsica, como a frequncia. Assim, pode-se estabelecer que
a frequncia do vibrato diretamente proporcional altura, e a profundidade do tremolo inversamente proporcional altura. Desta forma, com as equaes 2.56, 2.58 e 2.61 pode-se

87

escrever:

f vbr = f tr = f unca ( f )
= f uncb ( f )

(2.73)

VdB = f uncc ( f )
Com f vbr e f tr como f 0 nas equaes de referncia, ou seja, a frequncia de oscilao do vibrato e do tremolo da equao 2.56. J e VdB so as profundidades do vibrato e do tremolo,
respectivamente. As funes f unca , f uncb e f uncc so arbitrrias e dependentes das intenes
musicais. A montagem Tremolos, vibratos e a frequncia explora recursos como este e variaes da forma de onda da oscilao com vnculos, de modo a formar um idioma musical24 . Seu
cdigo est no Apndice B.2.3 e tambm disponvel online como parte da caixa de ferramentas

massa.
Com relao convoluo, pode-se estabelecer uma durao como pulso musical - a exemplo de
um pulso BPM - e distribuir impulsos no decorrer deste pulso, de forma a estabelecer mtricas
e ritmos25 . Por exemplo, 2 impulsos igualmente espaados fazem uma diviso binria bsica
do pulso. Dois sinais, um com 2 pulsos e outro com 3 pulsos, ambos com os impulsos igualmente espaados na durao do pulso, resultam na manuteno do pulso, com uma marcao
rtmica usada tanto em divises binrias quanto ternrias em diversos estilos de msica tnica e
tradicional.(41) Os prprios valores absolutos destes impulsos resultam em propores entre as
amplitudes dos sinais convoluidos. Este recurso da mtrica estabelecida pela convoluo com
impulsos explorado na montagem Trenzinho de caipiras impulsivos. Os recursos explorados
incluem a criao de amlgamas sonoros provenientes da sntese granular e esta montagem j
uma ponte para a prxima seo. Veja especialmente a figura 2.26. O cdigo da pea est na
24
25

Veja na prxima seo.


Lembrando que a convoluo com o impulso resulta no som deslocado ao instante de ocorrncia do impulso.

88

seo B.2.4 e disponvel como parte da toolbox massa.

Fonte em movimento, receptor em movimento, efeito Doppler

Retomada a exposio da subseo 2.1.7, quando uma fonte ou um receptor est em movimento,
suas caractersticas idealmente so atualizadas a cada amostra do sinal digital. As velocidades
so decompostas com relao direo de cada ouvido. Assim, dada a velocidade v s da fonte
(s de source), positiva se a fonte se move no sentido de se afastar do receptor e a velocidade vr
do receptor, positiva no sentido de se aproximar da fonte, a frequncia dada pela conhecida
frmula do efeito Doppler:

!
v som + vr
f0
f=
v som + v s

(2.74)

Com esta frequncia e com as relaes dadas pela nova DII da nova localizao da fonte, podese realizar o efeito Doppler. H um acrscimo para maior fidelidade ao fenmeno fsico: um
aumento da potncia recebida. Pode-se entender que este aumento em potncia proporcional
velocidade relativa, que, a cada segundo, acrescenta aquele trecho percorrido, pela forma de
 v 
r
s
onda, de potncia: P = P0 v343,2
, com P0 a potncia do sinal.
Assim, pode-se obter a amplitude e frequncia de uma fonte em movimento. Esteja esta fonte
frente do receptor a uma distncia horizontal de y0 metros e altura z0 metros. A distncia

1
q
2
2
dada por Di = di = yi + z0
onde yi = y0 + v s vr se consideradas v s e vr horizontais. A
0

amplitude muda com a distncia e com o fator de potncia citado acima (veja a subseo 2.1.2
para a converso de potncia para amplitude):

(
Ai =

z0
AP
di

)1
0

vr v s
z0

=
+
1
q

343,
2

y2 + z2

i
0
0

(2.75)

89

Observe que o fator alterador de amplitude devido distncia par enquanto a o fator devido
variao de potncia antissimtrico com relao ao cruzamento da fonte e do receptor. J a
frequncia tem uma progresso simtrica com relao altura, ou seja, os mesmos semitons (ou
fraes) acrescentados na aproximao so decrescidos no afastamento. Alm disso, a transio
abrupta caso a fonte e o receptor se cruzem com exatido, caso contrrio, h uma progresso
monotnica. No caso considerado, em que h uma altura fixa z0 , necessrio observar a componente de velocidade na direo entre o observador e a fonte:

1
y
q i

v
+
v
som
r

2 +y2

0 i

1
Fi = { fi }0 =
f

0
y

v som + v s z2 +y2

(2.76)

No Apndice A.2 est uma implementao em Python do efeito Doppler como descrito acima,
com as alteraes de frequncia e amplitude, e com o cruzamento da fonte com o receptor.

Filtragens e rudos (subsees 2.2.4 e 2.2.3)

Com os filtros as possibilidades explodem ainda mais vertiginosamente. Pode-se convoluir um


sinal para reverber-lo, para remover algum rudo, para gerar distores ou para tratamento com
intuito esttico mesmo. Por exemplo, a aplicao de um filtro passa banda em que deixa passar
somente entre 1kHz e 3kHz, resulta em sons que parecem de telefone ou de televiso antiga. Ao
remover com alguma preciso somente a frequncia de oscilao da rede eltrica (usualmente
50Hz ou 60Hz) e harmnicas, pode-se remover rudos introduzidos por equipamentos de udio.
Um uso mais incrementado e propriamente musical realizar filtragens em bandas especficas
e usar estas bandas pr-estabelecidas como um parmetro adicional das notas.
Inspirado nos instrumentos tradicionais, pode-se aplicar uma a filtragem dependente do tempo (3).
Cascatas destes filtros podem realizar filtragens complexas e mais precisas. A montagem Ruidosa faixa explora este recursos, realizando filtragens em rudos diversos e sntese de rudos

90

diversos. O cdigo da pea est no Apndice B.2.5 e disponvel online como parte da massa.
Estes recursos utilizados em conjunto podem incidir na realizao de um efeito chamado chorus.
A exemplo do que ocorre com um coro de cantores, neste efeito o som realizado com diversas pequenas modificaes, potencialmente aleatrias, em parmetros como frequncia central,
presena (ou ausncia) de vibrato e tremolo e suas caractersticas, equalizaes, volume etc.
Para o resultado final, estas verses do som inicial so ento mixadas (ver equao 2.30). A
pea Chorus infantil realiza chorus de formas diferentes em sons diferentes e seu cdigo est
no Apndice B.2.7. A toolbox massa disponibiliza online este script.

Reverberao

Com a mesma nomenclatura da subseo 2.1.7 sobre espacializao, a reverberao tardia pode
ser modelada como a convoluo com um trecho de rudo colorido rosa, marrom ou preto, em
decaimento exponencial de amplitude com relao tambm ao tempo. Assim, a atenuao nos
agudos e irregularidade suave na resposta em frequncia so contempladas de forma bastante
satisfatria.(34, 42) Linhas de atrasos podem ser adicionadas como prefixo ao rudo com o decaimento, assim contemplado as duas partes temporais da reverberao: as primeiras reflexes
e a reverberao tardia. Pode-se, para melhora de qualidade, calcular geometricamente a localizao da ltima superfcie em que cada frente de onda refletiu antes de chegar ao ouvido
nos primeiros 100 200 milissegundos e aplicar um filtro passa-baixas como em 2.2.3. O rudo
colorido pode ser introduzido gradualmente, desde o instante inicial dado pela incidncia direta
(i.e. sem reflexo alguma e dada pela DTI e DII), em fade-in, atingindo o mximo no comeo
da reverberao tardia, quando as incidncias geomtricas perdem sua importncia para as
estatsticas do rudo em decaimento.
Como um exemplo de implementao, seja 1 a durao do primeiro perodo e R a durao
total da reverberao (1 = 1 fa , R = R fa ). Pode-se associar uma probabilidade pi de uma

91

reincidncia do som na i-sima amostra com amplitude em decaimento exponencial. Seguindo


as indicaes na subseo 2.1.7, a reverberao R1i do primeiro perodo pode ser descrita desta
forma:

n o1 1
R1i = ri1
0

VdB
i

20 R 1

10

: ri1 =

com probabilidade

pi =

com probabilidade

1 pi


i 2
1

(2.77)

Onde VdB o decaimento total considerado em decibels, tipicamente 80dB ou 120dB. J a


r
reverberao R2i , do segundo perodo, pode ser emulada por um rudo marrom Rm
i (ou rosa Ri )

em decaimento exponencial:

R2i

)R 1
n oR 1 ( VdB i
2
m
20

1
R
= ri
. ri
= 10

Como:
R 1
Ri = {ri }
0

1
: ri =
ri

ri2

(2.78)

se

i=0

se

1 i < 1 1

(2.79)

se 1 i < R 1

a aplicao da reverberao representada por Ri a simples convoluo de Ri (chamada resposta ao impulso da reverberao) com a sequncia sonora T i , tal como descrito na subseo 2.2.3.
A reverberao conhecida por causar bastante interesse no ouvinte e tornar as sonoridades
mais agradveis. Alm disso, a modificao do espao em que so reverberadas a msica, ou
as sonoridades individualmente, constitui um macete (quase um clich) para causar surpresa e
interesse no ouvinte.

92

Envoltria ADSR

A variao de volume no decorrer de um som crucial para nossa percepo de timbre. A


envoltria de volume chamada ADSR (sigla de Atack-Decay-Sustain-Release) possui numerosas implementaes em sintetizadores em hardware e software. Uma implementao pioneira
pode ser encontrada no Hammond Novachord de 1938 e algumas variantes so citadas logo
abaixo.(43)
A envoltria ADSR escolstica caracterizada por 4 parmetros: durao do ataque (tempo que
o som demora para atingir seu volume mximo), durao do decaimento (segue ao ataque imediatamente), nvel de volume de sustentao (em que o volume fica estvel aps o decaimento)
e durao de soltura (aps a sustentao, nesta durao o volume decai a zero). Note que o
tempo de sustentao no especificado, pois resultante da durao em si menos os tempos
de ataque, decaimento e soltura.
A aplicao da envoltria ADSR com duraes A , D e R , durao total e nvel de sustentao aS , dado como frao da amplitude mxima, em uma sequncia sonora ti qualquer, pode
ser feita da seguinte forma:

A 1
! i1

A
1

A 1
{ai }0
=

0
iA A +D 1
D 1

A +D 1
{ai }
=

aS

(
ou
(
ou

R 1
R 1
{ai }
A +D = {aS }A +D

R ) 1
! i(

1
{ai }R =
a

aS

i
A 1

i A
1 (1 aS )
D 1

)A +D 1

i + R
aS aS
R 1

)1

(
ou

) A

(2.80)

Com X = b. fa c X (A, D, R, ) e um valor pequeno que torne o fade in e o fade out

93
80

40

satisfatrios, e.g. = 10 20 = 104 ou = 10 20 = 102 . Quanto menor for mais lento o fade,
a exemplo de da figura 2.14. J os termos do lado direito de 2.80 podem realizar as entrada e
sada do som a partir da intensidade zero, por serem lineares. Esquematicamente, a figura 2.21
mostra esta envoltria ADSR, uma implementao clssica que comporta variaes diversas.
Por exemplo, entre o ataque e o decaimento, pode-se adicionar uma partio adicional em que a
amplitude mxima perdura. Outro exemplo comum o uso de traados mais elaborados para o
ataque ou para o decaimento. A montagem musical ADa e SaRa, disponvel no Apndice B.2.8
e na massa, explora diversas destas configuraes da envoltria ADSR

n
o1
= {ti .ai }1
tiADS R
0
0

(2.81)

Figura 2.21 Envoltria ADSR (Attack, Decay, Sustain, Release) e uma sequncia sonora arbitrria
submetida envoltria. A variao linear de amplitude est acima. Abaixo a variao de
amplitude exponencial.

94

95

2.3

Organizao de notas em msica

Seja S j =

j
s j = Ti

H1
j j 1
= {ti }i=0
j=0

uma sequncia S j de H eventos musicais s j . Seja S j chamada

uma estrutura musical composta de eventos s j que so tambm estruturas musicais, p.ex.
notas. Esta seo dedicada s tcnicas que tornam S j interessante e agradvel na audio.
Os elementos de S j podem ser sobrepostos por mixagem, como na equao 2.30 e figura 2.11,
formando intervalos e acordes. Este o pensamento vertical da msica. A concatenao de
S j , como na equao 2.31 e na figura 2.12, forma sequncias meldicas e ritmos, associados ao
pensamento horizontal na msica. A frequncia fundamental f e o momento de incio (ataque) so, em geral, as caractersticas mais importantes dos elementos de S j . Estas viabilizam
msicas de alturas (harmonia e melodia) e a presena da mtrica temporal e ritmos, respectivamente.

2.3.1

Afinao, intervalos, escalas e acordes

Afinao
O dobro da frequncia uma oitava ascendente ( f = 2 f0 ). A diviso da oitava em doze notas o
cnone da msica ocidental clssica, alm de usos cerimoniais/religiosos e tnicos observados
fora da tradio ocidental.(7) Doze semitons equidistantes para o ouvido formam uma oitava,
1

portanto, se f = 2 12 f0 , h um semitom entre f0 e f . O fator = 2 12 , um semitom, forma uma


grade de notas no espectro audvel. Fixada uma frequncia f , as frequncias fundamentais
possveis esto separadas por intervalos mltiplos de . Esta preciso absoluta caracterstica
de implementaes computacionais, os instrumentos reais possuem desvios destas frequncias
1

para melhor compatibilizar os harmnicos de suas notas. Alm disso, a referncia fixa = 2 12
caracteriza a afinao de temperamento por igual. H afinaes com intervalos propostos como
razes de inteiros de baixa ordem, com fruto da observao de comportamentos fsicos. As

96

primeiras destas afinaes foram formalizadas por volta de 2 mil anos antes do advento do
temperamento por igual.(3)
Duas afinaes emblemticas so:
A intonao justa consiste em notas da escala diatnica associadas a razes de inteiros de
pequena ordem como apontados pela srie harmnica. As razes bsicas esto contidas
no modo jnico (d a d nas teclas brancas do piano, veja abaixo na subseo 2.3.1): 1,
9/8, 5/4, 4/3, 3/2, 5/3, 15/8, 2/1. Os intervalos so considerados com relao s notas
das escala e so usados o semitom 16/15, o tom menor 10/9 e o tom maior 9/8. H
diferentes formas de realizar uma diviso de 12 notas.
A afinao pitagrica baseia-se no intervalo 3/2 (quinta justa). O modo jnico fica: 1,
9/8, 81/64, 4/3, 3/2, 27/16, 243/128, 2/1. Os intervalos so tambm considerados com
relao s notas da escala. Alm dos intervalos do modo, so usados a segunda menor
256/243, a tera menor 32/27, a quarta aumentada 729/512, a quinta diminuta 1024/729,
a sexta menor 128/81 e a stima menor 16/9.
Para a realizao de microtonalidade26 , pode-se usar reais no inteiros para a sequncia de
1

alturas, ou modificar o fator = 2 12 e continuar usando inteiros. Por exemplo, uma afinao
bastante prxima da srie harmnica em si proposta na forma da diviso da oitava em 53
1

notas: 2 = 2 53 .(44) As notas nesta diviso da oitava em 53 notas se relacionam por inteiros
com 2 . Note que se S i uma sequncia de alturas relacionadas por 1 , um mapeamento para
n o n
o
notas relacionadas por 2 constitui uma nova sequncia S i0 = s0i = si 21 . A montagem musical
Micro tom explora recursos microtonais e seu cdigo est no Apndice B.3.3, assim como na

massa online.
26

O uso de intervalos menores que o semitom chamado microtonalidade e tem usos ornamentais e estruturantes da
msica. A diviso da oitava em 12 notas possui fundamentos fsicos mas no deixa de ser uma conveno adotada
inclusive pela msica erudita clssica de origem europeia. Outras afinaes so incidentes. Para citar somente
um exemplo, a msica tradicional tailandesa utiliza uma diviso da oitava em sete notas igualmente espaadas
1
( = 2 7 ), resultando em intervalos que pouco se assemelham aos intervalos na diviso de doze notas.(7)

97

Intervalos
1

Em propores de = 2 12 entre as frequncias das notas (i.e. um semitom), os intervalos do


sistema de 12 notas so representados por inteiros. A tabela 2.22 resume as caractersticas de
cada intervalo: sua nomenclatura tradicional, caractersticas de consonncia e dissonncia e
nmero de semitons de cada um.
Tabela 2.22 Intervalos musicais, suas notaes tradicionais, classificaes bsicas de dissonncia e
nmero de semitons. As consonncias perfeitas so os unssonos, as quintas e as oitavas
justas (J). As consonncias imperfeitas so as teras e as sextas maiores (M) e menores
(m). As dissonncias fortes so as segundas menores e stimas maiores. As dissonncias
brandas so as segundas maiores e as stimas menores. O primeiro caso especial consiste
na quarta justa, que consonante perfeita se considerada uma inverso da quinta justa,
caso contrrio pode ser considerada uma dissonncia ou uma consonncia imperfeita.
O segundo caso especial o trtono (4aum, 5dim, tri). Este consonante em algumas
culturas. J para a msica tonal, o trtono indica dominante e busca sua resoluo em
uma tera ou sexta e, por esta instabilidade, considerado intervalo dissonante.

consonncias
notao tradicional nmero de semitons
perfeitas:
1J, 5J, 8J
0, 7, 12
imperfeitas:
3m, 3M, 6m, 6M
3, 4, 8, 9
dissonncias
notao tradicional nmero de semitons
fortes:
2m, 7M
1, 11
brandas:
2M, 7m
2, 10
casos especiais
notao tradicional nmero de semitons
consonante ou dissonante:
4J
5
dissonante na tradio ocidental: trtono, 4aum, 5dim
6

A nomenclatura, com base em imposies e convenincias do sistema tonal, e de aspectos


prticos da manipulao de notas, pode ser especificada assim:(3, 7)
Intervalos por nmero de grados entre as notas: primeira (unssono), segunda, tera,
quarta, quinta, sexta, stima, oitava. Nona, dcima, dcima primeira, etc, so os intervalos compostos, de uma ou mais oitavas + um intervalo dentro da oitava, que caracteriza
o intervalo composto. Os intervalos so representados pelos dgitos numricos, e.g. 1, 3,

98

5 um unssono, uma tera e uma quinta.


Qualidades de cada intervalo: as consonncias perfeitas - i.e. unssono, quarta, quinta e
oitava - so justas. As consonncias imperfeitas - i.e. teras e sextas - e as dissonncias
- i.e. segundas e stimas - podem ser maiores ou menores. Exceo para o trtono.
A quarta justa tida como consonante perfeita ou dissonante de acordo com o contexto
e arcabouo terico. Como regra geral, pode ser considerada consonante salvo casos em
que usada de passagem para uma quinta ou tera como resoluo.
O trtono dissonante na msica ocidental por caracterizar a "dominante" no sistema tonal
(veja abaixo na subseo 2.3.2) e representar instabilidade. Algumas culturas entoam o
intervalo como consonante.
Um intervalo maior, decrescido de um semitom, resulta em um intervalo menor. Um
intervalo menor, acrescido de um semitom, resulta em um intervalo maior.
Um intervalo justo (unssono, quarta justa, quinta justa, oitava justa), ou um intervalo
maior (segunda maior 2M, tera maior 3M, sexta maior 6M ou stima maior 7M), acrescido de um semitom, resulta em um intervalo aumentado (p.ex. tera aumentada 3aum
com cinco semitons). A quarta aumentada tambm chamada de trtono (4aum tri).
Um intervalo justo, ou um intervalo menor (segunda menor 2m, tera menor 3m, sexta
menor 6m ou stima menor 7m), decrescido de um semitom, resulta em um intervalo
diminuto. A quinta diminuta tambm chamada de trtono (5dim tri).
Um intervalo aumentado, acrescido de um semitom, resulta em um intervalo mais que
aumentado e um intervalo diminuto, decrescido de um semitom, resulta em um intervalo
mais que diminuto.
Caso as notas soem simultaneamente, o intervalo harmnico.

99

Caso as notas soem em sequncia no tempo, o intervalo meldico. A ordem das notas, primeiro a nota mais grave ou a mais aguda, resulta em um intervalo ascendente ou
descendente, respectivamente.
Passada a nota mais grave para a oitava acima, ou a nota mais aguda uma oitava para
baixo, o intervalo invertido. Um intervalo, somado sua inverso, resulta 9 (7m inverte
para 2M: 7m + 2M = 9). Um intervalo maior invertido resulta em um intervalo menor e
vice-versa. Um intervalo aumentado invertido resulta diminuto e vice-versa, assim como
o mais que aumentado resulta em mais que diminuto e vice-versa. Um intervalo justo
invertido resulta igualmente justo.
Um intervalo maior que a oitava dito intervalo composto e classificado como o
intervalo entre as mesmas notas, mas na mesma oitava. So tambm especificados por
7 acrescido deste intervalo: 11J uma oitava mais uma quarta (7+4J==11J), 9M uma
oitava mais uma segunda maior (7+2M=9M).

Os intervalos aumentados/diminutos e mais que aumentados/diminutos so consequncias do


sistema tonal. Os graus da escala (veja abaixo na subseo 2.3.1) so realmente notas diferentes,
com funes e usos especficos. Assim, em uma escala de d bemol maior, a tnica - primeiro
grau - d bemol, no si, e a sensvel - stimo grau - si bemol, no l sustenido ou d duplo
bemol. De forma semelhante, o segundo grau de uma escala pode estar a um semitom do
primeiro grau, assim como a sensvel (stimo grau a um semitom ascendente do primeiro grau),
momento no qual h uma tera diminuta entre os dois semitons do stimo e segundo grau da
escala pois o primeiro grau est entre os dois graus prximos a ele: segundo e sensvel.(11)
Esta descrio resume a teoria tradicional dos intervalos musicais.(11) A montagem Intervalos
entre alturas explora estes intervalos de formas isoladas e diversas. O cdigo est no Apndice B.3.1 e disponvel online com a toolbox massa.(2)

100

Escalas

Uma escala um conjunto ordenado de alturas. Usualmente, as escalas se repetem a cada


oitava. A sequncia ascendente com todas as notas da diviso da oitava em 12 intervalos iguais,
1

separados pela razo = 2 12 , a escala cromtica de temperamento por igual. H 5 divises


perfeitamente simtricas da oitava dentro da escala cromtica. Estas divises so consideradas
1

escalas pelos usos fceis e peculiares que disso provm. Como inteiros aos quais = 2 12
elevado para multiplicar f0 , as escalas so:

11
cromtica = Eic = {eci }11
0 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} = {i}0

tons inteiros = Eit = {eti }50 = {0, 2, 4, 6, 8, 10} = {2.i}50


3
3
teras menores = Eitm = {etm
i }0 = {0, 3, 6, 9} = {3.i}0

(2.82)

2
2
teras maiores = EitM = {etM
i }0 = {0, 4, 8} = {4.i}0

trtonos = Eitt = {etti }10 = {0, 6} = {6.i}10


t

Assim, a terceira nota da escala em tons inteiros com f0 = 200Hz f3 = e3 . f0 = 2 12 .200 u


282.843Hz. Estas escalas ou padres geram estruturas estveis pelas simetrias internas, e
podem ser repetidas de forma eficiente e sustentada. Abaixo, na seo 2.3.7, ser retomado
o assunto das simetrias. A montagem Cristais expe cada uma destas escalas tanto meldica
quanto harmonicamente e seu cdigo est no Apndice B.3.2. Como parte da massa, este
cdigo disponibilizado online.
As escalas diatnicas:

101

6
menor natural = modo elico = Eim = {em
i }0 = {0, 2, 3, 5, 7, 8, 10}
6
modo lcrio = Eimlo = {emlo
i }0 = {0, 1, 3, 5, 6, 8, 10}

maior = modo jnico = EiM = {eiM }60 = {0, 2, 4, 5, 7, 9, 11}


6
modo drico = Eimd = {emd
i }0 = {0, 2, 3, 5, 7, 9, 10}
mf

modo frgio = Ei

(2.83)

mf

= {ei }60 = {0, 1, 3, 5, 7, 8, 10}

6
modo ldio = Eiml = {eml
i }0 = {0, 2, 4, 6, 7, 9, 11}
6
modo mixoldio = Eimmi = {emmi
i }0 = {0, 2, 4, 5, 7, 9, 10}

possuem apenas intervalos maiores, menores e justos. nica exceo para o trtono, que se
apresenta como quarta aumenta ou quinta diminuta.
Todas as escalas diatnicas seguem o padro de intervalos sucessivos tom, tom, semitom, tom,
tom, tom, semitom, e pode-se escrever:
{di } = {2, 2, 1, 2, 2, 2, 1}
e0 = 0
ei = d(i+)%7 + ei1

(2.84)
para i > 0

Com N. Para cada modo, h um nico valor de [0, 6]. Por exemplo, uma breve inspeo
ml
revela que eml
i = d(i+2)%7 + ei1 . Portanto, = 2 para o modo ldio.

A escala menor possui duas formas adicionais, meldica e harmnica:

6
menor natural (igual acima) = Eim = {em
i }0 = {0, 2, 3, 5, 7, 8, 10}
6
menor harmnica = Eimh = {emh
i }0 = {0, 2, 3, 5, 7, 8, 11}
14
menor meldica = Eimm = {emm
i }0 = {0, 2, 3, 5, 7, 9, 11, 12, 10, 8, 7, 5, 3, 2, 0}

(2.85)

102

O traado ascendente e descendente da escala menor meldica necessrio para a presena


da sensvel (stimo e ltimo grau, separado por um semitom da oitava, reala a polarizao na
tnica) no trajeto ascendente, o que no necessrio quando descende, retomando a forma natural. J a escala harmnica apresenta a sensvel, mas no evita o intervalo de segunda aumentada
entre o sexto e stimo graus, pois no precisa contemplar trajetria meldica, apenas apresentar
a sensvel to cara ao sistema tonal (a sensvel tende tnica, afirmando-a).(30) Outras escalas
podem ser representadas da mesma forma, como as pentatnicas e os modos de transposio
limitados de Messiaen.(45)

Acordes

A ocorrncia simultnea de notas observada atravs dos acordes. Destes, a base na msica
tonal so as trades. Estas constituem-se de duas teras sucessivas, em 3 notas: fundamental,
tera e quinta. Um acorde invertido aquele que apresenta no grave outra nota que no a fundamental. A posio fechada aquela em que no cabe nota alguma do acorde entre quaisquer
duas notas consecutivas.(11) As trades, sem inverso, na forma fechada e com a fundamental
em 0, so:

trade maior = AiM = {aiM }20 = {0, 4, 7}


m 2
trade menor = Am
i = {ai }0 = {0, 3, 7}

trade diminuta =

Adi

= {adi }20

(2.86)

= {0, 3, 6}

trade aumentada = Aai = {aai }20 = {0, 4, 8}


Para considerar outra tera sobreposta quinta, basta acrescentar 10 ao final para a ttrade com
stima menor ou 11 para a ttrade com stima maior. As inverses e posies abertas podem
ser obtidas com a adio seletiva de 12 s componentes.

103

Acordes tridicos incompletos, com notas adicionais (acordes sujos), e no tridicos so comuns. Orientaes gerais so:

Uma quinta constitui uma fundamental confirmada pelo intervalo.


A tera maior ou menor aponta a qualidade maior ou menor do acorde.
Todo trtono, especialmente se formado entre uma tera maior e uma stima menor, tende
a resolver em uma tera ou uma sexta.
Evita-se a duplicao de nota. Na necessidade de duplicao, a ordem de preferncia : a
fundamental, a quinta, a tera e a stima.
Pode-se formar acordes com notas diferentes das tridicas, especialmente se dentro de
alguma lgica recorrente ou encadeamento musical que justifique as notas diferentes.
Acordes formados por sucesses de intervalos diferentes da teras, como as quartas ou as
segundas, so recorrentes dentre composies de tonalismo avanado ou experimentais.
A repetio de sucesses de acordes (ou suas caractersticas) fixa uma trajetria pela
recorrncia e permite a introduo de formaes exticas sem que haja incoerncia.

2.3.2

Harmonias atonal, tonal, expanso e modulao

A omisso dos encadeamentos bsicos do sistema tonal chave para a obteno de harmonias
modal e atonal. No caso desta ausncia de estruturas tonais mnimas, se as notas coincidirem
com alguma escala diatnica (veja as equaes 2.83) ou forem em nmero pequeno, pode-se
dizer que a harmonia modal. Caso encadeamentos tonais bsicos estejam ausentes, as notas
no coincidam com alguma das escalas diatnicas e forem diversas e dissonantes (com relao
s outras notas) o suficiente para evitar reduo por polarizaes, a harmonia atonal. Nesta
classificao, a harmonia modal no tonal e no atonal. A harmonia modal est reduzida

104

incidncia de notas dentro de escalas diatnicas (ou simplificaes) e ausncia de estruturas


tonais. Pode-se perceber, pelo conceito, que a harmonia atonal difcil de ser realizada.(46)
Harmonia atonal
De fato, as tcnicas de msica atonal visam estruturas que evitam o vnculo da audio a modos
e relaes tonais. A dificuldade tamanha que o dodecafonismo surgiu. A proposta do dodecafonismo usar um conjunto de notas, idealmente usa-se as 12 notas, e executar uma a uma
destas notas na mesma ordem. Neste contexto, a tnica fica difcil de se estabelecer. Mesmo
assim, a audio ocidental procura traos tonais nas msica e facilmente os encontra por caminhos inesperados e por vezes tortuosos. A utilizao de intervalos dissonantes, especialmente
trtonos sem resolues, nonas, segundas e stimas, refora a ausncia de tonalidade. Neste
contexto, para criao da pea, pode-se:

Repetir notas. Ao considerar a repetio imediata um prolongamento da incidncia anterior, notas iguais, sem outras notas entre elas, no adicionam informao relevante.
Soar notas adjacentes ao mesmo tempo, formando intervalos harmnicos e acordes.
Apresentar duraes livremente, desde que respeitada a ordem de apario das notas.
Para variao, alm dos recursos de ampliao, transposio e translao, so usados o
inverso, o retrgrado e o retrgrado do inverso. Veja nas subsees 2.3.5 e 2.3.9 para
maiores detalhes.
Variaes de instrumentao, articulao, espacializao e outras possibilidades de apresentao da estrutura de notas.

A harmonia atonal pode ser observada, de forma paradigmtica, dentro destas condies. Vale
apontar que boa parte do que escreveram os compositores emblemticos para o dodecafonismo,

105

como Alban Berg e o prprio Schoenberg, consiste de aplicaes parciais e livres destas tcnicas. Vrias peas fazem at mesmo pontes propositais entre tcnicas tonais e atonais.

Harmonia tonal

No sculo XX, msicas rtmicas e com nfase em sonoridades/timbres ampliaram as concepes


de tonalidade e harmonia. Ainda assim, a harmonia tonal tem forte presena nas vertentes
artsticas e comerciais. Considera-se o prprio dodecafonismo de natureza tonal pois consiste
na negao das caractersticas tonais de polarizao.
Na msica tonal ou modal, acordes, como os listados nas equaes 2.86, constitudos com a
fundamental em cada grau de uma escala, como das equaes 2.83, formam os pilares do campo
harmnico. A observao de progresses incidentes de acordes e regras para encadeamentos
o objeto de estudo da harmonia musical. Mesmo uma melodia monofnica gera campos
harmnicos e pode-se observar acordes sugeridos por cada passagem.
Na harmonia tonal tradicional, a escala pode ter como tnica (primeiro grau da escala) qualquer nota e pode ser maior (com as mesmas notas do modo jnico) ou menor (as notas do elico
constituem a escala "menor natural" e esta possui verses harmnica e meldica, veja a equao 2.85). A escala escolhida base para trades, cada uma com a fundamental em um grau da
6,
7.
2,
3,
4,
5,
Para a formao do acorde, so consideradas a terceira nota e a quinta
escala: 1,
nota acima da fundamental, considerando a prpria nota como a primeira e utilizando as notas
3,
5 para o acorde do primeiro grau, formado pelo primeiro grau
da escala. Pode-se anotar 1,
7,
2 (7
da escala e central para uma msica tonal. Secundrios so os acordes do quinto grau 5,
1.
6,
Depois so considerados os outros
sustenido no caso da escala menor) e do quarto grau 4,
graus. A harmonia tradicional consiste em convenes e tcnicas estilsticas de encadeamento
destes acordes, formados em cada grau da escala.(30)
A harmonia funcional atribui funes a estes trs acordes centrais e busca compreender seus

106

usos atravs destas funes. O acorde formado sobre o primeiro grau o acorde de tnica (T
ou t se tnica maior ou menor) e tem a funo de manter um centro, um "cho" na msica. O
acorde formado sobre o quinto grau a dominante (D, a dominante sempre maior) e tem a
funo de tender tnica, direcionar a msica para ela. A trade formada sobre o quarto grau
a subdominante (S ou s se subdominante maior ou menor) e tem a funo de distanciar a msica
da tnica. O sistema se baseia em afirmar a tnica atravs de encadeamentos tnica-dominantetnica expandidos com outros acordes das formas mais diversas.
A estes trs acordes, so associadas as outras trades. Na escala maior, a associada relativa
(tnica relativa Tr, subdominante relativa Sr e dominante relativa Dr) a trade formada uma
tera abaixo e a associada anti-relativa (tnica anti-relativa Ta, subdominante anti-relativa Sa
e a dominante anti-relativa Da) a trade formada na tera acima. Na escala menor ocorre o
mesmo, mas a trade a uma tera abaixo chamada anti-relativa (tA, sA) e a trade a uma tera
acima chamada de relativa (tR, sR). As exatas funes e efeitos musicais destes acordes
motivo de bastante controvrsia. A tabela 2.23 mostra a relao entre as trades formadas em
cada grau da escala maior.
Tabela 2.23 Resumo das funes harmnicas tonais para a escala maior. A tnica o centro da
msica, a dominante tende tnica e a subdominante se distancia da tnica. Os trs
acordes podem, a princpio, serem substitudos livremente pelas respectivas relativas ou
anti-relativas.

relativa acorde principal da funo anti-relativa


1,
7
3
3,
5
5,
6,
tnica: 1,
3,
7
7,
5,
2
2,
4#
]
dominante: 5,
[ 7,
3,

4,
6
6, 1
3
2,
subdominante: 4,
6, 1,
necessrio que a dominante anti-relativa forme um acorde menor, por isso a alterao do
O acorde diminuto 7,
2,
4,
geralmente considerado
quarto grau um semitom para cima 7#.
uma dominante com stima e sem fundamental.(47) Em modo menor, h a alterao do 7
por um semitom ascendente para que haja somente um semitom de separao com a tnica,
permitindo a dominante (que deve ser maior e tender tnica). Assim, a dominante sempre

107

maior, tanto em escalas maior ou menor e, por este motivo, mesmo em tom menor, a dominante
relativa permanece a uma tera abaixo e a antirrelativa a uma tera acima.

Expanso tonal: funes individuais e medianas cromticas

Cada um destes acordes pode ser confirmado e se desenvolver com uma execuo de sua dominante ou subdominante individual, que o acorde com base na trade formada a uma quinta
acima ou uma quinta abaixo respectivamente. Estas dominantes/subdominantes individuais, por
sua vez, possuem tambm subdominantes e dominantes individuais passveis de uso. Assim,
em uma dada tonalidade, pode ocorrer qualquer acorde, por mais distante que seja do campo
harmnico e das notas da escala, desde que a ocorrncia apresente um percurso coerente de
dominantes e subdominantes at a tonalidade de origem.
As medianas, ou medianas cromticas, so duas para cada acorde: a mediana cromtica superior, formada com a fundamental na tera do acorde original, e a inferior, formada com a
quinta na tera do acorde original. So acordes formados tambm a uma tera, mas com uma
alterao cromtica com relao ao acorde de origem. Caso haja duas alteraes cromticas,
i.e. duas notas alteradas por um semitom cada com relao ao acorde original, a mediana
chamada duplamente cromtica. Tambm so duas para cada acorde: a superior, com tera
na quinta do acorde original, e a inferior, com tera na fundamental da trade original. Observe
que um acorde maior possui medianas maiores e medianas duplamente cromticas maiores. Um
acorde menor possui medianas menores e medianas duplamente cromticas menores. Esta relao entre acordes considerada de tonalismo avanado, por vezes at de expanso e dissoluo
do tonalismo, e tem efeitos fortes e marcantes embora perfeitamente consonantes. As medianas
foram utilizadas a partir do final do romantismo por Wagner, Lizt, Richard Strauss dentre outros
e so bastante simples de serem realizadas.(30, 48)

108

Modulao
A modulao a mudana da tonalidade em que se encontra a musica. Caracteriza-se a modulao atravs da observao das tonalidades de partida e chegada e da forma de transio. As
tonalidades so sempre tidas como relacionadas por quintas e suas relativas e antirrelativas. So
formas de efetuar a modulao:
A transposio do discurso para a nova tonalidade, sem preparao alguma. procedimento tpico do barroco embora seja incidente em outros perodos. Por vezes chamada
de modulao frasal ou modulao sem preparao.
O uso cuidadoso de uma dominante individual, e possivelmente tambm a subdominante
individual, para afirmar a mudana da tnica e campo harmnico.
Uso de alteraes cromticas para atingir um acorde da nova tonalidade a partir de algum
acorde da tonalidade anterior. Chamada de modulao cromtica.
O destaque para uma nica nota, possivelmente repetida ou suspensa sem acompanhamento, comum s tonalidades de sada e chegada, constitui uma forma peculiar de introduzir o novo campo harmnico.
Mudana da funo, sem a modificao das notas em si, de um acorde para contemplar
nova tonalidade. Procedimento chamado de enarmonia.
A manuteno do centro tonal e mudana da qualidade maior para menor (ou vice-versa)
da tonalidade a modulao paralela. A tonalidade de mesma tnica e outra qualidade
chamada homnima.
A importncia da dominante a torna piv natural das modulaes, o que desemboca no crculo
das quintas.(30, 4749) A montagem musical Acorde cedo explora estas relaes entre acordes.
Seu cdigo est disponvel do Apndice B.3.4 e online como parte da massa.(2)

109

2.3.3

Contraponto

A conduo de linhas meldicas simultneas, chamadas vozes, o contraponto. A bibliografia


percorre formas sistemticas de conduo de vozes e desemboca em gneros escolsticos como
cnones, invenes e fugas. possvel resumir regras principais do contraponto e dito que o
prprio Beethoven - dentre outros - esboou uma sntese deste tipo.

Figura 2.24 Movimentos diferenciados pelo contraponto com vistas a preservar a independncia entre
as vozes. 3 tipos de movimentos: direto, contrrio e oblquo, categorizam as possibilidades. O movimento paralelo um tipo de movimento direto.

O propsito do contraponto conduzir as vozes de forma que soem independentes. Cruciais


para isso so as movimentaes relativas, das vozes duas a duas, categorizadas em: movimento
direto, oblquo e contrrio conforme a figura 2.24. O movimento paralelo um movimento
oblquo. A regra de ouro cuidar que os movimentos diretos no terminem em consonncia
perfeita. O movimento paralelo deve s ocorrer entre consonncias imperfeitas e no mais do
que trs vezes consecutivas. As dissonncias podem ser no admitidas ou usadas seguidas e
precedidas de consonncias em graus conjuntos, i.e. notas vizinhas na escala. Os movimentos

110

que levam a nota a uma vizinha soam mais coerentes. Na presena de 3 ou mais vozes, a
importncia meldica recai sobre as vozes mais aguda e mais grave, nesta ordem.(5052)
Estas regras foram usadas na montagem Conta ponto, o cdigo est no Apndice B.3.5 e disponvel online junto massa.

2.3.4

Ritmo

A noo rtmica dependente de eventos separados por duraes.(11) Estes eventos podem ser
ouvidos individualmente se espaados por ao menos 50 63ms. Para que a separao temporal entre eles possa ser apreciada como durao, ela deve ser maior, por volta de 100ms.(14)
Pode-se sumarizar a transio de duraes ouvidas como alturas para a apreciao em ritmo da
seguinte forma:(14, 53)
Tabela 2.25 Transio das duraes ouvidas individualmente para alturas.
durao (s)
frequncia (Hz)

...
...

32,
1/32,

zona de percepo de duraes em ritmo

16,
8,
4,
2,
1,
1/2,
1/16,
1/8,
1/4,
1/2,
1,
2,
-

transio
1/4,
4,

1/8,
8,

1
16

= 62, 5ms ,
16,

1
20

transio

= 50ms
20

1/40
40

1/80
1/160
1/320
1/640
80
160
320
640

zona de percepo de duraes em altura

A banda de duraes marcada como transio est minimizada pois os limites no so bem definidos: a durao em que se comea a perceber uma frequncia fundamental ou uma separao
entre as ocorrncias dependente da pessoa e de caractersticas do som.(3, 14)
A mtrica rtmica costuma se basear em uma durao bsica chamada pulso. O pulso tipicamente compreende duraes entre 0.25 1.5s (respectivamente 240 e 40BPM). Na educao
musical e estudos cognitivistas, costuma-se associar esta gama de frequncias de pulsao s duraes entre batidas do corao, da inspirao/expirao ou entre os passos ao caminhar.(3, 11)
O pulso subdividido em partes iguais e tambm repetido sequencialmente. Estas relaes
(de diviso e de concatenao) costumam seguir relaes de nmeros inteiros de baixa ordem

...
...

111
27 .

Uma exposio esquemtica est na figura 2.26.

Figura 2.26 Divises e aglomeraes do pulso musical para estabelecimento de mtrica. Ao lado esquerdo esto as divises da semnima estabelecida como pulso. Ao lado direito, frmulas
de compasso que especificam as mesmas mtricas, mas na escala das aglomeraes do
pulso musical.

As relaes duais (compassos simples e divises binrias) costumam ocorrer em ritmos de


dana e ocasies festivas, e so chamadas imperfeitas. As relaes ternrias incidem mais
na msica ritualstica e relacionada ao sagrado e so ditas perfeitas.
As unidades mais fortes (acentuadas) so as que consistem nas cabeas das divises. A cabea
de uma unidade a primeira parte da subdiviso. Nas divises binrias (2, 4 e 8 dos casos
considerados), as unidades consideradas fortes se revezam com as fracas (e.g. a diviso em 4
forte, fraco, meio-forte, fraco). Nas divises ternrias (3, 6 e 9) unidade forte (primeira) se

27

Em ordem crescente de ocorrncia na msica escrita e tnica, as divises do pulso musical e seus agrupamentos
sequenciais no tempo so: 2, 4 e 8, depois 3, 6 (dois grupos de 3 ou 3 grupos de 2) e 9 e 12 (3 e 4 grupos de
3). Por ltimo os primos 5 e 7, completando 1-9 e 12. Outras mtricas so menos usuais, como divises ou
agrupamentos em 13, 17, etc, e so incidentes principalmente em contextos de msica experimental e erudita do
sculo XX e XXI. Por mais complexas que paream, as mtricas costumam ser composies e decomposies de
1-9 partes iguais.(3, 41).

112

sucedem 2 unidades fracas (e.g. a diviso em 3 forte, fraco fraco)28 .


A acentuao em tempo fraco o contratempo, uma nota iniciada em tempo fraco e cuja durao
se prolonga sobre um tempo forte uma sncopa.
As notas podem ocorrer dentro e fora destas divises da mtrica musical. Nos casos mais
comportados, as notas ocorrem exatamente nestas divises, com maior incidncia em ataques
nos tempos fortes. Em casos extremos, no se pode perceber a mtrica.(3) Variaes pequenas
na grade ajudam a compor a interpretao musical e diferenas entre estilos.(10)
Seja o pulso o nvel j = 0 de agrupamento, o nvel j = 1 a primeira subdiviso do pulso, o
j

nvel j = 1 a primeira aglomerao dos pulsos e assim por diante. Desta forma, Pi a i-sima
unidade de pulsos no nvel j de agrupamento: P010 o dcimo pulso, P13 a terceira unidade de
agrupamento de pulsos ( possvel que seja o terceiro compasso), P1
2 a segunda unidade da
subdiviso do pulso.
Especial ateno para os limites de j: as divises do pulso so duraes apreciveis como ritmo;
alm disso, as junes do pulso somam, no mximo do escopo, uma msica ou um conjunto
min( j)

coeso de msicas. Dito de outra forma: a durao de Pi


, i, maior que 50ms e as duraes
P mx( j)
somadas i Pi
menor do que alguns minutos ou, no mximo, poucas horas.
Cada nvel j possui alguns ndices i. Sempre que o ndice i possuir trs valores diferentes (ou
mltiplo de trs), h uma relao perfeita. Quando i possuir somente mltiplo dois, quatro ou
oito valores diferentes, h uma relao imperfeita, como na figura 2.26.
Qualquer unidade (nota), de uma dada sequncia musical que tenha mtrica pode ser univocamente assim especificada:

28

A diviso em 6 considerada composta mas pode ocorrer tambm como uma diviso binria. Uma diviso
binria que sofre ento uma diviso ternria resulta em duas unidades divididas em trs unidades cada: forte
(subdividido em forte fraco, fraco) e fraco (subdividido em forte, fraco, fraco). A outra forma de ocorrer a
diviso em 6 atravs de uma diviso ternria que sofre ento uma diviso binria, resultando em: uma unidade
forte (subdividido em forte e fraco) e duas unidades fracas (subdivididas em forte e fraco cada).

113

{j }

P{i k}

(2.87)

em que jk o nvel de aglomerao e ik a ordem da unidade em si.


1
0
Como um exemplo, P1,0,1
3,2,2 a terceira subdiviso P3 do segundo pulso P2 do segundo agloj

merado de pulsos P12 . Cada unidade ou conjunto de unidades Pi pode ser associada a uma
sequncia de amostras temporais T i que forma uma nota musical.
A montagem Poli Hit Mia utiliza as diferentes mtricas e est no Apndice B.3.6, disponvel
online como parte da massa.

2.3.5

Repetio e variao: motivos e unidades maiores

Dadas as estruturas musicais bsicas tanto frequenciais (acordes e escalas) quanto rtmicas (divises e aglomeraes simples, compostas e complexas), natural apresentar estas estruturas de
forma que tenham coeso e sentido.(54) Para tal, fundamental o conceito de arcos: partindo
de algum lugar e voltando, forma-se um arco. A audio de linhas meldicas e harmnicas
permeada de arcos musicais pela natureza cognitiva da escuta musical. Pode-se considerar a
nota o menor arco, cada motivo e melodia tambm um arco. Cada tempo e cada subdiviso,
cada compasso e seco da msica, constitui um arco prprio. Uma msica, cujos arcos no
apresentam consistncia entre si, pode ser compreendida como uma msica sem coeso. A
sensao de coerncia provm, em grande parte, do tratamento hbil dos arcos de uma pea.
Os arcos musicais so estruturas abstratas e passveis de operaes bsicas. Um arco espectral,
como um acorde, pode ser invertido, ampliado e permutado, por exemplo. Os arcos temporais,
como uma melodia, um motivo, um compasso ou uma nota, so igualmente passveis de varia
H1
j
j 1
es. Lembrando que S j = s j = T i = {ti }0 j
uma sequncia de H eventos musicais s j ,
0

cada evento com suas j amostras

j
ti

(veja no incio desta seo 2.3), as tcnicas bsicas podem

114

ser descritas assim:

A translao temporal o deslocamento do material para um outro instante 0 = +


da msica. uma variao do material com modificao na localizao no decorrer da
n o n 0o n
o
msica: s0j = sj = s+
onde a durao entre o comeo da pea (ou trecho consij
derado) e o primeiro evento s0 da estrutura S j original. Observe que o deslocamento
no tempo.
A dilatao ou contrao temporal a alterao da durao de cada arco por um fator
.

j
: s0
j = s j . Possivelmente, j = constante.

Reverso temporal consiste em gerar uma sequncia com os elementos em ordem invern oH1 n
oH1
tida da sequncia original S j , assim: S 0j = s0j
= s(H j1)
.
0

A translao em altura o deslocamento do material para uma altura diferente 0 =


+ da msica. uma variao com modificao na localizao em altura do material:
n o n 0o n
o
s0j = sj = s+
onde a altura do trecho S j ou do primeiro evento s0 da estrutura
j
S j original. Observe que o deslocamento em altura. Caso seja dado em semitons,

o deslocamento em frequncia f = f0 .2 12 onde f0 resultado da adoo de alguma


referncia: f0 = f0 Hz 0 valor absoluto de altura. Para a frequncia para qualquer
0

valor de altura: f = f0 .2 12 . Para altura de qualquer valor de frequncia: = 0 +


 

12. log2 ff . No protocolo MIDI, f0 = 55Hz enquanto 0 = 33 de altura marca o l


0

1, outro ponto de referncia o f0 = 440Hz que corresponde a 0 = 69. A diferena


da unidade equivale ao semitom. No se pode dizer que a unidade o semitom pois
= 1 no um semitom, uma nota de frequncia audvel como ritmo, com menos de 9
ocorrncias por segundo (veja a tabela 2.25).
A inverso intervalar a inverso do sentido dos intervalos percorridos pelo material. A
inverso estrita se o nmero de semitons esteja sendo usado como referncia para a

115

operao:

S 0j

{s0j }0H1

. f
sj j 0


, onde j o fator entre a frequncia do evento s j e a

frequncia de s0 . A inverso tonal caso as distncias sejam consideradas em termos de


(
)H1
e
( ( je ) ) . f0
0
0
H1
nmeros de graus da escala Ek : S j = {s j }0 = s j
onde je = einv
j o ndice
k = je em Ek da nota do evento s j .

Rotao de elementos musicais a transferncia do ltimo elemento para a posio do


primeiro e o deslocamento deste ao penltimo uma posio para frente. Pode-se definir a
rotao de n posies por S n0 = S (n+n)%H . Caso n < 0, basta usar n 0 = H n . razovel
associar n > 0 com a rotao horria e n < 0 com a rotao anti-horria. Mais sobre
rotaes na subseo 2.3.7.
A insero e remoo de materiais na estrutura S j pode ser ornamental ou estruturante:
S 0j = {s0j } = {s j se condio A, caso contrrio r j }, para qualquer material musical r j , incluindo o instante vazio. Elementos de R j podem ser inseridos no comeo, como um
prefixo de S j , ao final, como um sufixo, ou no meio, dividindo S j ou fazendo dele o
prefixo e o sufixo. Os dois materiais podem se misturar das formas mais diversas.

Modificaes de articulao, instrumentao e espacializao s0j = s j j , com j a nova


caracterstica incorporada pelo elemento s0j .
Acompanhamento. Tanto a instrumentao quanto as linhas meldicas presentes na ocorrncia de S j podem sofrer modificaes e ser considerada uma variao de S j em si.

Com estes procedimentos, outros so derivados: o retrgrado do inverso, uma contrao temporal com um sufixo externo, etc. As estruturas musicais ressoam no sistema cognitivo devido
prpria natureza do pensamento. Em suas vrias facetas, uma ideia lida com o mesmo nmero
de elementos e aspectos conectivos entre eles. A msica, atravs de sintonia com estas estruturas mentais, suscita impresses. , assim, desencadeado todo um processo de ressonncia
mental e neurolgica responsvel pelos sentimentos, lembranas e imaginaes tpicas de uma

116

audio musical atenta. Esta atividade cortical contribui para a terapia musical, conhecida pela
utilidade em casos de depresso e dano neurolgico. Considera-se que as regies do crebro
responsveis pelo processamento auditivo so tambm usadas para outras atividades, incluindo
lingusticas e matemticas.(3, 55)
As estruturas paradigmticas orientam a criao de novos materiais musicais. Uma delas, central, o dipolo tenso/relaxamento. Relaciona-se com este dipolo, cada outro dipolo tradicional:
tnica/dominante, repetio/variao, consonncia/dissonncia, coerncia/rompimento, simetria/assimetria, igualdade/diferena, chegada/sada, perto/longe, parado/em movimento, etc. J
as relaes ternrias tendem a se relacionar com o circular e a unificao. A lcida comunho
ternria, modus perfectus, se ope ao dicotmico passional, modus imperfectus. A seguir
est uma exposio dedicada aos arcos direcionais e cclicos.

2.3.6

Estruturas direcionais

Os arcos podem ser decompostos em duas sequncias convergentes: uma que atinge o pice, e
outra que, de forma paradigmtica, volta do pice regio de partida. Este pice chamado de
clmax pela teoria musical tradicional. Distingue-se entre arcos cujos clmax esto: no comeo,
no meio, no final, na primeira metade e na segunda metade da durao considerada. Estas
estruturas esto na figura 2.27. O parmetro que varia pode no existir, no caso o arco consiste
somente em uma estrutura de referncia.(13)
n
o2H2
Seja S i = {si }0H1 uma sequncia crescente. A sequncia Ri = {ri }2H2
=
s

(H1|H1i|)
0
0

uma sequncia que apresenta simetria especular perfeita, i.e. a segunda metade uma verso
espelhada da primeira. Segundo conceitos musicais, o clmax est exatamente no meio da
sequncia. Pode-se modificar isso com o uso de sequncias de tamanhos diferentes. Toda
a teoria matemtica de sequncias, j estabelecida e ensinada corriqueiramente em cursos de
clculo III, pode ser utilizada para gerao destes arcos.(13, 56) Teoricamente, estas sequncias,

117

Figura 2.27 Distines cannicas do clmax musical em uma melodia e outros domnios. As possibilidades diferenciadas so: clmax no comeo, clmax na primeira metade, clmax no meio,
clmax na segunda metade, clmax no fim. No est especificado o eixo das ordenadas
pois pode no haver variao paramtrica real, neste caso a estrutura uma referncia.

aplicadas desta forma a qualquer caracterstica dos eventos musicais, produzem arcos, pois
implicam no afastamento e retorno de uma parametrizao inicial. Assim, possvel para uma
mesma sequncia de eventos possuir um nmero de arcos distintos, com tamanhos e clmax
diferentes. Este um recurso interessante e til e a correlao dos arcos resulta na coerncia da
escuta.(48)
Na prtica, e historicamente, tem especial importncia a razo urea e, por isso, a sequncia
de Fibonacci. A sequncia de Lucas permite uma generalizao da sequncia de Fibonacci que
pode ser compreendida facilmente. Dados dois nmeros quaisquer x0 e x1 , obtm-se a sequncia de Lucas: xn = xn1 + xn2 . Quanto maior for n, mais a razo

xn
xn1

se aproxima da razo

urea: 1.61803398875.... A sequncia converge rpido mesmo para valores iniciais bem discrepantes. Seja x0 = 1 e x1 = 100, e yn =

xn
xn+1

uma sequncia auxiliar. O erro em percentagem dos

primeiros valores desta sequncia com relao proporo urea , aproximadamente, {en } =

118

n
o10
yn
100 1.61803398875
100 = {6080.33, 37.57, 23, 7.14, 2.937, 1.09, 0.42, 0.1601, 0.06125, 0.02338}.
1

A sequncia de Fibonacci apresenta aproximadamente a mesma progresso de erros, mas comea j no segundo passo pois

1
1

101
100 .

A montagem sonora Dirracional expe estes arcos em estruturas direcionais. Seu cdigo est
no Apndice B.3.7 e disponvel online como parte da massa.(2)

2.3.7

Estruturas cclicas

O entendimento filosfico de que o pensamento humano fundamentado na percepo de semelhanas e diferenas, dentre os estmulos e objetos, coloca as simetrias no cerne do processo
cognitivo.(57) Matematicamente, as simetrias so grupos algbricos e um grupo finito sempre
isomorfo a um grupo de permutaes. Pode-se dizer que as permutaes representam quaisquer
simetrias em um sistema finito. Na msica, as permutaes so ubquas e esto presentes em
tcnicas, o que confirma seu papel central. A aplicao sucessiva das permutaes gera arcos
cclicos.(12, 58, 59) A esta abordagem foram dedicados dois trabalhos acadmicos para gerao
de estruturas musicais.(60, 61)
Qualquer conjunto de permutaes pode ser utilizado como gerador de grupos algbricos.(59)
As propriedades que definem um grupo G so:

p1 , p2 G
p1 , p2 , p3 G
eG:
p G, p1 :

p1 p2 = p3 G
(p1 p2 ) p3 = p1 (p2 p3 )
p e = e p p G
p p1 = p1 p = e

(propriedade de fechamento)
(propriedade da associatividade)
(2.88)
(existncia do elemento neutro)
(existncia do inverso)

Da primeira propriedade conclui-se que toda permutao pode ser operada com outra permutao. De fato, pode-se aplicar uma permutao p1 , depois outra p2 e, se comparadas as ordena-

119

es inicial e final, h uma permutao p3 .


Todo elemento p operado consigo mesmo um nmero suficiente de vezes n atinge o elemento
neutro pn = e, caso contrrio o grupo seria infinito (gerado por p). O menor n : pn = e
chamado de ordem do elemento. Assim, uma permutao finita p aplicada sucessivamente
atinge a ordenao inicial dos elementos, formando um ciclo. Este ciclo, se utilizado para
parmetros de notas musicais, implica em um arco musical cclico.
Estes arcos podem ser efetuados pelo uso conjunto de diferentes permutaes. Como exemplo
histrico, a tradio chamada change ringing concebe msica atravs de sinos tocados um aps
o outro e ento tocados novamente, mas em uma ordem diferente. Este processo se repete at
que se atinja a ordenao inicial. O conjunto de ordenaes diferentes percorridas um peal.
A tabela 2.28 representa um peal tradicional de 3 sinos (1, 2 e 3) que explora todas as suas
ordenaes. Cada linha apresenta uma ordenao dos sinos a ser tocada. As permutaes esto
entre as linhas. Neste caso, a estrutura musical consiste em permutaes propriamente ditas e
algumas permutaes diferentes operam para o comportamento cclico.
Tabela 2.28 Change Ringing: Peal (padro) com 3 sinos. As permutaes esto entre as ordenaes.
Cada linha uma ordenao dos sinos, cada ordenao tocada, uma linha por vez.

1
2
2
3
3
1
1

2
1
3
2
1
3
2

3
3
1
1
2
2
3

A utilizao de permutaes na msica pode ser resumida da seguinte forma: seja S i = {si }
uma sequncia de eventos musicais si (e.g. notas) e p uma permutao. S i0 = p(S i ) consiste
nos mesmos elementos de S i mas em ordem diferente. As permutaes podem ser escritas em
duas notaes: cclica ou natural. A notao natural consiste na ordem dos ndices resultante da
permutao. Assim, convencionada a ordenao original dada pela sequncia de seus ndices

120

[0 1 2 3 4 5 ...] a permutao notada pela sequncia que produz (ex. [1 3 7 0 ...]). Na notao
cclica, a permutao a troca de um elemento pelo da frente, e o ltimo pelo primeiro.
No necessrio permutar os elementos de S i , mas somente alguma ou algumas de suas caractersticas. Assim, seja p f uma permutao nas frequncias e S i uma sequncia de notas
n p( f ) o
bsicas como expostas ao final de 2.1.6. A nova sequncia S i0 = p f (S i ) = si
consiste nas
mesmas notas musicais, na mesma ordem e com as mesmas caractersticas, com as frequncias
fundamentais permutadas segundo o padro que p f apresenta.
Duas sutilezas deste procedimento. 1) A permutao p no precisa envolver todos os elementos
de S i , i.e. ela pode operar em subconjuntos de S i . 2) Nem todos os elementos si precisam ser
executados a cada consulta de estado realizada. Para exemplificar, seja S i uma sequncia de
notas musicais si . Se i vai de 0 a n, e n > 4, a cada compasso de 4 notas pode-se executar as
primeiras 4 notas. As outras notas de S i podem incidir nos compassos em que as permutaes
aloquem estas notas para as primeiras quatro notas de S i .
A cada uma destas permutaes pi , segundo a exposio acima, relaciona-se: dimenses das
notas em que opera (frequncia, durao, fades, intensidade, etc) e perodo de incidncia (a
cada quantas consultas aplicada a permutao). Na realizao das notas de S i , uma forma
fcil e coerente executar as primeiras n notas29 .
No Apndice C est a implementao computacional disponibilizada em.(2, 60, 61)

2.3.8

Idioma musical?

Existem diversas empreitadas que se propem a modelar e explorar entendimentos sobre a linguagem musical, a lingustica aplicada msica ou ainda para discernimento entre o que
seriam diferentes idiomas musicais.(9, 30, 48, 53) De forma simples, um idioma musical
fruto da escolha de materiais bsicos e repetio de elementos e da repetio de relaes en29

A execuo de notas disjuntas de S i equivale a modificar a permutao e executar as primeiras notas.

121

tre elementos presentes no decorrer da msica. Nestas questes, as dicotomias so salientes,


como explicadas na subseo 2.3.5: repetio e variao, relaxamento e tenso, equilbrio e
desequilbrio, consonncia e dissonncia, etc.

2.3.9

Usos musicais

Primeiro, a nota bsica foi definida e caracterizada em termos claros e quantitativos (seo 2.1).
Em seguida, a composio interna da nota foi abordada, e compreendidas as transies internas
e tratamentos imediatos (seo 2.2). Por fim, esta presente seo dedica-se a organizar estas
notas em msica. A gama de recursos e consequente infinidade de possibilidades de resultados
situao tpica e cara s artes.(8, 30)
Existem estudos para cada recurso apresentado. Por exemplo, pode-se obter as harmonias tridicas sujas (com notas no pertencentes trade) atravs de sobreposies de quartas justas.
Outro exemplo interessante a presena simultnea de ritmos em diferentes mtricas, constituindo o que chama-se de polirritmia. A montagem musical Poli-hit mia explora estas mtricas
simultneas atravs de trem de impulsos convoluidos com as notas que compem cada linha.
Seu cdigo est no Apndice B.3.6 e disponvel online como parte da massa.
As escalas microtonais so importantes na msica do sculo XX (44) e possuem resultados
muito marcantes, como os quartos de tom na msica indiana. A sequncia musical MicroTom
explora estes recursos, incluindo melodias microtonais e harmonias microtonais com vrias notas em um mbito de alturas bastante reduzido. Seu cdigo est no Apndice B.3.3 e disponvel
online como parte da massa.
Como tambm apontado na subseo 2.2.6, os vnculos entre parmetros so formas poderosas
de se obter peas e montagens musicais. O nmero de notas permutadas pode variar no decorrer da msica, revelando vnculo com a durao da pea. As harmonias podem constituir-se
tridicas (eqs. 2.86) com notas replicadas em vrias oitavas e mais numerosas quanto menor a

122

profundidade e frequncia de vibratos (eqs. 2.56, 2.57, 2.58, 2.59, 2.60), dentre outras incontveis possibilidades.
As simetrias apresentadas nas divises da oitava (eqs. 2.82) e as simetrias apresentadas atravs
das permutaes (tabela 2.28 e eqs. 2.88) podem ser usadas em conjunto. Nas peas 3 trios esta
associao feita de forma sistemtica para possibilitar uma audio a ela dedicada. Esta uma
pea instrumental e no consta dentre os cdigos dos Apndices e da massa.(62)
O PPEPPS (Pure Python EP: Projeto Solvente) um EP sintetizado com os recursos apresentados neste trabalho. Com pouca parametrizao, o programa gera msicas inteiras, permitindo
a composio de msicas e conjuntos de msicas com facilidade. Atravs de poucas linhas de
cdigo e, pela execuo, pode-se obter uma pasta com as msicas. Esta facilidade e entrega
tecnolgica abre possibilidades estticas, de compartilhamento e educacionais.

123

Concluses e trabalhos futuros

No captulo anterior est um sistema conciso que relaciona elementos musicais ao som digital.
Scripts implementam estas relaes, e em conjunto foram nomeados massa (Msica e udio
em Sequncias e Sries Amostrais). A exposio didtica destes desenvolvimentos no captulo
anterior destina-se a facilitar a utilizao do arcabouo.
As possibilidades abertas por estes resultados envolvem a criao de interfaces de gerao de
rudos e outros sons em alta fidelidade (hi-fi), experimentos psicoacsticos e a utilizao destes
resultados para fins artsticos e didticos. A incorporao de conhecimentos em programao
bastante facilitada atravs de recursos audiovisuais, o que j realizamos por prticas de livecoding e cursos focados em ferramentas especializadas, como o Puredata e o ChucK. Est prevista
a utilizao destes resultados com mtodos de inteligncia artificial para gerao de materiais
artsticos.
A disposio online destes contedos na forma de hipertexto junto aos cdigos e exemplos sonoros, todos em licenas livres, facilita colaboraes e gerao de subprodutos em co-autoria, e
com isso a expanso da massa com novas implementaes e desenvolvimentos das montagens
musicais. Exploraes sistemticas de parametrizaes (dos tremolos, da ADSR, etc) em alta
fidelidade tem utilidade artstica e possibilitada por este trabalho com controle amostral. Tal
descrio analtica precisa, junto s implementaes computacionais, no foi atingida anteriormente, como mostra o Apndice G com uma visita aos trabalhos relacionados.

124

Este trabalho tambm teve resultados no previstos, como a formao de grupos de interesse
em torno da questo criativa aliada computao. Neste contexto, destaca-se o grupo labMacambira.sf.net, que rene colaboradores de todo o Brasil e alguns fora do pas. Este grupo j
apresentou contribuies relevantes em diferentes reas como Democracia Direta Digital, ferramentas de georreferenciamento e atividades artsticas e educacionais, como cursos, workshops
e apresentaes artsticas. Vrios destes resultados esto no Apndice F e no acervo online, que
ultrapassa 700 vdeos, documentaes escritas, diversos software originais e contribuies em
software externos utilizados no mundo todo, como o Firefox, Scilab, LibreOffice, GEM/Puredata, para citar somente alguns exemplos.(6365)
H um aumento no nmero de pesquisas relacionadas msica em andamento no campus de
So Carlos da USP, o que sugere facilidade para estabelecer parcerias. As publicaes acadmicas efetivadas durante este mestrado tambm apontam para uma multidisciplinaridade, tratando
diretamente de questes humanas como artes, filosofia, humor e linguagem falada e escrita,
atravs de artifcios lineares e estatsticos.(6669) Os desdobramentos esto alcanando redes
sociais e teorias epistemolgicas com base em pesquisas prvias, dos orientadores deste trabalho, com forte presena de redes complexas e processamento de linguagem natural.

125

REFERNCIAS
1 ZAMPRONHA, E. S. Notao, representao e composio: um novo paradigma da
escritura musical. So Paulo: Annablume, 2000.

2 FABBRI, R.; COSTA, L. F.; OLIVEIRA JUNIOR, O. N. MASSA: msica e udio em


sequncias e sries amostrais. Disponvel em:
<http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/massa;a=blob;f=RE
ADME.txt>. Acesso em: 18 nov. 2012.

3 ROEDERER, J. G. The physics and psychophysics of music: an introduction. 4th ed.


New York: Springer Verlag, 2009. ISBN: 9780387094700.

4 MENEZES, F. A acstica musical em palavras e sons. Cotia: Ateli Editorial, 2004.


ISBN:8574802166.

5 EVEREST, F. A. Master handbook of acoustics. New York: McGraw-Hill, 2001.


ISBN:0071360972.

6 ALTEN, S. R. Audio in media. 9th ed. Boston: Wadsworth Publishing, 2010. ISBN:
9780495572398.

7 WISNIK, J. M. O som e o sentido. So Paulo: Companhia das Letras, 1999. ISBN:


8571640424.

8 WEBERN, A. O caminho para a msica nova. So Paulo: Novas Metas, 1984.

9 LERDAHL, F.; JACKENDOFF, R. A generative theory of tonal music. Cambridge:


MITPress, 1983. ISBN: 026262107X.

10 COOK, P. R. Real sound synthesis for interactive applications. Natick: A K Peters, 2002.
ISBN: 1568811683.
11 LACERDA, O. Compndio de teoria elementar da msica. 9a ed. So Paulo: Ricordi
Brasileira, 1966.

12 ZAMACOIS, J. Curso de formas musicales: con numerosos ejemplos musicales.


Barcelona: Idea Books, 2002. ISBN: 8482362356.

126

13 SCHOENBERG, A.; STRANG, G.; STEIN, L.; SEINCMAN, E. Fundamentos da


composio musical. So Paulo: EDUSP, 1991. ISBN: 8531400457.
14 ROADS, C. Microsound. Cambridge: MIT Press, 2004. ISBN: 9780262681544.

15 CHACON, S.; HAMANO, J.; PEARCE, S. Pro Git. Berkeley: Apress, 2009. ISBN:
9781430218333.

16 OLIPHANT, T. E. A guide to numPy. Spanish Fork: Trelgol Publishing, 2006.

17 COURNAPEAU, D. Audiolab, a python package to make noise with numpy arrays.


Disponvel em: <http://www.ar.media.kyotou.
ac.jp/members/david/softwares/audiolab>. Acesso em: 18 jan. 2013.

18 VAN ROSSUM, G.; DRAKE JR, F. L. Python tutorial. S. l.: Odense Universitet, Institut
for Matematik og Datalogi, 1995.

19 VAN ROSSUM, G. V.; DRAKE JR, F. Python reference manual. S. l.: Iuniverse, 1995.
ISBN: 9780595136681.

20 RAYMOND, E. S. The art of Unix programming. Boston: Addison-Wesley, 2004.


ISBN:0131429019.

21 LESSIG, L. Free culture: how big media uses technology and the law to lock down culture
and coltrol creativity. New York: Penguin Press, 2004. ISBN: 9781594200069.

22 EMMERSON, S. Living electronic music. Aldershot: Ashgate, 2007. ISBN:


9780754655480.

23 LOVELOCK, W.; HOLLOWAY, E. A concise history of music. London: Bell, 1953.


ISBN: 9780713506785.

24 CHOWNING, J. M. Digital sound synthesis, acoustics and perception: a rich intersection.


In: COST G-6 CONFERENCE ON DIGITAL AUDIO EFFECTS (DAFX-00), 2000, Verona.
Proceedings Verona: University of Verona, 2000. p. DAFX-1-DAFX-6.

25 OPPENHEIM, A. V.; SCHAFER, R. W. Discrete-time signal processing. Upper Saddle


River: Prentice-Hall, 1989. ISBN: 9780131988422.

127

26 CHENG, C. I.; WAKEFIELD, G. H. Introduction to head-related transfer functions


(HRTFs): representations of HRTFs in time, frequency, and space. Journal of the Audio
Engineering Society, v. 49, n. 4, p. 231-249, 2001.

27 HEEGER, D. Perception lecture notes: auditory pathways and sound localization.


Disponvel em:
<http://www.cns.nyu.edu/~david/courses/perception/lecturenotes/localization/localization.htm
l>. Acesso em: 16 out. 2012.

28 ALGAZI, V.; DUDA, R. O.; THOMPSON, D. M.; AVENDANO, C. The cipic hrtf
database. In: IEEE WORKSHOP ON APPLICATIONS OF SIGNAL PROCESSING TO
AUDIO AND ACOUSTICS, 2001, New York. Proceedings Piscataway: Institute of
Electrical and Electronics Engineers, 2001. p. W2001-1- W2001-4.

29 CARTY, B.; LAZZARINI, V. Binaural HRTF based spatialisation: new approaches and
implementation. In: INTERNATIONAL CONFERENCE ON DIGITAL AUDIO EFFECTS
(DAFX-09), 12., 2009, Como. Proceedings London: Department of Electronic
Engineering- Queen Mary University of London, 2009. p. 49-54.

30 SCHOENBERG, A. Harmonia. So Paulo: Ed. UNESP, 1999.

31 GEIGER, G. Table lookup oscillators using generic integrated wavetables. In:


INTERNATIONAL CONFERENCE ON DIGITAL AUDIO EFFECTS (DAFX-06), 9., 2006,
Montreal. Proceedings Montreal: McGill University, 2006. p. DAFX-169-DAFX-172.

32 BRISTOW-JOHNSON, R. Wavetable synthesis 101, a fundamental perspective. In: AES


CONVENTION, 101., 1996, Los Angeles. Proceedings. Disponvel em:
<http://www.musicdsp.org/files/Wavetable-101.pdf>. Acesso em: 22 nov. 2012.

33 DEHAENE, S. The neural basis of the WeberFechner law: a logarithmic mental number
line. Trends in Cognitive Sciences, v. 7, n. 4, p. 145147, 2003.

34 GUILLAUME, P. Music and acoustics: from instrument to computer. London: ISTE,


2006. ISBN: 9781905209262.
35 SMITH, S. W. The scientist and engineers guide to digital signal processing. 2nd. ed. San
Diego: California Technical Publishing, 1999.

128

36 SMITH III, J. O. Mathematics of the discrete fourier transform (DFT) with audio
applications. 2nd ed. 2007. ISBN: 9780974560748. Disponvel em:
<https://ccrma.stanford.edu/~jos/log>. Acesso em: 16 out. 2012.

37 MUSIC-DSP source code archive. Disponvel em: <musicdsp.org>. Acesso em: 23 jan.
2013.

38 PORRES, A. T.; FURLANETE, F.; MANZOLLI, J. Anlise de dissonncia sensorial de


espectros sonoros. In: CONGRESSO DA ANPPOM, 16., 2006, Braslia. Anais...
Braslia:UnB, 2006.

39 PORRES, A.; PIRES, A. Um external de aspereza para puredata & MAX/MSP. In:
SIMPSIO BRASILERIO DE COMPUTAO MUSICAL, 12., 2009, Recife. Anais...
Recife: Sociedade Brasileira de Computao (SBC), 2009.

40 SCHOTTSTAEDT, B. An introduction to FM. Disponvel em:


<https://ccrma.stanford.edu/software/snd/snd/fm.html>. Acesso em: 12 ago. 2012.
41 GRAMANI, J. E. Rtmica viva: a conscincia musical do ritmo. Campinas: UNICAMP,
1996.

42 SMITH III, J. O. Physical audio signal processing : for virtual musical instruments and
audio effects. Berkeley: Center for New Music and Audio Technologies, 2006.

43 ROADS, C. The computer music tutorial. Cambridge: MIT Press, 1996.

44 WILKINSON, S. R. Tuning in: microtonality in electronic music: a basic guide to alternate


scales, temperaments, and microtuning using synthesizers. Milwaukee: H. Leonard Books,
1988.

45 CLOUGH, J.; ENGEBRETSEN, N.; KOCHAVI, J. Scales, sets, and interval cycles: a
taxonomy. Music Theory Spectrum, v.21, n. 1, p. 74104, 1999.

46 KOSTKA, S. et al. Tonal harmony: with an introduction to twentieth. New York:


McGraw-Hill, 1995.

47 KOELLREUTTER, H. Harmonia funcional. So Paulo: Ricordi, 1986.

129

48 SALZER, F. Structural hearing: tonal coherence in music. New York: Dover Publications,
1962.

49 ALDWELL, E.; SCHACHTER, C.; CADWALLADER, A. Harmony & voice leading.


Boston: Wadsworth Publishing Company, 2010.
50 FUX, J.; MANN, A. The study of counterpoint: from Johann Joseph Fuxs gradus ad
Parnassum. New York: WW Norton & Company, 1965. ISBN:-10: 0393002772.

51 TRAGTENBERG, L. Contraponto: uma arte de compor. 2a ed. So Paulo: Edusp, 2002.

52 SCHOENBERG, A.; STEIN, L. Preliminary exercises in counterpoint. London: Faber &


Faber, 1963.

52 ASSIS, G. O. A. Em busca do som. So Paulo: Ed. UNESP. ISBN: 8539302079.

53 BOULEZ, P. A msica hoje. 3a ed. So Paulo: Perspectiva, 2005. ISBN: 8527302896.

54 GUIDORIZZI, H. L. Um curso de clculo. 5a ed. Rio de Janeiro: Livros Tcnicos e


Cientficos Editora, 2001. v. 3.

55 DELEUZE, G.; GUATTARI, F. What is philosophy? New York: Columbia University


Press, 1996. ISBN: 9780231079891.

56 DUCKWORTH, R.; STEDMAN, F. Tintinnalogia, or, the art of ringing. Teddington:


Echo Library, 2007. ISBN: 9781406826203

57 BUDDEN, F. J. The fascination of groups. Cambridge: Cambridge University Press, 1972.

58 FABBRI, R.; MAIA JUNIOR, A. Applications of group theory on granular synthesis. In:
SIMPSIO BRASILERIO DE COMPUTAO MUSICAL, 11., 2007, So Paulo. Anais...
So Paulo: Sociedade Brasileira de Computao (SBC), 2007.

59 FABBRI, R.; MAIA JUNIOR, A. Applications of group theory on sequencing and


spatialization of granular sounds. In: AES Brazil Conference, 6., 2008, So Paulo.
Proceedings... So Paulo: Sociedade Brasileira de Computao (SBC), 2008. v. 1, p. 1-3.

130

60 FABBRI, R.; MAIA JUNIOR, A. Applications of group theory on granular synthesis. In:
BRAZILIAN SYMPOSIUM ON COMPUTER MUSIC, 11, 2007,
So Paulo. Proceedings So Paulo: SBCM, 2007.

61 FABBRI, R.; MAIA JUNIOR, A. Applications of group theory on sequencing and


spatialization of granular sounds. In: AES-BRAZIL CONFERENCE, 6, 2008, So Paulo.
Proceedings So Paulo: DMA, 2008.

62 FABBRI, R. 3 trios para obo, flauta e fagote. 2007. Disponvel em:


<http://www.estudiolivre.org/el-gallery_view.php?arquivoId=7962>. Acesso em: 10 jan.
2013.

63 LABORATRIO Macambira. #labmacambira @ Freenode. Disponvel em:


<http://labmacambira.sourceforge.net>. Acesso em: 18 jan. 2013.

64 WIKI do Lab Macambira. #labmacambira @ Freenode. Disponvel em:


<http://wiki.nosdigitais.teia.org.br/Lab_Macambira>. Acesso em: 18 jan. 2013.

65 CANAL Vimeo do Lab Macambira (mais de 700 videos). #labmacambira @ Freenode.


Disponvel em: <https://vimeo.com/channels/labmacambira>. Acesso em: 18 jan. 2013.

66 VIEIRA, V.; FABBRI, R.; TRAVIESO, G.; OLIVEIRA JUNIOR, O. N.; COSTA, L. F. A
quantitative approach to evolution of music and philosophy. Journal of Statistical Mechanics:
theory and experiment, v. 2012, n. 8, p. P08010, 2012.

67 AMANCIO, D. R.; FABBRI, R.; OLIVEIRA JUNIOR, O. N.; NUNES, M. G. V.;


COSTA, L. F. Distinguishing between positive and negative opinions with complex network
features. In: ANNUAL MEETING OF THE ASSOCIATION FOR COMPUTATIONAL
LINGUISTICS (ACL), 48.; WORKSHOP ON GRAPH-BASED METHODS FOR
NATURAL LANGUAGE PROCESSING, 2010, Uppsala. Proceedings. Stroudsburg:
Association for Computational Linguistics (ACL), 2010. p. 8387.

68 FABBRI, R. et al. Speech polarity detection using complex networks measures: first
explorations. In: INTERNATIONAL WORKSHOP ON COMPLEX NETWORKS
(CompleNet), 2., 2010, Rio de Janeiro. Anais Rio de Janeiro: Universidade
Federal do Rio de Janeiro (UFRJ), 2010. p. 9.
69 AMANCIO, D. R.; FABBRI, R.; OLIVEIRA JUNIOR, O. N.; NUNES, M. G. V.;
COSTA, L. F. Opinion discrimination using complex network features. Communications in
Computer and Information Science, v. 116, p. 154162, 2011.

131

70 FABBRI, R. Repositrio da Dissertao. Disponvel em:


<http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/dissertacao;a=tree;h
=refs/heads/msc>. Acesso em: 19 jan. 2013.

71 FABBRI, R.; TAVARES, T. Audioexperiments. Disponvel em:


<https://www.assembla.com/spaces/audioexperiments/wiki>. Acesso em: 12 jan. 2013.

72 FABBRI, R.; MENDES, R. S. Compresso de udio via wavelets, aproximaes


polinomiais e permutaes. In: ENCONTRO DOS ALUNOS E DOCENTES DO
DEPARTAMENTO DE COMPUTAO E AUTOMAO INDUSTRIAL (EADCA), 2.,
2009, Campinas. Anais... Campinas: Faculdade de Engenharia Eltrica e de Computao Universidade Estadual de Campinas, 2009. p. 155-158.

73 SMITH III, J. O. Audio signal processing in FAUST. 2012. Disponvel em:


<https://ccrma.stanford.edu/ jos/aspf/>. Acesso em: 15 abr. 2013.

74 SMITH III, J. O. Spectral audio signal processing. 2011. Disponvel em:


<https://ccrma.stanford.edu/ jos/sasp/>. Acesso em: 15 abr. 2013.

75 SMITH III, J. O. Introduction to digital filters with audio applications. 2007.


Disponvel em: <https://ccrma.stanford.edu/ jos/filters/>. Acesso em 10 abr. 2013.

132

133

APNDICE A -- Cdigo computacional dos


procedimentos expostos no
captulo 2

A.1

Cdigo Python das relaes descritas na seo 2.1

Todas as equaes da seo 2.1 esto implementadas abaixo em Python e disponibizadas como
parte da toolbox massa.(2)
equaes da seo 2.1 em Python
1
2
3

# coding: utf8
import numpy as n
import scikits.audiolab as a

4
5
6
7
8

############ 2.1.1 Durao


# a equao relaciona o nmero de amostras durao do som
f_a = 44100. # frequncia de amostragem
Delta = 3.7 # durao de Delta segundos = >

9
10

Lambda = int(f_a Delta)

11

# 2.1

12

T_i = n.zeros(Lambda)

# nmero de amostras

# silncio com ~ Delta segundos

13
14
15

# escrita em disco como arquivo PCM (WAV no caso)


a.wavwrite(T_i, "silencio.wav", f_a)

16
17
18
19

############ 2.1.2 Volume


Lambda = 100. # 100 amostras
T_i = n.random.random(Lambda)

20
21

# 2.2 Potncia

# 100 amostras quaisquer

134

22

pot = (T_i2.).sum()/Lambda

23

25

T2_i = n.random.normal(size=Lambda)
pot2 = (T2_i2.).sum()/Lambda # potncia 2

26

# 2.3 Diferena de volume em decibels, dadas as potncias

27

V_dB = 10.n.log10(pot2/pot)

24

28
29
30
31
32
33
34

# 2.4 dobra amplitude = > ganha 6 dB


T2_i = 2.T_i
pot = (T_i2.).sum()/Lambda # potncia
pot2 = (T2_i2.).sum()/Lambda # potncia 2
V_dB = 10.n.log10(pot2/pot)
Mm6 = abs(V_dB 6) < .5 # Mm6 True

35
36
37
38
39

# 2.5 dobra potncia = > ganha 3 dB


pot2 = 2.pot
V_dB = 10.n.log10(pot2/pot)
Mm3 = abs(V_dB 3) < .5 # Mm3 True

40
41
42
43
44

# 2.7 dobra volume = > + 10 dB = > aplitude 3.16


V_dB = 10.
A = 10.(V_dB/20.)
T2_i = A T_i # A ~ 3.1622776601

45
46

# 2.8 Converso de decibels em amplificao

47

A = 10.(V_dB/20.)

48
49
50

############ 2.1.3 Altura

53

f_0 = 441.
lambda_0 = f_a/f_0
periodo = n.arcsin(n.random.random(lambda_0))

54

# 2.9 Som com frequncia fundamental f_0

55

Tf_i = n.array(list(periodo)1000)

51
52

# amostras quaisquer

# 1000 perodos

56
57
58
59

# normalizando para conveno no intervalo [1,1]


Tf_i = ((Tf_iTf_i.min())/(Tf_i.max()Tf_i.min()))2.1.
a.wavwrite(Tf_i, "f_0.wav", f_a) # escrita em disco

60
61
62

############ 2.1.4 Timbre

66

T = 100000. # nmero de amostras das sequencias


ii = n.arange(T)
f = 220.5
lambda_f = f_a/f

67

# 2.10 Senoide

68

Sf_i = n.sin(2.n.pi f ii/f_a)

69

# 2.11 Dente de serra

63
64
65

135

70

Df_i = (2./lambda_f)(ii % lambda_f)1

71

# 2.12 Triangular

72

Tf_i = 1.n.abs(2.(4./lambda_f)(ii % lambda_f))

73

# 2.13 Onda quadrada

74

Qf_i = ((ii % lambda_f) < (lambda_f/2))21

75
76

Rf_i = a.wavread("22686__acclivity__oboea440_periodo.wav")[0]

77

# 2.14 Perodo amostrado

78

Tf_i = Rf_i[n.int64(ii) % len(Rf_i)]

79
80
81
82
83
84
85
86
87

############ 2.1.5 O espectro no som amostrado


Lambda = 50.
T_i = n.random.random(Lambda)2.1.
C_k = n.fft.fft(T_i)
A_k = n.real(C_k)
B_K = n.imag(C_k)
w_k = 2.n.pi n.arange(Lambda)/Lambda

88
89
90
91
92

# 2.15 Recomposio do espectro no tempo


def t(i):
return (1./Lambda)n.sum(C_k n.e(1j w_k i))

93
94
95
96
97

# 2.16 Recomposio real


def tR(i):
return (1./Lambda)n.sum(n.abs(C_k)n.cos(w_k in.angle(C_k)))

98
99

# 2.17 Nmero de coeficientes espectrais pareados

100

tau = (Lambda Lambda % 2)/2 + Lambda % 21

101

# 2.18 Coeficientes equivalentes

102
103
104

kk = n.arange(tau)
F_k = C_k[1:tau+1]
F2_k = C_k[Lambdatau:Lambda1][::1]

105
106

# 2.19 Coeficientes equivalentes: mdulos

109

ab = n.abs(F_k)
ab2 = n.abs(F2_k)
MIN = n.abs(abab2).sum()

110

# 2.20 Coeficientes equivalentes: fases

107
108

111
112
113

an = n.angle(F_k)
an2 = n.angle(F2_k)
MIN = n.abs(an+an2).sum()

# MIN ~ 0.0

# MIN ~ 0.0

114
115

# 2.21 Combinao das componentes em cada amostra

116

w_k = 2n.pi n.arange(Lambda)/Lambda

117

136

118
119
120
121
122

def t_(i):
return (1./Lambda)(A_k[0]+2.n.sum(n.abs(C_k[1:tau+1])
n.cos(w_k in.angle(C_k)) + A_k[Lambda/2]
(1Lambda % 2)))

123
124
125

############ 2.1.6 A nota bsica

130

f = 220.5 # Herz
Delta = 2.5 # segundos
Lambda = int(2.5f_a)
ii = n.arange(Lambda)
Lf_i = Df_i # J fizemos Df_i acima

131

# 2.24 Nota Bsica

132

TfD_i = Lf_i[ii % len(Lf_i)]

126
127
128
129

133
134
135

############ 2.1.7 Localizao espacial

139

zeta = 0.215 # metros


# tomemos localizacao (x,y) qualquer
x = 1.5 # metros
y = 1. # metros

140

# 2.25 distncias de cada ouvido

136
137
138

142

d = n.sqrt((xzeta/2)2+y2)
d2 = n.sqrt((x+zeta/2)2+y2)

143

# 2.26 Distncia de Tempo Interaural

141

144

DTI = (d2d)/343.2

145

# 2.27 Distncia de Intensidade Interaural

146

DII = 20n.log10(d/d2)

# segundos
# dBs

147
148
149
150
151
152
153

# 2.28 aplicao de DTI e DII em T_i


Lambda_DTI = int(DTI f_a)
DII_a = d/d2
T_i = 1n.abs(2(4./lambda_f)(ii % lambda_f)) # triangular
T2_i = n.hstack((n.zeros(Lambda_DTI), DII_a T_i))
T_i = n.hstack((T_i, n.zeros(Lambda_DTI)))

154
155
156
157
158
159

som = n.vstack((T2_i, T_i)).T


a.wavwrite(som, "estereo.wav", f_a)
# espelhando
som = n.vstack((T_i, T2_i)).T
a.wavwrite(som, "estereo2.wav", f_a)

160
161

# 2.29 ngulo do objeto

162

theta = n.arctan(y/x)

163
164
165

############ 2.1.8 Usos musicais

137

166
167
168
169
170

Delta = 3. # 3 segundos
Lambda = int(Delta f_a)
f1 = 200. # Hz
foo = n.linspace(0., Delta f12.n.pi, Lambda, endpoint=False)
T1_i = n.sin(foo) # senoide de Delta segundos e freq = f1

171
172
173
174

f2 = 245. # Hz
lambda_f2 = int(f_a/f2)
T2_i = (n.arange(Lambda) % lambda_f < (lambda_f2/2))21

175
176
177
178
179

f3 = 252. # Hz
lambda_f3 = f_a/f3
T3_i = n.arange(Lambda) % lambda_f3
T3_i = (T3_i/T3_i.max())21

# Dente de serra

180
181
182
183
184
185
186

# 2.30 mixagem
T_i = T1_i+T2_i+T3_i
# normalizao
T_i = ((T_iT_i.min())/(T_i.max()T_i.min()))21
# escrita em disco
a.wavwrite(T_i, "mixados.wav", f_a)

187
188
189
190
191

# 2.31 concatenao
T_i = n.hstack((T1_i, T2_i, T3_i))
# escrita em disco
a.wavwrite(T_i, "concatenados.wav", f_a)

# quadrada

138

A.2

Cdigo Python das relaes descritas na seo 2.2

Todas as equaes da seo 2.2 esto implementadas abaixo em Python e disponibizadas como
parte da toolbox massa.(2)

equaes da seo 2.2 em Python


1
2
3

# coding: utf8
import numpy as n
import scikits.audiolab as a

4
5

f_a = 44100

# Hz, frequncia de amostragem

6
7
8
9
10

############ 2.2.1 Tabela de busca (LUT)


# tamanho da tabela: use par para no conflitar abaixo
# e ao menos 1024
Lambda_tilde = Lt = 1024

11
12
13
14

# Senoide
foo = n.linspace(0, 2n.pi, Lt, endpoint=False)
S_i = n.sin(foo) # um perodo da senoide com T amostras

15
16
17

# Quadrada:
Q_i = n.hstack((n.ones(Lt/2)1, n.ones(Lt/2)))

18
19
20
21

# Triangular:
foo = n.linspace(1, 1, Lt/2, endpoint=False)
Tr_i = n.hstack((foo, foo1))

22
23
24

# Dente de Serra:
D_i = n.linspace(1, 1, Lt)

25
26
27
28

# som real, importar perodo e


# usar T correto: o nmero de amostras do perodo
Rf_i = a.wavread("22686__acclivity__oboea440_periodo.wav")[0]

29
30
31
32

f = 110. # Hz
Delta = 3.4 # segundos
Lambda = int(Delta f_a)

33
34
35

# Amostras:
ii = n.arange(Lambda)

36
37
38
39

# 2.32 LUT
Gamma_i = n.array(ii f Lt/f_a, dtype=n.int)
# Podese usar S_i, Q_i, D_i ou qualquer perodo de som real

139

40
41
42

# suficientemente grande
L_i = Tr_i
TfD_i = L_i[Gamma_i % Lt]

43
44
45
46
47
48
49

############ 2.2.2 Variaes incrementais de frequncia e amplitude


# VARIAES DE FREQUNCIA
f_0 = 100. # freq inicial em Hz
f_f = 300. # freq final em Hz
Delta = 2.4 # durao

50

52

Lambda = int(f_a Delta)


ii = n.arange(Lambda)

51

53

# 2.33 variao linear

54

f_i = f_0+(f_ff_0)ii/(float(Lambda)1)

55

# 2.34 coeficientes para a LUT

58

D_gamma_i = f_i Lt/f_a


Gamma_i = n.cumsum(D_gamma_i)
Gamma_i = n.array(Gamma_i, dtype=n.int)

59

# 2.35 som resultante

60

Tf0ff_i = L_i[Gamma_i % Lt]

56
57

61
62

## 2.36 variao exponencial

63

f_i = f_0(f_f/f_0) (ii/(float(Lambda)1))

64

# 2.37 coeficientes para a LUT

67

D_gamma_i = f_i Lt/f_a


Gamma_i = n.cumsum(D_gamma_i)
Gamma_i = n.array(Gamma_i, dtype=n.int)

68

# 2.38 som resultante

69

Tf0ff_i = L_i[Gamma_i % Lt]

65
66

70
71
72
73
74
75
76
77

# VARIAES DE AMPLITUDE
# sintetizando um som qualquer para
# a variao de amplitude
f = 220. # Hz
Delta = 3.9 # segundos
Lambda = int(Delta f_a)

78
79
80

# Amostras:
ii = n.arange(Lambda)

81
82
83
84
85
86
87

# (como em 2.30)
Gamma_i = n.array(ii f Lt/f_a, dtype=n.int)
L_i = Tr_i # podese usar igualmente S_i, Q_i, D_i ou
# qualquer perodo de som real suficientemente grande
T_i = TfD_i = L_i[Gamma_i % Lt]

140

90

a_0 = 1. # razo da amplitude em que iniciada a sequncia


a_f = 12. # razo da amplitude em que finalizada
alpha = 1. # ndice de suavidade da transio

91

# 2.39 envoltria exponencial para transio de amplitude

92

A_i = a_0(a_f/a_0)((ii/float(Lambda))alpha)

93

# 2.40 aplicao da envoltria no som T_i

94

T2_i = A_i T_i

88
89

95
96

# 2.41 envoltria linear de amplitude

97

A_i = a_0+(a_fa_0)(ii/float(Lambda))

98
99
100
101

# 2.42 transio exponencial de V_dB


V_dB = 31.
T2_i = T_i((10(V_dB/20.))((ii/float(Lambda))alpha))

102
103
104
105
106
107
108

############ 2.2.3 Aplicao de filtros digitais


# VEJA iir.py para a gerao da figura 2.17
# T_i herdado
# resposta ao impulso sinttica (reverb)
H_i = (n.random.random(10)21)n.e(n.arange(10))

109
110

# 2.43 Convoluo

111

T2_i = n.convolve(T_i, H_i)

112
113
114

# 2.44 veja linhas seguintes para aplicao da


# equao a diferenas :)

115
116

fc = .1

117

# 2.45 passa baixas de polo simples

118
119
120
121
122
123
124
125

x = n.e(2n.pi fc) # fc = > freq de corte em 3dB


# coeficientes
a0 = 1x
b1 = x
# aplicao do filtro
T2_i = [T_i[0]]
for t_i in T_i[1:]:
T2_i.append(t_i a_0+T2_i[1]b1)

126
127
128
129
130
131

# 2.46 passa altas de polo simples


x = n.e(2n.pi fc)
a0 = (1+x)/2
a1 = (1+x)/2
b1 = x

132
133
134
135

# aplicao do filtro
T2_i = [a0 T_i[0]]
last = T_i[0]

# fc = > freq de corte em 3dB

141

136
137
138

for t_i in T_i[1:]:


T2_i += [a0 t_i + a1 last + b1 T2_i[1]]
last = n.copy(t_i)

139
140

142

fc = .1
bw = .05

143

# 2.47 Variveis auxiliares para os filtros n

141

144
145

r = 13bw
k = (12r n.cos(2n.pi fc)+r2)/(22n.cos(2n.pi fc))

146
147
148
149
150
151
152
153

# 2.48 passa banda


# coefs passa banda
a0 = 1k
a1 = 2(kr)n.cos(2n.pi fc)
a2 = r 2 k
b1 = 2r n.cos(2n.pi fc)
b2 = r 2

154
155
156
157
158
159
160
161
162
163

# aplicacao do filtro em T_i resultando em T2_i


T2_i = [a0 T_i[0]]
T2_i += [a0 T_i[1]+a1 T_i[0]+b1 T2_i[1]]
last1 = T_i[1]
last2 = T_i[0]
for t_i in T_i[2:]:
T2_i += [a0 t_i+a1 last1+a2 last2+b1 T2_i[1]+b2 T2_i[2]]
last2 = n.copy(last1)
last1 = n.copy(t_i)

164
165
166
167
168
169
170
171

# 2.49 rejeita banda


# coeficientes
a0 = k
a1 = 2k n.cos(2n.pi fc)
a2 = k
b1 = 2r n.cos(2n.pi fc)
b2 = r 2

172
173
174
175
176
177
178
179
180
181

# aplicacao do filtro em T_i resultando em T2_i


T2_i = [a0 T_i[0]]
T2_i += [a0 T_i[1]+a1 T_i[0]+b1 T2_i[1]]
last1 = T_i[1]
last2 = T_i[0]
for t_i in T_i[2:]:
T2_i += [a0 t_i+a1 last1+a2 last2+b1 T2_i[1]+b2 T2_i[2]]
last2 = n.copy(last1)
last1 = n.copy(t_i)

182
183
184

############ 2.2.4 Rudos

142

185
186
187
188

# VEJA ruidos.py para o script que gerou a figura 2.18


Lambda = 100000 # Lambda sempre par
# diferena das frequncias entre coeficintes vizinhos:
df = f_a/float(Lambda)

189
190
191
192
193
194
195
196
197
198

# 2.50 Ruido branco


# gerao de espectro com mdulo 1 uniforme
# e fase aleatria
coefs = n.exp(1j n.random.uniform(0, 2n.pi, Lambda))
# real par, imaginaria impar
coefs[Lambda/2+1:] = n.real(coefs[1:Lambda/2])[::1] 1j \
n.imag(coefs[1:Lambda/2])[::1]
coefs[0] = 0. # sem bias
coefs[Lambda/2] = 1. # freq max eh real simplesmente

199
200
201
202
203
204
205
206

# as frequncias relativas a cada coeficiente


# acima de Lambda/2 nao vale
fi = n.arange(coefs.shape[0])df
f0 = 15. # iniciamos o ruido em 15 Hz
i0 = n.floor(f0/df) # primeiro coef a valer
coefs[:i0] = n.zeros(i0)
f0 = fi[i0]

207
208
209
210
211
212

# obteno do rudo em suas amostras temporais


ruido = n.fft.ifft(coefs)
r = n.real(ruido)
r = ((rr.min())/(r.max()r.min()))21
a.wavwrite(r, branco.wav, f_a)

213
214
215
216
217
218

# 2.51 Rudo rosa


# a cada oitava, perdese 3dB
fator = 10.(3/20.)
alphai = fator (n.log2(fi[i0:]/f0))

219
220
221
222
223
224

c = n.copy(coefs)
c[i0:] = coefs[i0:]alphai
# real par, imaginaria impar
c[Lambda/2+1:] = n.real(c[1:Lambda/2])[::1] 1j \
n.imag(c[1:Lambda/2])[::1]

225
226
227
228
229

ruido = n.fft.ifft(c)
r = n.real(ruido)
r = ((rr.min())/(r.max()r.min()))21
a.wavwrite(r, rosa.wav, f_a)

230
231
232

# 2.52 Rudo marrom

233

# a cada oitava, perdese 6dB

143

234
235
236
237

fator = 10.(6/20.)
alphai = fator (n.log2(fi[i0:]/f0))
c = n.copy(coefs)
c[i0:] = c[i0:]alphai

238
239
240
241

# real par, imaginaria impar


c[Lambda/2+1:] = n.real(c[1:Lambda/2])[::1] 1j \
n.imag(c[1:Lambda/2])[::1]

242
243
244
245
246
247

# realizando amostras temporais do rudo marrom


ruido = n.fft.ifft(c)
r = n.real(ruido)
r = ((rr.min())/(r.max()r.min()))21
a.wavwrite(r, marrom.wav, f_a)

248
249

ruido_marrom=n.copy(r) # ser usado para a reverberao

250
251
252
253
254
255
256
257

# 2.53 Rudo azul


# para cada oitava, ganhamos 3dB
fator = 10.(3/20.)
alphai = fator (n.log2(fi[i0:]/f0))
c = n.copy(coefs)
c[i0:] = c[i0:]alphai

258
259
260
261

# real par, imaginaria impar


c[Lambda/2+1:] = n.real(c[1:Lambda/2])[::1] 1j \
n.imag(c[1:Lambda/2])[::1]

262
263
264
265
266
267

# realizando amostras temporais do rudo azul


ruido = n.fft.ifft(c)
r = n.real(ruido)
r = ((rr.min())/(r.max()r.min()))21
a.wavwrite(r, azul.wav, f_a)

268
269
270
271
272
273
274
275

# 2.54 Ruido violeta


# a cada oitava, ganhamos 6dB
fator = 10.(6/20.)
alphai = fator (n.log2(fi[i0:]/f0))
c = n.copy(coefs)
c[i0:] = c[i0:]alphai

276
277
278
279

# real par, imaginaria impar


c[Lambda/2+1:] = n.real(c[1:Lambda/2])[::1] 1j \
n.imag(c[1:Lambda/2])[::1]

280
281
282

ruido = n.fft.ifft(c)
r = n.real(ruido)

144

283
284

r = ((rr.min())/(r.max()r.min()))21
a.wavwrite(r, violeta.wav, f_a)

285
286
287
288
289
290
291

# 2.55 Rudo preto


# a cada oitava, perdemos mais que 6dB
fator = 10.(12/20.)
alphai = fator (n.log2(fi[i0:]/f0))
c = n.copy(coefs)
c[i0:] = c[i0:]alphai

292
293
294
295

# real par, imaginaria impar


c[Lambda/2+1:] = n.real(c[1:Lambda/2])[::1] 1j \
n.imag(c[1:Lambda/2])[::1]

296
297
298
299
300

ruido = n.fft.ifft(c)
r = n.real(ruido)
r = ((rr.min())/(r.max()r.min()))21
a.wavwrite(r, preto.wav, f_a)

301
302
303
304
305
306
307
308
309
310

############ 2.2.5 Tremolo e vibrato, AM e FM


# VEJA: vibrato.py e tremolo.py para as figuras 2.19 e 2.20
f = 220.
Lv = 2048 # tamanho da tabela do vibrato
fv = 1.5 # frequncia do vibrato
nu = 1.6 # desvio maximo em semitons do vibrato (profundidade)
Delta = 5.2 # durao do som
Lambda = int(Delta f_a)

311
312
313
314

# tabela do vibrato
x = n.linspace(0, 2n.pi, Lv, endpoint=False)
tabv = n.sin(x) # o vibrato ser senoidal

315
316

ii = n.arange(Lambda)

317

# 2.56 ndices da LUT para o vibrato

318

Gammav_i = n.array(ii fv float(Lv)/f_a, n.int)

319

# 2.57 padro de oscilao do vibrato para cada amostra

320

Tv_i = tabv[Gammav_i % Lv]

321

# 2.58 frequncia em cada amostra

322

F_i = f(2.(Tv_i nu/12.))

323

# 2.59 ndices para LUT do som

# ndices
# ndices para a LUT

326

D_gamma_i = F_i(Lt/float(f_a)) # movimentao na tabela por amostra


Gamma_i = n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i = n.array(Gamma_i, dtype=n.int) # j os ndices

327

# 2.60 som em si

328

T_i = Tr_i[Gamma_i % Lt]

324
325

# busca dos ndices na tabela

329
330

a.wavwrite(T_i, "vibrato.wav", f_a)

# escrita do som

145

331
332
333

Tt_i = n.copy(Tv_i)

334

# 2.61 Envoltria do tremolo

336

V_dB = 12. # decibels envolvidos na variao


A_i = 10((V_dB/20)Tt_i)

337

# 2.62 Aplicao na sequncia T_i

335

338
339
340
341

Gamma_i = n.array(ii f Lt/f_a, dtype=n.int)


T_i = Tr_i[Gamma_i % Lt]
T_i = T_i A_i
a.wavwrite(T_i, "tremolo.wav", f_a) # escrita do som

342
343
344
345
346

# 2.63 Espectro da FM, implementada em 2.6670


# 2.64 Funo de Bessel, foge ao escopo
# 2.65 Espectro da AM, implementada em 2.70,71 abaixo

347
348

fv = 60.

349

# 2.66 ndices para a LUT da moduladora da FM

350

Gammav_i = n.array(ii fv float(Lv)/f_a, n.int)

351

# 2.67 padro de oscilao da moduladora

# > 20Hz

354

Tfm_i = tabv[Gammav_i % Lv]


f = 330.
mu = 40.

355

# 2.68 Frequncia em cada amostra na FM

356

f_i = f+Tfm_i mu

357

# 2.69 ndices da LUT para sntese do som

352
353

360

D_gamma_i = f_i(Lt/float(f_a)) # movimentao na tabela por amostra


Gamma_i = n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i = n.array(Gamma_i, dtype=n.int) # j os ndices

361

# 2.70 FM

362

T_i = S_i[Gamma_i % Lt]

358
359

# busca dos ndices na tabela

363
364

a.wavwrite(T_i, "fm.wav", f_a)

# escrita do som

365
366

369

Tam_i = n.copy(Tfm_i)
V_dB = 12.
alpha = 10(V_dB/20.)

370

# 2.71 Envoltria para AM

367
368

# profundidade da AM

372

A_i = 1+alpha Tam_i


Gamma_i = n.array(ii f Lt/f_a, dtype=n.int)

373

# 2.70 AM

371

374
375
376
377

T_i = Tr_i[Gamma_i % Lt](A_i)


a.wavwrite(T_i, "am.wav", f_a)

# escrita do som

146

378
379

############ 2.2.5 Usos musicais


# 2.73 Veja pea Tremolos, Vibratos e a Frequncia

380
381

# Efeito Doppler

386

v_r= 10 # receptor se move em direo fonte com v_r m/s


v_s=80. # emissor se move em direo ao receptor com v_s m/s
v_som=343.2
f_0=1000 # frequencia do emissor
# frequncia com o efeito Doppler:

387

# 2.74 Frequncia por efeito Doppler

382
383
384
385

388
389
390

f=((v_som + v_r) / (v_som + v_s)) f_0


# a partir do cruzamento entre o emissor e o receptor:
f_=((v_som v_r) / (v_som v_s)) f_0

391
392
393
394

# distncias iniciais:
x_0=0 # emissor frente
y_0=200 # distante y_0 metros

395
396
397
398
399

Delta=5. # durao em segundos


Lambda=Delta f_a # nmero de amostras
# posies ao longo do tempo, X_i=n.zeros(Lambda)
Y_i=y_0 ((v_rv_s)Delta) n.linspace(0,1,Lambda)

400

402

# A cada amostra, preciso calcular a DTI e a DII com X_i e Y_i


# No caso, DTI e DII so == 0 pois a fonte est no meio.

403

# 2.75 Amplitude relativa ao efeito Doppler

401

408

# Assumindo z_0 metros acima da cabea:


z_0=2.
D_i=( z_02+Y_i 2 )0.5 # distncia a cada amostra
# Amplitude relativa do som em cada amostra devido distncia:
A_i_=z_0/D_i

409

# Alterao da amplitude devido ao efeito Doppler:

404
405
406
407

410
411
412
413

A_DP_i=( (v_rv_s)/343.2+1 )0.5


A_DP_i_=( (v_r+v_s)/343.2+1 )0.5
A_DP_i=(Y_i>0)A_DP_i+(Y_i<0)A_DP_i_
A_i=A_i_ A_DP_i

414

417

# Os sinais das velocidades se invertem


# no caso da fonte passar o receptor.
# Portanto:

418

# 2.76 Progresso de frequncia do efeito Doppler

415
416

419
420
421
422
423
424

coseno_i=(Y_i)/((Y_i2+z_02)0.5)
F_i=( ( 343.2+v_r coseno_i ) / ( 343.2+v_s coseno_i ) )f_0
# coeficientes para a LUT
D_gamma_i = F_i Lt/f_a
Gamma_i = n.cumsum(D_gamma_i)
Gamma_i = n.array(Gamma_i, dtype=n.int)

425
426

L_i = Tr_i

# Onda triangular

147

427
428
429

# Som:
Tdoppler_i = L_i[Gamma_i % Lt]
Tdoppler_i=A_i

430
431
432
433

# Normalizando e gravando:
Tdoppler_i=((Tdoppler_iTdoppler_i.min())/(Tdoppler_i.max()Tdoppler_i.min()))2.1
a.wavwrite(Tdoppler_i, doopler.wav, f_a)

434
435
436
437
438
439
440
441

###### Reverberao
# O primeiro perodo da reverberao:
Delta1 = 0.15 # tipicamente E [0.1,0.2]
Lambda1= int(Delta1 f_a)
Delta = 1.9 # durao total da reverberao
Lambda=int(Delta f_a)

442

448

# Probabilidades de reincidncia do som no primeiro perodo:


ii=n.arange(Lambda)
P_i = (ii[:Lambda1]/float(Lambda1))2.
# incidncias:
R1_i_=n.random.random(Lambda1)<P_i
A_i=10.((50./20)(ii/Lambda))

449

# 2.77 Primeiro perodo da reverberao:

450

R1_i=R1_i_ A_i[:Lambda1]ruido_marrom[:Lambda1] # Primeiras incidncias

443
444
445
446
447

451

453

# Rudo marrom em decaimento exponencial para o segundo perodo:


# 120dB at o final:

454

# 2.78 Segundo perodo da reverberao:

452

456

Rm_i=ruido_marrom[Lambda1:Lambda]
R2_i=Rm_i A_i[Lambda1:Lambda]

457

# 2.79 Resposta ao impulso da reverberao

455

458
459

R_i=n.hstack((R1_i,R2_i))
R_i[0]=1. # resposta ao impulso est pronta

460
461
462
463
464
465
466

# Realizao de um som para aplicar a reverberao:


f_0 = 100. # freq inicial em Hz
f_f = 700. # freq final em Hz
Delta = 2.4 # durao
Lambda = int(f_a Delta)
ii = n.arange(Lambda)

467
468
469
470
471
472
473
474
475

# (usando 2.36 variao exponencial)


f_i = f_0(f_f/f_0) (ii/(float(Lambda)1))
# (usando 2.37 coeficientes para a LUT)
D_gamma_i = f_i Lt/f_a
Gamma_i = n.cumsum(D_gamma_i)
Gamma_i = n.array(Gamma_i, dtype=n.int)
# (usando 2.38 som resultante)
Tf0ff_i = L_i[Gamma_i % Lt]

148

476
477
478
479
480
481
482

# Aplicao da reverberao
T_i_=Tf0ff_i
T_i=n.convolve(T_i_,R_i)
T_i=(T_iT_i.min())/(T_i.max()T_i.min())
a.wavwrite(T_i, reverb.wav, f_a)
a.wavwrite(R_i, RI_reverb.wav, f_a)

483
484
485
486
487
488
489
490

# 2.80 ADSR variao linear


Delta = 5. # durao total em segundos
Delta_A = 0.1 # Ataque
Delta_D = .3 # Decay
Delta_R = .2 # Release
a_S = .1 # nvel de sustentao

491
492
493
494
495

Lambda =
Lambda_A
Lambda_D
Lambda_R

int(f_a Delta)
= int(f_a Delta_A)
= int(f_a Delta_D)
= int(f_a Delta_R)

496
497
498
499
500
501
502
503
504
505
506
507
508

# Realizao da envoltria ADSR: A_i


ii = n.arange(Lambda_A, dtype=n.float)
A = ii/(Lambda_A1)
A_i = A
ii = n.arange(Lambda_A, Lambda_D+Lambda_A, dtype=n.float)
D = 1(1a_S)((iiLambda_A)/(Lambda_D1))
A_i = n.hstack((A_i, D))
S = a_S n.ones(LambdaLambda_R(Lambda_A+Lambda_D), dtype=n.float)
A_i = n.hstack((A_i, S))
ii = n.arange(LambdaLambda_R, Lambda, dtype=n.float)
R = a_Sa_S((ii(LambdaLambda_R))/(Lambda_R1))
A_i = n.hstack((A_i, R))

509
510
511
512
513

# 2.81 Realizao do som com a envoltria


ii = n.arange(Lambda, dtype=n.float)
Gamma_i = n.array(ii f Lt/f_a, dtype=n.int)
T_i = Tr_i[Gamma_i % Lt](A_i)

514
515

a.wavwrite(T_i, "adsr.wav", f_a)

# escrita do som em disco

516
517
518
519
520
521
522
523
524

# 2.80 ADSR variao Exponencial


xi
De
DA
DD
DR
SS

=
=
=
=
=
=

1e2 # 180dB para iniciar o fade in e finalizar o fade out


2100. # duracao total (\Delta)
220. # duracao do ataque \Delta_A
220. # duracao do decay \Delta_D
220. # duracao do release \Delta_R
.4 # frao da amplitude em que ocorre o sustain

149

525
526
527
528
529

Lambda =
Lambda_A
Lambda_D
Lambda_R

int(f_a De)
= int(f_a DA)
= int(f_a DD)
= int(f_a DR)

530
531
532
533
534
535
536
537

538

A = xi(1./xi)(n.arange(Lambda_A)/(Lambda_A1)) # amostras do ataque


A_i = n.copy(A)
D = a_S((n.arange(Lambda_A, Lambda_A+Lambda_D)Lambda_A)/(Lambda_D1)) # amostras do
A_i = n.hstack((A_i, D))
S = a_S n.ones(LambdaLambda_R(Lambda_A+Lambda_D)) # amostras do sustain
A_i = n.hstack((A_i, S))
R = (SS)(xi/SS)((n.arange(LambdaLambda_R, Lambda)+Lambda_RLambda)/(Lambda_R1))
# release
A_i = n.hstack((A_i, R))

539
540
541
542
543

# 2.81 Realizao do som com a envoltria


ii = n.arange(Lambda, dtype=n.float)
Gamma_i = n.array(ii f Lt/f_a, dtype=n.int)
T_i = Tr_i[Gamma_i % Lt](A_i)

544
545

a.wavwrite(T_i, "adsr_exp.wav", f_a)

# escrita do som em disco

150

A.3

Cdigo Python das relaes descritas na seo 2.3

Todas as equaes da seo 2.3 esto implementadas abaixo em Python e disponibizadas como
parte da toolbox massa.(2)

equaes da seo 2.3 em Python


1
2

# coding: utf8
import numpy as n

3
4
5
6
7

f_a = 44100. # Hz,


Lambda_tilde = Lt =
foo = n.linspace(0,
S_i = n.sin(foo) #

frequncia de amostragem
1024.
2n.pi, Lt, endpoint=False)
um perodo da senide com T amostras

8
9
10
11
12
13

def v(f=200, d=2., tab=S_i, fv=2., nu=2., tabv=S_i):


Lambda = n.floor(f_a d)
ii = n.arange(Lambda)
Lv = float(len(S_i))

14
15
16
17
18

Gammav_i = n.floor(ii fv Lv/f_a) # ndices para a LUT


Gammav_i = n.array(Gammav_i, n.int)
# padro de variao do vibrato para cada amostra
Tv_i = tabv[Gammav_i % int(Lv)]

19
20
21
22
23
24
25
26
27

# frequncia em Hz em cada amostra


F_i = f(2.(Tv_i nu/12.))
# a movimentao na tabela por amostra
D_gamma_i = F_i(Lt/float(f_a))
Gamma_i = n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i = n.floor(Gamma_i) # j os ndices
Gamma_i = n.array(Gamma_i, dtype=n.int) # j os ndices
return tab[Gamma_i % int(Lt)] # busca dos ndices na tabela

28
29
30

############ 2.3.1 Afinao, intervalos, escalas e acordes

31
32
33
34
35
36
37
38
39

# Microtonalidade de quartos de tom


# e stimos de oitava
# com
epslon = 2(1/12.)
s1 = [0., 0.25, 1.75, 2., 2.25, 4., 5., 5.25]
#ou
epslon = 2(1/7.)
s2 = [0., 1., 2., 3., 4., 5., 6.]

151

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

# Tabela 2.22: Intervalos


I1j
I2m
I2M
I3m
I3M
I4J
ITR
I5J
I6m
I6M
I7m
I7M
I8J
I_i

=
=
=
=
=
=
=
=
=
=
=
=
=
=

0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
n.arange(13.)

56
57
58
59
60
61
62

# o intervalo soma nove nomenclatuda da inverso


# mas soma sempre 12 na inverso de semitons
def inv(I):
"""retorna intervalo inverso de I: 0< = I < = 12"""
return 12I

63
64
65
66
67

# intervalo harmnico
def intervaloHarmonico(f, I):
return (v(f)+v(f 2. (I/12.)))0.5

68
69
70
71
72

# intervalo meldico
def intervaloMelodico(f, I):
return n.hstack((v(f), v(f 2. (I/12.))))

73
74
75
76
77
78
79

# 2.82 Escalas simtricas


Ec_i = [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11.]
Et_i = [0., 2., 4., 6., 8., 10.]
Etm_i = [0., 3., 6., 9.]
EtM_i = [0., 4., 8.]
Ett_i = [0., 6.]

80
81
82
83
84
85
86
87
88

# 2.83 Escalas diatnicas


Em_i = [0., 2., 3., 5., 7., 8., 10.]
Emlo_i = [1., 3., 5., 6., 8., 10.]
EM_i = [0., 2., 4., 5., 7., 9., 11.]
Emd_i = [0., 2., 3., 5., 7., 9., 10.]
Emf_i = [0., 1., 3., 5., 7., 8., 10.]
Eml_i = [0., 2., 4., 6., 7., 9., 11.]
Emmi_i = [0., 2., 4., 5., 7., 8., 10.]

152

89
90
91
92

# 2.84 Padro diatnico


E_i_ = n.roll(n.array([2.,2.,1.,2.,2.,2.,1.]), n.random.randint(7.))
E_i = n.cumsum(E_i_)E_i_[0.]

93
94
95
96
97
98

# 2.85 Escalas menores harmnica e meldica


Em_i = [0., 2., 3., 5., 7., 8., 10.]
Emh_i = [0., 2., 3., 5., 7., 8., 11.]
Emm_i = [0.,2.,3.,5.,7.,9.,11.,12.,10.,8.,7.,5.,3.,2.,0.]

99
100
101
102
103
104
105

# 2.86 Trades
AM_i
Am_i
Ad_i
Aa_i

=
=
=
=

[0.,
[0.,
[0.,
[0.,

4.,
3.,
3.,
4.,

7.]
7.]
6.]
8.]

106
107
108

def comSetimam(A): return A+[10.]


def comSetimaM(A): return A+[11.]

109
110
111
112
113
114
115
116
117
118
119
120
121
122
123

############ 2.3.2 Harmonias atonal, tonal, expanso e modulao


# Tabela 2.23
def relativa(TT):
"""TT trade maior ou menor em posico fechada e fundamental"""
T = n.copy(TT)
if T[1]T[0] == 4.: # ac maior
T[2] = 9. # retorna acorde menor abaixo
elif T[1]T[0] == 3.: # ac menor
T[0] = 10. # retorna acorde maior acima
else:
print("send me only minor or major perfect triads")
return T

124
125
126
127
128
129
130
131
132

def antiRelativa(TT):
T = n.copy(TT)
if T[1]T[0] == 4.: # maior
T[0] = 11. # retorna menor acima
if T[1]T[0] == 3.: # menor
T[2] = 8. # retorna maior abaixo
return T

133
134
135
136
137

class Mediana:
def sup(self, TT):
T = n.copy(TT)

153

138
139
140
141
142
143
144

if T[1]T[0] == 4.: # maior


T[0] = 11.
T[2] = 8. # retorna maior
if T[1]T[0] == 3.: # menor
T[0] = 10.
T[2] = 1. # retorna menor
return T

145
146
147
148
149
150
151
152
153
154

def inf(self, TT):


T = n.copy(TT)
if T[1]T[0] == 4.: # maior
T[2] = 9
T[0] = 1. # retorna maior
if T[1]T[0] == 3.: # menor
T[2] = 8.
T[0] = 11. # retorna menor
return T

155
156
157
158
159
160
161
162
163
164
165

def supD(self, TT):


"""Preserva a quinta da primeira trade na tera """
T = n.copy(TT)
if T[1]T[0] == 4.: # maior
T[0] = 10.
T[1] = 3. # retorna maior
if T[1]T[0] == 3.: # menor
T[0] = 11.
T[1] = 4. # retorna menor
return T

166
167
168
169
170
171
172
173
174
175

def infD(self, TT):


T = n.copy(TT)
if T[1]T[0] == 4.: # maior
T[1] = 3.
T[2] = 8. # retorna maior
if T[1]T[0] == 3.: # menor
T[1] = 4.
T[2] = 9. # retorna menor
return T

176
177
178
179
180
181
182
183

# Funes principais
tonicaM = [0., 4., 7.]
tonicam = [0., 3., 7.]
subM = [0., 5., 9.]
subm = [0., 5., 8.]
dom = [2., 7., 11.]
Vm = [2., 7., 10.] # quinto grau menor nao eh dominante

184
185
186

############ 2.3.3 Contraponto

187

def contraNotaNotaSup(alturas=[0,2,4,5,5,0,2,0,2,2,2,0,7,\

154

188
189

5,4,4,4,0,2,4,5,5,5]):
"""Realiza rotina de independncia das vozes

190
191
192
193

Limitado em 1 oitava acima da nota"""


primeiraNota=alturas[0]+(7,12)[n.random.randint(2)]
contra=[primeiraNota]

194
195
196
197
198
199
200
201
202
203
204
205
206

i=0
cont=0 # contador de paralelas
reg=0 # registrador de intervalo em que se fez a paralela
for al in alturas[:1]:
mov_cf=alturas[i:i+2]
atual_cf,seguinte_cf=mov_cf
if seguinte_cfatual_cf>0:
mov="asc"
elif seguinte_cfatual_cf<0:
mov="asc"
else:
mov="obl"

207
208
209
210
211
212
213
214
215
216
217
218

# possibilidades por consonancia


possiveis=[seguinte_cf+interval for interval in\
[0,3,4,5,7,8,9,12]]
movs=[]
for pos in possiveis:
if pos contra[i] < 0:
movs.append("desc")
if pos contra[i] > 0:
movs.append("asc")
else:
movs.append("obl")

219
220
221
222
223
224
225
226
227
228
229

movt=[]
for m in movs:
if obl in (m,mov):
movt.append("obl")
elif m==mov:
movt.append("direto")
else:
movt.append("contrario")
blacklist=[]
for nota,mt in zip(possiveis,movt):

230
231
232
233
234
235
236
237

if mt == "direto": # mov direto


# n aceita intervalo perfeito
if notaseguinte_cf in (0,7,8,12):
possiveis.remove(nota)
ok=0
while not ok:
nnota=possiveis[n.random.randint(len(possiveis))]

155

238
239
240
241
242
243
244
245
246
247
248
249
250
251
252

if nnotaseguinte_cf==contra[i]atual_cf: # paralelo
intervalo=contra[i]atual_cf
novo_intervalo=nnotaseguinte_cf
if abs(intervalonovo_intervalo)==1: # do mesmo tipo 3 ou 6
if cont==2: # se j teve 2 paralelas
pass # outro intrevalo
else:
cont+=1
ok=1
else: # mov obl ou contrario
cont=0 # zera paralelos
ok=1
contra.append(nnota)
i+=1
return contra

253
254
255
256

############ 2.3.4 Ritmo


# Veja pea Poli Hit Mia no Apndice B

257
258
259
260

############ 2.3.5 Repetio e variao: motivos e unidades maiores


# Conceitos ubquos

261
262
263
264

############ 2.3.6 Estruturas direcionais


# Veja pea Dirracional no Apndice B

265
266
267
268
269

############ 2.3.7 Estruturas cclicas


# Veja as peas 3 Trios no Apndice B
# e o PPEPPS no Apndice C

156

157

APNDICE B -- Cdigo Computacional das Peas


Musicais

Todas as peas a seguir foram feitas para exemplificar as relaes apresentadas no captulo 2 e
so disponibilizadas online junto ao toolbox massa.(2)

158

B.1

Peas referentes seo 2.1

B.1.1

Quadros sonoros

A montagem musical quadros sonoros dedicada para demonstrao da mixagem pela soma
direta de sequncias amostrais (subseo 2.1.8). Esta rotina sintetiza 5 pequenas peas de sonoridades estticas. Pea demonstrativa dos conceitos apresentados na seo 2.1. Houve relatos
em listas de emails de que estas sonoridades causaram alterao do estado de conscincia. Em
especial, o quadro 5 causou em diferentes pessoas o mesmo efeito: a sensao de amplificao
e distoro dos sons da mandimbula.

Quadros sonoros 1-5


1
2
3

# coding: utf8
import numpy as n
import scikits.audiolab as a

4
5
6

# Pea musical baseada em sons estticos


# so mixagens de sons bsicos apresentados na seo 2.1

7
8
9
10

f_a = 44100 # 44.1kHz, frequncia de amostragem de CDs


Delta = 180. # cada quadro ter Delta segundos
Lambda = int(Delta f_a) # nmero de amostras

11
12

ii = n.linspace(0, Delta 2 n.pi, Lambda, endpoint=False)

13
14
15
16
17
18

# frequncias que dividem f_a


fs = []
for i in xrange(1, f_a/2+1):
if f_a/float(i) == int(f_a/i):
fs.append(i)

19
20
21
22
23

# Quadro 1: senoides no grave em batimento e


# no agudo uma dente de serra bem suave
f1 = 100
f2 = 100.5

24
25
26
27

som = n.sin(ii f1)+n.sin(ii f2)


dente_aguda = (n.arange(Lambda) % 42)
som += dente_aguda/80

28
29

# normalio no intervalo [1,1]

159

30

som = ((som som.min())/(som.max()som.min()))21

31
32
33
34

a.wavwrite(som, "quadro1.wav", f_a)


print(u"quadro 1 feito em quadro1.wav (mono), so %i amostras \
em uma frequncia de amostragem de %iHz" % (len(som), f_a))

35
36
37
38
39
40
41
42
43

# Quadro 2: 3 conjuntos separados de triangulares


fs2 = fs[20:21]+fs[65:70]+fs[77:]
som = n.zeros(Lambda)
ii = n.arange(Lambda)
for f in fs2:
lambda_f = f_a/f
som += (1n.abs(2(4./lambda_f)(ii % lambda_f)))(1./f1.2)

44
45
46

# normalizando no intervalo [1,1]


som = ((som som.min())/(som.max()som.min()))21

47
48
49
50

a.wavwrite(som, "quadro2.wav", f_a)


print("quadro 2 feito em quadro2.wav (mono), so %i amostras \
em uma frequncia de amostragem de %iHz" % (len(som), f_a))

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

# Quadro 3: estereofonia alternada no espectro harmnico


f = 50.
fs3 = [f i for i in xrange(1, 7)] # 6 harmnicos
som_d = n.zeros(Lambda)
som_e = n.zeros(Lambda)
ii = n.linspace(0, Delta 2 n.pi, Lambda, endpoint=False)
i = 0
for f in fs3:
if i % 2 == 0:
som_d += n.sin(f ii)(1./f)
else:
som_e += n.sin(f ii)(1./f)
i += 1
som = n.vstack((som_d, som_e)).T
som = ((som som.min())/(som.max()som.min()))21

68
69
70
71

a.wavwrite(som, "quadro3.wav", f_a)


print("quadro 3 feito em quadro3.wav (estreo), so %i amostras \
em uma frequncia de amostragem de %iHz" % (len(som), f_a))

72
73
74
75
76
77
78

# Quadro 4: batimentos intercalados por ouvido e com defasagens


fs4 = n.array([50, 51.01, 52.01, 53])
som_d = n.zeros(Lambda)
som_e = n.zeros(Lambda)
ii = n.linspace(0, Delta 2 n.pi, Lambda, endpoint=False)

160

79
80
81
82
83
84
85
86

i = 0
for f in fs4:
if i % 2 == 0:
som_d += n.sin(f ii)(1./f)
else:
som_e += n.sin(f ii)(1./f)
i += 1
som = n.vstack((som_d, som_e)).T

87
88
89
90
91
92
93
94
95
96
97
98
99
100

fs4 = n.array([500, 501.01, 502.01, 503])


som_d = n.zeros(Lambda)
som_e = n.zeros(Lambda)
ii = n.linspace(0, Delta 2 n.pi, Lambda, endpoint=False)
i = 0
for f in fs4:
if i % 2 == 0:
som_d += n.sin(f ii)(1./f)
else:
som_e += n.sin(f ii)(1./f)
i += 1
som += n.vstack((som_d, som_e)).T/60
som = ((som som.min())/(som.max()som.min()))21

101
102
103
104

a.wavwrite(som, "quadro4.wav", f_a)


print("quadro 4 feito em quadro4.wav (estreo), so %i amostras \
em uma frequncia de amostragem de %iHz" % (len(som), f_a))

105
106
107
108
109
110

# Quadro 5: Dente de serra grave bate com harmnico em cada lado


f = 42. # Hz, freq da dente
lambda_f = 44100/f
dente = ((n.arange(float(Lambda)) % lambda_f)/lambda_f)21

111
112
113
114

ii = n.linspace(0, Delta 2 n.pi, Lambda, endpoint=False)


som_d = dente+n.sin(ii43)+n.sin(ii84)
som_e = dente+n.sin(ii43) + n.sin(ii126.3)

115
116
117

som = n.vstack((som_d, som_e)).T


som = ((som som.min())/(som.max()som.min()))21

118
119
120
121

a.wavwrite(som, "quadro5.wav", f_a)


print("quadro 5 feito em quadro5.wav (estreo), so %i amostras \
em uma frequncia de amostragem de %iHz" % (len(som), f_a))

161

B.1.2

Reduced-fi

Pequena pea musical para a concatenao de sequncias amostrais como notas musicais (subseo 2.1.8). Sintetiza uma pequena pea de 25 segundos em Python puro, i.e. sem utilizar
bibliotecas externas como Numpy ou Scikits/Audiolab. Pea demonstrativa dos conceitos apresentados na seo 2.1 e disponibilizada online junto ao toolbox massa.(2)

reduced-fi
1

#! /usr/bin/python

2
3
4
5
6

#
#
#
#

Rode com:
./reducedfi.py
ou
python reducedfi.py

7
8
9

import math as m
import random as r

10
11
12

def p(freq):
return 2m.pi freq/44100

13
14
15

def d(dur):
return int(dur44100)

16
17
18

def s(freq,dur):
return [m.sin(p(freq)i) for i in xrange(d(dur))]

19
20
21
22
23

ss=(s(100,.1)+s(200,.1)+s(400,.1)+s(800,.1))4
ss+=(s(100,.1)+s(200,.1)+s(400,.1)+s(800,.1))4
ss+=(s(200,.05)+s(100,.05)+s(3200,.05)+s(800,.05))8
ss+=(s(200,.05)+s(100,.05)+s(3200,.05)+s(800,.05))8

24
25
26
27
28
29

ss+=(s(100,.01)+s(200,.01)+s(400,.01)+s(800,.01))4
ss+=(s(100,.01)+s(200,.01)+s(400,.01)+s(800,.01))4
ss+=(s(200,.005)+s(100,.005)+s(3200,.005)+s(800,.005))8
ss+=(s(200,.005)+s(100,.005)+s(3200,.005)+s(800,.005))8
ss+=s(300,2)

30
31
32
33
34
35
36

ss+=(s(100,.01)+s(200,.01)+s(400,.01)+s(800,.01))4
ss+=(s(100,.01)+s(200,.01)+s(4000,.01)+s(800,.01))4
ss+=(s(200,.005)+s(100,.005)+s(6400,.005)+s(800,.005))8
ss+=(s(200,.005)+s(100,.005)+s(3200,.005)+s(800,.005))8
ss+=s(300,2)

162

37
38

foo=ss[:int(441001)]; r.shuffle(foo); ss+=[i.1 for i in foo]


ss+=s(300,2)

39
40
41
42
43
44
45

foo=ss[:int(44100.5)]; r.shuffle(foo); ss+=[i.1 for i in foo]


ss+=(s(100,.01)+s(200,.01)+s(400,.01)+s(800,.01))4
ss+=(s(100,.01)+s(200,.01)+s(400,.01)+s(800,.01))4
ss+=(s(200,.005)+s(100,.005)+s(3200,.005)+s(800,.005))8
ss+=(s(200,.005)+s(100,.005)+s(3200,.005)+s(800,.005))8

46
47
48
49
50
51

ss+=(s(100,.01)+s(200,.01)+s(400,.01)+s(800,.01))4
ss+=(s(100,.01)+s(200,.01)+s(4000,.01)+s(800,.01))4
ss+=(s(200,.005)+s(100,.005)+s(6400,.005)+s(800,.005))8
ss+=(s(2000,.005)+s(100,.005)+s(10000,.005)+s(800,.005))8
ss+=s(300,2)

52
53
54
55
56
57

ss+=(s(50,.1)+s(200,.1)+s(400,.1)+s(800,1))1
ss+=(s(50,1)+s(200,.1)+s(400,.1)+s(800,.1))1
ss+=(s(100,.5)+s(100,.05)+s(3200,.05)+s(800,.05))1
ss+=(s(200,.05)+s(100,.05)+s(3200,.05)+s(400,.5))1
foo=ss[:int(44100.25)]; r.shuffle(foo); ss+=[i.1 for i in foo]

58
59
60
61
62

ss+=s(400,.2)
ss+=s(200,.8)
ss+=s(150,.5)
ss+=s(100,1.5)

63
64
65

###########################

66

seq=ss

67

## Gravando em disco

68
69
70
71
72
73
74
75
76
77
78
79

import wave, struct


smin=min(seq); smax=max(seq)
seq= [(.5+(ismin)/(smaxsmin)) for i in seq] # normalizando
sound = wave.open(musica.wav,w)
sound.setframerate(44100)
sound.setsampwidth(2) # sempre 16bit/sample (2 bytes)
sound.setnchannels(1) # mono
sonic_vector=[i(2151) for i in seq] # 16 bit com sinal
sound.writeframes(struct.pack(h len(sonic_vector),\
[int(i) for i in sonic_vector]))
sound.close()
print "arquivo musica.wav gravado"

163

B.2

Peas referentes seo 2.2

B.2.1

Transita para metro

Sintetiza em 1 pequena pea de 49 segundos com varreduras de frequncia, chamados chirps.


Tambm proposta para exploraes de transies de intensidade. Pea demonstrativa dos
conceitos apresentados na subseo 2.2.2 e disponibilizada junto massa.(2)

Transita para metro


1
2

# coding: utf8
import numpy as n, scikits.audiolab as aa

3
4
5

# pea dedicada e expor as diferentes transies


# de intensidade e altura

6
7
8
9
10

#
#
#
#

partes
1) Transies de altura log e lin e com alpha
2) Transies de intensidade log e in e com alpha
3) Usos combinados de ambos

11
12
13

f_a = 44100. # Hz, frequncia de amostragem


Lambda_tilde=Lt=1024 # tamanho da tabela para LUT

14
15
16
17

# Senoide
foo=n.linspace(0,2n.pi,Lt,endpoint=False)
S_i=n.sin(foo) # um perodo da senide com T amostras

18
19
20

# Quadrada:
Q_i=n.hstack(

( n.ones(Lt/2)1 , n.ones(Lt/2) )

21
22
23
24

# Siangular:
foo=n.linspace(1,1,Lt/2,endpoint=False)
Tr_i=n.hstack( ( foo , foo1 )
)

25
26
27

# Dente de Serra:
D_i=n.linspace(1,1,Lt)

28
29
30
31

def T(f1,f2,dur,ttype="exp",tab=S_i,alpha=1.):
Lambda=n.floor(dur f_a)
ii=n.arange(Lambda)

32
33
34
35

if ttype=="exp":
f_i=f1(f2/f1)(
else:

(ii/(float(Lambda)1))alpha

) # exponencial

164

36

f_i=f1+(f2f1)ii/(Lambda1) # linear

37
38
39
40
41
42

Lt=len(tab)
D_gamma_i=f_i Lt/f_a
Gamma_i=n.cumsum(D_gamma_i)
Gamma_i=n.array(Gamma_i,dtype=n.int)
return tab[Gamma_i%Lt]

43
44
45

##########################################
# PARTE 1)

46
47
48
49

# 1a: comparando variao linear e logartmica


#class
"""parametros prestabelecidos para maior coerncia da explorao"""

50
51
52
53
54
55
56

f=[50.,100.,150.,200.,250.,300.,350.,400.,450.,500.,550.,
# 01 11
25 31
43 55
67
71
82
83
94#
d=[0.1,0.2,0.3,0.5,1.0,1.5,2.0,3.0,5.0,7.0,10.0]
# 0
1
2
3
4
5
6
7
8 9
10
a=[0.01,0.1,1.0,10.,100.]
#
0
1
2
3
4

600.]
105

57
58
59
60

#intro (8 segundos)
intr=n.hstack((T(f[9],f[0],d[7]),T(f[0],f[10],d[8],lin,Tr_i)))

61
62
63
64
65
66
67
68
69
70
71

#entrada (8 segundos)
entr= n.hstack(( T(f[10],f[10],d[8],lin,Tr_i),n.zeros(f_a d[7])))+ \
n.hstack(( T(f[3],f[0],d[3]),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3]),T(f[1],f[0],d[3]),
T(f[2],f[0],d[3]),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3]),T(f[1],f[0],d[3]),
T(f[3],f[0],d[3]),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3]),T(f[1],f[0],d[3]),
T(f[5],f[0],d[3]),
T(f[3],f[0],d[3]),T(f[2],f[0],d[3]),T(f[1],f[0],d[3],lin) ))

72
73
74
75
76
77
78
79
80
81
82
83
84
85

#desenvolvimento da entrada (8 segundos)


devEntr=n.hstack(( T(f[0],f[0],d[8]),T(f[0],f[0],d[4]),
T(f[0],f[0],d[3],lin,Tr_i),
T(f[0],f[0],d[3],lin,Tr_i),T(f[0],f[0],d[3],lin,Q_i),\
T(f[0],f[0],d[3],lin,Tr_i) )) + n.hstack(( T(f[5],f[2],d[3]),
T(f[5],f[8],d[3]),T(f[5],f[2],d[3]),T(f[8],f[5],d[3]),
T(f[5],f[2],d[3]),
T(f[5],f[1],d[3]),T(f[5],f[0],d[3]),T(f[1],f[2],d[3]),
T(f[5],f[2],d[3]),
T(f[10],f[2],d[3]),T(f[10],f[0],d[3]),T(f[10],f[9],d[3]),
T(f[5],f[2],d[3]),
T(f[7],f[5],d[3]),T(f[7],f[2],d[3]),T(f[0],f[2],d[3]) ))

165

86
87
88
89
90
91
92
93
94
95
96

#sublimada 1 / passagem para outros funcionamentos e estereofonia 8s


sub_e=n.hstack(( T(f[1],f[0],d[3],log,Q_i),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]),
T(f[1],f[0],d[3],log,Q_i),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]) )) + \
n.hstack(( T(f[0],f[10],d[9])+\
T(f[0],f[10],d[9],lin,Tr_i),n.zeros(f_a d[4]) ))

97
98
99
100
101
102
103
104
105
106
107

sub_d=n.hstack(( T(f[1],f[0],d[3],log,Q_i),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]),
T(f[1],f[0],d[3],log,Q_i),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),
T(f[1],f[0],d[3]),T(f[1],f[0],d[3],lin),T(f[1],f[0],d[3]) )) + \
n.hstack(( T(f[0],f[10],d[9],log,Tr_i)+\
T(f[0],f[10],d[9],lin),n.zeros(f_a d[4]) ))

108
109
110
111
112
113
114
115
116
117
118
119

# dev da sublimada +8s


sub2_e=n.hstack(( T(f[10],f[9],d[3]),
T(f[10],f[7],d[3]),T(f[10],f[9],d[3]),T(f[10],f[6],d[3]),
T(f[10],f[9],d[3]),
T(f[10],f[7],d[3]),T(f[10],f[9],d[3]),T(f[10],f[6],d[3]), )) + \
n.hstack(( T(f[10],f[8],d[3],tab=Tr_i),
T(f[10],f[5],d[3],tab=Tr_i),T(f[10],f[4],d[3],tab=Tr_i),
T(f[10],f[6],d[3],tab=Tr_i),
T(f[10],f[10],d[3],tab=Tr_i),
T(f[10],f[5],d[3],tab=Tr_i),T(f[10],f[0],d[3],tab=Tr_i),
T(f[10],f[1],d[3],tab=Tr_i) ))

120
121
122
123
124
125
126
127
128
129
130

sub2_d=n.hstack(( T(f[10],f[9],d[3],tab=Tr_i),
T(f[10],f[7],d[3],tab=Tr_i),T(f[10],f[9],d[3],tab=Tr_i),
T(f[10],f[6],d[3],tab=Tr_i),
T(f[10],f[9],d[3],tab=Tr_i),
T(f[10],f[7],d[3],tab=Tr_i),T(f[10],f[9],d[3],tab=Tr_i),
T(f[10],f[6],d[3],tab=Tr_i) )) + n.hstack(( T(f[10],f[8],d[3]),
T(f[10],f[5],d[3]),T(f[10],f[4],d[3]),T(f[10],f[6],d[3]),
T(f[10],f[10],d[3]),
T(f[10],f[5],d[3]),T(f[10],f[0],d[3]),T(f[10],f[1],d[3]) ))

131
132
133
134
135

# rarefao e repeties preparando para trmino


rar_e=n.hstack(( T(f[7],f[9],d[3]),
n.zeros(d[3]), T(f[10],f[9],d[3]),T(f[0],f[9],d[3]),
n.zeros(d[3]),T(f[0],f[9],d[5]),

166

136
137

n.zeros(d[6]),
T(f[1],f[9],d[6],lin)

))

138
139
140
141
142
143

rar_d=n.hstack(( T(f[7],f[9],d[3],lin),
n.zeros(d[3]), n.zeros(d[3]),T(f[1],f[9],d[3]),
T(f[0],f[10],d[4],lin,Tr_i),
T(f[9],f[9],d[4]),
T(f[1],f[9],d[6],log)
))

144
145
146
147

# finalizao com elementos dos outros momentos


intr=n.hstack((T(f[9],f[0],d[7]),T(f[0],f[10],d[8],lin,Tr_i)))

148
149
150
151
152

fin_e=n.copy(intr)
fin_d=n.copy(intr)
fin_e[d[4]f_a:d[5]f_a]=n.zeros(d[3]f_a)
fin_d[d[5]f_a:d[6]f_a]=n.zeros(d[3]f_a)

153
154
155

fin_e[7f_a:7.5f_a]=n.zeros(d[3]f_a)
fin_d[7.25f_a:7.75f_a]=n.zeros(d[3]f_a)

156
157
158
159

_e=n.hstack((
intr,entr,devEntr,sub_e,sub2_e,rar_e,fin_e
))
_d=n.hstack((
intr,entr,devEntr,sub_d,sub2_d,rar_d,fin_d,n.zeros(2)
s=n.vstack((_e,_d)).T

160
161

s=((ss.min())/(s.max()s.min()))21

162
163

aa.wavwrite(s,trans1.wav,f_a)

164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181

# Exploracao sistemtica dos tremolos:


#first=n.array(())
#for d in d[:5]:
# prinT(d)
# for f in f:
#
for f2 in f:
#
first=n.hstack((first,
#
trans(f,f2,d),
#
trans(f,f2,d,lin),
#
trans(f,f2,d,tab=Tr_i),
#
trans(f,f2,d,lin,tab=Tr_i),
#
trans(f,f2,d,tab=D_i),
#
trans(f,f2,d,lin,tab=D_i),
#
(trans(f,f2,d)+trans(f,f2,d,lin)).5,
#
(trans(f,f2,d,tab=Tr_i)+trans(f,f2,d,lin,tab=Tr_i)).5,
#
(trans(f,f2,d,tab=Q_i)+trans(f,f2,d,lin,tab=Q_i))0.5 ))

))

167

B.2.2

Vibra e treme

Para exploraes de tremolos e vibratos como expostos na subseo 2.2.5, sintetiza 17 pequenas
montagens de 8 a 24 segundos cada. Script disponibilizado online junto ao toolbox massa.(2)

B.2.3

Tremolos, vibratos e a frequncia

Pequena montagem musical para demonstrao de vnculo entre os parmetros dos tremolos e
vibratos com a frequncia fundamental central da nota. Resulta em 19 pequenas montagens de
4-32 segundos. Pea demonstrativa dos conceitos apresentados na subseo 2.2.6 e disponibilizada online junto ao toolbox massa.(2)

B.2.4

Trenzinho de caipiras impulsivos

Pequena pea musical para demonstrao do deslocamento causado pela convoluo com o
impulso. Sintetiza 11 pequenas montages cada uma com durao de 4-240 segundos. Pea
demonstrativa dos conceitos apresentados na subseo 2.2.3 e disponibilizada online junto ao
toolbox massa.

B.2.5

Ruidosa faixa

Pequena pea musical de 240 segundo spara demonstrao de filtragens diversas em rudos e
para reverberao, conceitos apresentados na subseo 2.2.3 e disponibilizada online junto ao
toolbox massa.(2)
ruidosa faixa
1
2
3
4
5

# coding: utf8
import numpy as n, scikits.audiolab as a
H=n.hstack
V=n.vstack

168

f_a = 44100. # Hz, frequncia de amostragem

7
8

############ 2.2.1 Tabela de busca (LUT)

Lambda_tilde=Lt=1024.

10
11
12
13

# Senoide
foo=n.linspace(0,2n.pi,Lt,endpoint=False)
S_i=n.sin(foo) # um perodo da senide com T amostras

14
15
16

# Quadrada:
Q_i=n.hstack(

( n.ones(Lt/2)1 , n.ones(Lt/2) )

17
18
19
20

# Triangular:
foo=n.linspace(1,1,Lt/2,endpoint=False)
Tr_i=n.hstack( ( foo , foo1 )
)

21
22
23

# Dente de Serra:
D_i=n.linspace(1,1,Lt)

24
25
26
27
28

def v(f=200,d=2.,tab=S_i,fv=2.,nu=2.,tabv=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lv=float(len(S_i))

29
30
31
32
33

Gammav_i=n.floor(ii fv Lv/f_a) # ndices para a LUT


Gammav_i=n.array(Gammav_i,n.int)
# padro de variao do vibrato para cada amostra
Tv_i=tabv[Gammav_i%int(Lv)]

34
35
36
37
38
39
40
41
42

# frequncia em Hz em cada amostra


F_i=f(
2.( Tv_i nu/12. )
)
# a movimentao na tabela por amostra
D_gamma_i=F_i(Lt/float(f_a))
Gamma_i=n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i=n.floor( Gamma_i) # j os ndices
Gamma_i=n.array( Gamma_i, dtype=n.int) # j os ndices
return tab[Gamma_i%int(Lt)] # busca dos ndices na tabela

43
44
45
46
47
48
49
50
51
52
53
54
55

def A(fa=2.,V_dB=10.,d=2.,taba=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lt=float(len(taba))
Gammaa_i=n.floor(ii fa Lt/f_a) # ndices para a LUT
Gammaa_i=n.array(Gammaa_i,n.int)
# variao da amplitude em cada amostra
A_i=taba[Gammaa_i%int(Lt)]
A_i=A_i10.(V_dB/20.)
return A_i

169

56
57
58
59
60
61

def adsr(som,A=10.,D=20.,S=20.,R=100.,xi=1e2):
a_S=10(S/20.)
Lambda=len(som)
Lambda_A=int(A f_a0.001)
Lambda_D=int(D f_a0.001)
Lambda_R=int(R f_a0.001)

62
63
64
65
66
67
68
69
70
71
72
73

ii=n.arange(Lambda_A,dtype=n.float)
A=ii/(Lambda_A1)
A_i=A
ii=n.arange(Lambda_A,Lambda_D+Lambda_A,dtype=n.float)
D=1(1a_S)(
( iiLambda_A )/( Lambda_D1) )
A_i=n.hstack( (A_i, D )
)
S=n.ones(LambdaLambda_R(Lambda_A+Lambda_D),dtype=n.float)a_S
A_i=n.hstack( ( A_i, S ) )
ii=n.arange(LambdaLambda_R,Lambda,dtype=n.float)
R=a_Sa_S((ii(LambdaLambda_R))/(Lambda_R1))
A_i=n.hstack( (A_i,R) )

74
75

return som A_i

76
77
78
79
80
81

BPM=60. # 80 batidas por minuto


DELTA=BPM/60 # durao da batida
LAMBDA=DELTA f_a # nmero de samples da batida
LAMBDA_=int(LAMBDA) # inteiro para operao com ndices

82
83
84
85
86
87

#cabeca=[1]+[0](LAMBDA1)
#contra=[0]Lambda/2+[1]+[0](Lambda/21)
tempo=n.zeros(LAMBDA)
cabeca=n.copy(tempo); cabeca[0]=1.
contra=n.copy(tempo); contra[LAMBDA_/2]=1.

88
89
90
91
92
93
94
95
96

# tempo de musica
Delta=4DELTA # segundos
Lambda=Delta f_a
Lambda_=int(Lambda)
ii=n.arange(Lambda_)
linha_cabeca=cabeca[ii%LAMBDA_]
linha_contra=contra[ii%LAMBDA_]

97
98
99
100
101
102
103
104
105

som1=adsr(v(tabv=Tr_i
som2=adsr(v(tabv=Tr_i
som3=adsr(v(tabv=Tr_i
som4=adsr(v(tabv=Tr_i
som5=adsr(v(tabv=Tr_i

,d=.3,fv=3.,nu=7.0,f=300.),10,10,10.)
,d=.2,fv=2.,nu=1.),10,10,10.)
,d=.2,fv=10.,nu=7.),10,10,10.)
,d=.2,fv=3.,nu=7.,f=1800.),1.,100.,60.,80.)
,d=.2,fv=3.,nu=7.,f=1800.)A(d=.2,fa=100.),
1.,100.,60.,80.)
som6=adsr(v(tabv=Tr_i ,d=.2,fv=30.,nu=7.,f=1800.)A(d=.2),
1.,100.,60.,80.)

170

106
107

em3=n.copy(tempo);em3[[0,LAMBDA_/3,2LAMBDA_/3]]=1.

108
109

linha_em3=em3[ii%LAMBDA_]

110
111

############

112

#RUIDOS

113
114
115
116

Lambda = 100000 # Lambda sempre par


# diferena das frequncias entre coeficintes vizinhos:
df=f_a/float(Lambda)

117
118
119
120
121
122
123
124

# e fase aleatoria
coefs=n.exp(1j n.random.uniform(0, 2n.pi, Lambda))
# real par, imaginaria impar
coefs[Lambda/2+1:]=n.real(coefs[1:Lambda/2])[::1] \
1j n.imag(coefs[1:Lambda/2])[::1]
coefs[0]=0. # sem bias
coefs[Lambda/2]=1. # freq max eh real simplesmente

125
126
127
128
129
130
131
132

# as frequncias relativas a cada coeficiente


# acima de Lambda/2 nao vale
fi=n.arange(coefs.shape[0])df
f0=15. # iniciamos o ruido em 15 Hz
i0=n.floor(f0/df) # primeiro coeff a valer
coefs[:i0]=n.zeros(i0)
f0=fi[i0]

133
134
135
136
137

# realizando o rudo em suas amostras temporais


ruido=n.fft.ifft(coefs)
r=n.real(ruido)
rb=((rr.min())/(r.max()r.min()))21 # ruido branco

138
139
140
141
142
143

# fazendo ruido preto


fator=10.(7/20.)
alphai=fator (n.log2(fi[i0:]/f0))
c=n.copy(coefs)
c[i0:]=c[i0:]alphai

144
145
146
147

# real par, imaginaria impar


c[Lambda/2+1:]=n.real(c[1:Lambda/2])[::1] \
1j n.imag(c[1:Lambda/2])[::1]

148
149
150
151

ruido=n.fft.ifft(c)
r=n.real(ruido)
rp=((rr.min())/(r.max()r.min()))21

152
153
154
155

LR=rb[n.arange(int(len(linha_em3)2.5))%len(rb)]\
A(d=int(len(linha_em3)2.5)/f_a,fa=.2,V_dB=50.)10(60/20.)

171

156
157

LR2=rb[n.arange(int(len(linha_em3)4.5))%len(rb)]\
A(d=int(len(linha_em3)4.5)/f_a).05

158
159
160

LR3=6.rp[n.arange(int(len(linha_em3)6.5))%len(rp)]\
A(d=int(len(linha_em3)6.5)/f_a).05

161
162
163
164

obj1=rb[:int(.4f_a)]A(d=.4,fa=15.)
obj2=rp[:int(.4f_a)]A(d=.4,fa=10.)

165
166
167

obj3=adsr(rb[:int(.4f_a)]A(d=.4,fa=15.))
obj4=adsr(rp[:int(.4f_a)]A(d=.4,fa=10.),S=5)

168
169

obj5=adsr(rp[:int(1.4f_a)]A(d=1.4,fa=10.),5.,500.,20,200)

170
171

##########

172
173
174
175
176
177

l1=n.convolve(obj1,linha_em3)[:len(linha_em3)]
l2=n.convolve(obj2,linha_em3)[:len(linha_em3)]
l3=n.convolve(obj3,linha_em3)[:len(linha_em3)]
l4=n.convolve(obj4,linha_em3)[:len(linha_em3)]
l6=n.convolve(obj5,linha_em3)[:len(linha_em3)]

178
179
180
181
182
183

l1_=n.convolve(obj1,linha_cabeca)[:len(linha_em3)]
l2_=n.convolve(obj2,linha_contra)[:len(linha_em3)]
l3_=n.convolve(obj3,linha_cabeca)[:len(linha_em3)]
l4_=n.convolve(obj4,linha_contra)[:len(linha_em3)]
l6_=n.convolve(obj5,linha_cabeca)[:len(linha_em3)]

184
185
186
187
188
189
190

linha1=n.convolve(som2,linha_cabeca)[:len(linha_cabeca)]
linha2=n.convolve(som4,linha_em3)[:len(linha_em3)]
linha4=n.convolve(som5,linha_em3)[:len(linha_em3)]
linha6=n.convolve(som6,linha_em3)[:len(linha_em3)]
linha3=n.convolve(som2,linha_contra)[:len(linha_contra)]

191
192
193
194
195

H_i=(n.random.random(int(f_a1.2))21)n.e(n.arange(int(f_a1.2)))
def r(l):
return n.convolve(H_i,l)[:len(linha_em3)]

196
197
198
199
200

som_e=n.hstack((r(linha2)+l1,linha3+r(l2),linha1+l3,
r(linha1)+linha2+linha3,r(l6)))
_
_
som e=n.hstack((som e,r(linha4)+l1_,r(l2_),l3_+linha3+linha1,
r(l4_)+linha1+linha3,r(l6_)+linha2))

201
202
203
204
205

som_d=n.hstack((linha1+r(linha2),linha2+linha3,r(linha3)+linha1,
linha2+linha3+l4,linha2))
som_d=n.hstack((som_d,r(linha4)+l1_,r(l2_),l3_+linha4+linha1,
r(l4_)+linha2+linha3,r(linha6)+linha2))

172

206
207

som=n.vstack((som_e,som_d))

208
209

som[:,:len(LR)]+=LR

210
211
212
213

som[:,len(l1)3:len(l1)3+len(LR2)]+=LR2
som[:,int(len(l1)3.5):int(len(l1)3.5)+len(LR3)]+=LR3
som[:,len(l1)7:len(l1)7+len(LR)]+=LR

214
215

T_i=som

216
217

T_i=(T_iT_i.min())/(T_i.max()T_i.min())

218
219
220

a.wavwrite(n.hstack((T_i,T_i,T_i,T_i,T_i,T_i)).T,
"ruidosaFaixa4.wav",f_a)

173

B.2.6

Bela Rugosi

Pequena pea musical de 96 segundos para demonstrao da rugosidade causada por oscilaes
com frequencias 13 30Hz, conceitos apresentados na subseo 2.2.5. A pea tambm
disponibilizada online junto toolbox massa.(2)

bela rugosi
1
2
3
4

# coding: utf8
import numpy as n, scikits.audiolab as a
H=n.hstack
V=n.vstack

5
6

f_a = 44100. # Hz, frequncia de amostragem

7
8
9
10
11
12
13

# Tamanho da LUT > 210 para usar tambm em oscilacoes


# de comprimento de onda grandes (LFO)
Lambda_tilde=Lt=(2.5)1024.
# Senoide
foo=n.linspace(0,2n.pi,Lt,endpoint=False)
S_i=n.sin(foo) # um perodo da senide com T amostras

14
15
16

# Quadrada:
Q_i=n.hstack(

( n.ones(Lt/2)1 , n.ones(Lt/2) )

17
18
19
20

# Triangular:
foo=n.linspace(1,1,Lt/2,endpoint=False)
Tr_i=n.hstack( ( foo , foo1 )
)

21
22
23

# Dente de Serra:
D_i=n.linspace(1,1,Lt)

24
25
26
27
28
29

def v(f=200,d=2.,tab=S_i,fv=2.,nu=2.,tabv=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lv=float(len(tabv))

30
31
32
33
34

Gammav_i=n.floor(ii fv Lv/f_a) # ndices para a LUT


Gammav_i=n.array(Gammav_i,n.int)
# padro de variao do vibrato para cada amostra
Tv_i=tabv[Gammav_i%int(Lv)]

35
36
37
38

# frequncia em Hz em cada amostra


F_i=f(
2.( Tv_i nu/12. )
)
# a movimentao na tabela por amostra

174

39
40
41
42
43

D_gamma_i=F_i(Lt/float(f_a))
Gamma_i=n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i=n.floor( Gamma_i) # j os ndices
Gamma_i=n.array( Gamma_i, dtype=n.int) # j os ndices
return tab[Gamma_i%int(Lt)] # busca dos ndices na tabela

44
45
46
47

dd=v(tabv=Tr_i ,d=2,fv=35.,nu=7.0)
dd2=v(tabv=D_i ,d=2,fv=35.,nu=7.0)

48
49
50

dd3=v(tabv=Tr_i,d=2,fv=35.,nu=7.0)
dd4=v(tabv=S_i ,d=2,fv=35.,nu=7.0)

51
52
53

dd5=v(tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd6=v(tabv=S_i ,d=2,fv=35.,nu=7.0)

54
55
56

dd7=v(tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd8=v(tabv=D_i ,d=2,fv=35.,nu=7.0)

57
58
59
60
61

zz=V((H((dd,dd3,dd5,dd7)), H((dd2,dd4,dd6,dd8))))
aa1=n.array(list(v(tabv=Q_i,fv=.5,f=200,nu=9))4)
aa2=n.array(v(tabv=Tr_i,fv=.25/2.,f=200,nu=9,d=8.))
aa3=n.array(v(fv=.25/2.,f=200,nu=9,d=8.))

62
63

aa=n.vstack(( (zz+aa1).T.5, (zz+aa2).T.5,(zz+aa3).T.5))

64
65
66

dd= v(tab=Tr_i,tabv=Tr_i ,d=2,fv=35.,nu=7.0)


dd2=v(tab=Tr_i,tabv=D_i ,d=2,fv=35.,nu=7.0)

67
68
69

dd3=v(tab=Tr_i,tabv=Tr_i,d=2,fv=35.,nu=7.0)
dd4=v(tab=Tr_i,tabv=S_i ,d=2,fv=35.,nu=7.0)

70
71
72

dd5=v(tab=Tr_i,tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd6=v(tab=Tr_i,tabv=S_i ,d=2,fv=35.,nu=7.0)

73
74
75

dd7=v(tab=Tr_i,tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd8=v(tab=Tr_i,tabv=D_i ,d=2,fv=35.,nu=7.0)

76
77
78
79
80

zz=V((H((dd,dd3,dd5,dd7)), H((dd2,dd4,dd6,dd8))))
aa1=n.array(list(v(tabv=Q_i,fv=.5,f=200,nu=9))4)
aa2=n.array(v(tabv=Tr_i,fv=.25/2.,f=200,nu=9,d=8.))
aa3=n.array(v(fv=.25/2.,f=200,nu=9,d=8.))

81
82

aa=n.vstack(( aa, (zz+aa1).T.5, (zz+aa2).T.5,(zz+aa3).T.5))

83
84
85

dd= v(tab=Q_i,tabv=Tr_i ,d=2,fv=35.,nu=7.0)


dd2=v(tab=Q_i,tabv=D_i ,d=2,fv=35.,nu=7.0)

86
87
88

dd3=v(tab=Q_i,tabv=Tr_i,d=2,fv=35.,nu=7.0)
dd4=v(tab=Q_i,tabv=S_i ,d=2,fv=35.,nu=7.0)

175

89
90
91

dd5=v(tab=Q_i,tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd6=v(tab=Q_i,tabv=S_i ,d=2,fv=35.,nu=7.0)

92
93
94

dd7=v(tab=Q_i,tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd8=v(tab=Q_i,tabv=D_i ,d=2,fv=35.,nu=7.0)

95
96
97
98
99

zz=V((H((dd,dd3,dd5,dd7)), H((dd2,dd4,dd6,dd8))))
aa1=n.array(list(v(tabv=Q_i,fv=.5,f=200,nu=9))4)
aa2=n.array(v(tabv=Tr_i,fv=.25/2.,f=200,nu=9,d=8.))
aa3=n.array(v(fv=.25/2.,f=200,nu=9,d=8.))

100
101

aa=n.vstack(( aa, (zz+aa1).T.5, (zz+aa2).T.5,(zz+aa3).T.5))

102
103
104

dd= v(tab=D_i,tabv=Tr_i ,d=2,fv=35.,nu=7.0)


dd2=v(tab=D_i,tabv=D_i ,d=2,fv=35.,nu=7.0)

105
106
107

dd3=v(tab=D_i,tabv=Tr_i,d=2,fv=35.,nu=7.0)
dd4=v(tab=D_i,tabv=S_i ,d=2,fv=35.,nu=7.0)

108
109
110

dd5=v(tab=D_i,tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd6=v(tab=D_i,tabv=S_i ,d=2,fv=35.,nu=7.0)

111
112
113

dd7=v(tab=D_i,tabv=Q_i ,d=2,fv=35.,nu=7.0)
dd8=v(tab=D_i,tabv=D_i ,d=2,fv=35.,nu=7.0)

114
115
116
117
118

zz=V((H((dd,dd3,dd5,dd7)), H((dd2,dd4,dd6,dd8))))
aa1=n.array(list(v(tabv=Q_i,fv=.5,f=200,nu=9))4)
aa2=n.array(v(tabv=Tr_i,fv=.25/2.,f=200,nu=9,d=8.))
aa3=n.array(v(fv=.25/2.,f=200,nu=9,d=8.))

119
120

aa=n.vstack(( aa, (zz+aa1).T.5, (zz+aa2).T.5,(zz+aa3).T.5))

121
122
123

print("BellaRugosiSdadE.wav escrito")
a.wavwrite(aa,"BellaRugosiSdadE.wav",f_a)

176

B.2.7

Chorus infantil

Script para demonstrao do efeito chorus (inspirado em coro de cantores) . Sintetiza 4 pequenas montagens de 8-32 segundos com os conceitos apresentados na subseo 2.2.6 e disponibilizada online junto ao toolbox massa.(2)

B.2.8

ADa e SaRa

Pequenas peas musicais para demonstrao da envoltria ADSR. Sintetiza 7 peas de 5-17
segundos, cetradas nos conceitos apresentados na subseo 2.2.6 e disponibilizada online junto
massa.(2)

177

B.3

Peas referentes seo 2.3

B.3.1

Intervalos entre alturas

Pequena pea musical de 45 segundos para explorao do sistema de intervalos, demonstrativa


dos conceitos apresentados na subseo 2.3.1, e disponibilizada online junto ao toolbox massa.

B.3.2

Cristais

Pequena pea musical de 64 segundos para demonstrao das escalas simtricas, conceitos
apresentados na subseo 2.3.1, e disponibilizada online junto massa.(2)
cristais
1
2
3
4

# coding: utf8
import numpy as n, scikits.audiolab as a
H=n.hstack
V=n.vstack

5
6

f_a = 44100. # Hz, frequncia de amostragem

7
8

Lambda_tilde=Lt=1024.16

9
10
11
12

# Senoide
foo=n.linspace(0,2n.pi,Lt,endpoint=False)
S_i=n.sin(foo) # um perodo da senide com T amostras

13
14
15

# Quadrada:
Q_i=n.hstack(

( n.ones(Lt/2)1 , n.ones(Lt/2) )

16
17
18
19

# Triangular:
foo=n.linspace(1,1,Lt/2,endpoint=False)
Tr_i=n.hstack( ( foo , foo1 )
)

20
21
22

# Dente de Serra:
D_i=n.linspace(1,1,Lt)

23
24
25
26
27

def v(f=200,d=2.,tab=S_i,fv=2.,nu=2.,tabv=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lv=float(len(tabv))

28
29

Gammav_i=n.floor(ii fv Lv/f_a) # ndices para a LUT

178

30
31
32

Gammav_i=n.array(Gammav_i,n.int)
# padro de variao do vibrato para cada amostra
Tv_i=tabv[Gammav_i%int(Lv)]

33
34
35
36
37
38
39
40
41

# frequncia em Hz em cada amostra


F_i=f(
2.( Tv_i nu/12. )
)
# a movimentao na tabela por amostra
D_gamma_i=F_i(Lt/float(f_a))
Gamma_i=n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i=n.floor( Gamma_i) # j os ndices
Gamma_i=n.array( Gamma_i, dtype=n.int) # j os ndices
return tab[Gamma_i%int(Lt)] # busca dos ndices na tabela

42
43
44
45
46
47
48
49
50
51
52

def A(fa=2.,V_dB=10.,d=2.,taba=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lt=float(len(taba))
Gammaa_i=n.floor(ii fa Lt/f_a) # ndices para a LUT
Gammaa_i=n.array(Gammaa_i,n.int)
# variao da amplitude em cada amostra
A_i=taba[Gammaa_i%int(Lt)]
A_i=A_i10.(V_dB/20.)
return A_i

53
54
55
56
57
58
59

def adsr(som,A=10.,D=20.,S=20.,R=100.,xi=1e2):
a_S=10(S/20.)
Lambda=len(som)
Lambda_A=int(A f_a0.001)
Lambda_D=int(D f_a0.001)
Lambda_R=int(R f_a0.001)

60
61
62
63
64
65
66
67
68
69
70
71

ii=n.arange(Lambda_A,dtype=n.float)
A=ii/(Lambda_A1)
A_i=A
ii=n.arange(Lambda_A,Lambda_D+Lambda_A,dtype=n.float)
D=1(1a_S)(
( iiLambda_A )/( Lambda_D1) )
A_i=n.hstack( (A_i, D )
)
S=n.ones(LambdaLambda_R(Lambda_A+Lambda_D),dtype=n.float)a_S
A_i=n.hstack( ( A_i, S ) )
ii=n.arange(LambdaLambda_R,Lambda,dtype=n.float)
R=a_Sa_S((ii(LambdaLambda_R))/(Lambda_R1))
A_i=n.hstack( (A_i,R) )

72
73

return som A_i

74
75
76
77
78
79

# 2..7.5. Escalas simtricas


Ec_i=[0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.]
Et_i=[0.,2.,4.,6.,8.,10.]
Etm_i=[0.,3.,6.,9.]

179

80
81

EtM_i=[0.,4.,8.]
Ett_i=[0.,6.]

82
83

notast_A=[adsr( v(2002(i/12.),d=.2 ) ) for i in Et_i]

84
85
86
87

notast_D=[adsr( v(4002(i/12.),d=.2 ) ) for i in Et_i]


s=H( notast_D +notast_A+notast_D)
s1=n.copy(s)

88
89

notastm_A=[adsr( v(2002(i/12.),d=.2 ) ) for i in Etm_i]

90
91
92

notastm_D=[adsr( v(4002(i/12.),d=.2 ) ) for i in Etm_i]


s=H(( notastm_D +notastm_A+notastm_D))

93
94

notastM_A=[adsr( v(2002(i/12.),d=.2 ) ) for i in

EtM_i]

95
96
97

notastM_D=[adsr( v(4002(i/12.),d=.2 ) ) for i in EtM_i]


s=H(( [list(s)]+ notastM_D +notastM_A+notastM_D))

98
99

notastt_A=[adsr( v(2002(i/12.),d=.2 ) ) for i in

Ett_i]

100
101
102

notastt_D=[adsr( v(4002(i/12.),d=.2 ) ) for i in Ett_i]


s=H(( [list(s)]+ notastt_D +notastt_A+notastt_D))

103
104
105
106
107

s=H((s,s[::1]))
s=H((s,s[::2],s[::2]))
s=H(( s,s+H((s[::2],s[::2])),
s+H((s[::4],s[::4],s[::4],s[::8],s[::8])) ))

108
109
110

s=((ss.min())/(s.max()s.min()))2.1.
a.wavwrite(s,"cristais.wav",f_a) # escrita do som

180

B.3.3

Micro tom

Pequena pea musical para demonstrao da microtonalidade. Usados de quartos de tom e de


stimos de oitava, conceitos apresentados na subseo 2.3.1. Disponibilizada online junto

massa.(2)
micro tom
1
2
3
4
5

# coding: utf8
import numpy as n, scikits.audiolab as a
import random as r
H=n.hstack
V=n.vstack

6
7

f_a = 44100. # Hz, frequncia de amostragem

8
9
10

############ 2.2.1 Tabela de busca (LUT)


Lambda_tilde=Lt=1024.16

11
12
13
14

# Senoide
foo=n.linspace(0,2n.pi,Lt,endpoint=False)
S_i=n.sin(foo) # um perodo da senide com T amostras

15
16
17

# Quadrada:
Q_i=n.hstack(

( n.ones(Lt/2)1 , n.ones(Lt/2) )

18
19
20
21

# Triangular:
foo=n.linspace(1,1,Lt/2,endpoint=False)
Tr_i=n.hstack( ( foo , foo1 )
)

22
23
24

# Dente de Serra:
D_i=n.linspace(1,1,Lt)

25
26
27
28
29
30

def v(f=200,d=2.,tab=S_i,fv=2.,nu=2.,tabv=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lv=float(len(tabv))

31
32
33
34
35

Gammav_i=n.floor(ii fv Lv/f_a) # ndices para a LUT


Gammav_i=n.array(Gammav_i,n.int)
# padro de variao do vibrato para cada amostra
Tv_i=tabv[Gammav_i%int(Lv)]

36
37
38

# frequncia em Hz em cada amostra


F_i=f(
2.( Tv_i nu/12. )
)

181

39
40
41
42
43
44

# a movimentao na tabela por amostra


D_gamma_i=F_i(Lt/float(f_a))
Gamma_i=n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i=n.floor( Gamma_i) # j os ndices
Gamma_i=n.array( Gamma_i, dtype=n.int) # j os ndices
return tab[Gamma_i%int(Lt)] # busca dos ndices na tabela

45
46
47
48
49
50
51
52
53
54
55

def A(fa=2.,V_dB=10.,d=2.,taba=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lt=float(len(taba))
Gammaa_i=n.floor(ii fa Lt/f_a) # ndices para a LUT
Gammaa_i=n.array(Gammaa_i,n.int)
A_i=taba[Gammaa_i%int(Lt)]
A_i=A_i10.(V_dB/20.)
return A_i

56
57
58
59
60
61
62
63

def adsr(som,A=10.,D=20.,S=20.,R=100.,xi=1e2):
a_S=10(S/20.)
Lambda=len(som)
Lambda_A=int(A f_a0.001)
Lambda_D=int(D f_a0.001)
Lambda_R=int(R f_a0.001)

64
65
66
67
68
69
70
71
72
73
74
75

ii=n.arange(Lambda_A,dtype=n.float)
A=ii/(Lambda_A1)
A_i=A
ii=n.arange(Lambda_A,Lambda_D+Lambda_A,dtype=n.float)
D=1(1a_S)(
( iiLambda_A )/( Lambda_D1) )
A_i=n.hstack( (A_i, D )
)
S=n.ones(LambdaLambda_R(Lambda_A+Lambda_D),dtype=n.float)a_S
A_i=n.hstack( ( A_i, S ) )
ii=n.arange(LambdaLambda_R,Lambda,dtype=n.float)
R=a_Sa_S((ii(LambdaLambda_R))/(Lambda_R1))
A_i=n.hstack( (A_i,R) )

76
77

return som A_i

78
79
80
81
82
83

def ac(f=200.,notas=[0.,4.,7.,12.],tab=S_i):
acorde=adsr(v(tab=tab,f=f 2. (notas[1]/12.),nu=0))
for na in notas[:1]:
acorde+=adsr(v(tab=tab,f=f 2 (na/12.),nu=0))

84
85

return acorde

86
87
88

# Microtonalidade

182

89
90
91
92
93
94
95

epslon=2(1/12.) # diviso da oitava em 12 semitons


# quartos de tom sao metade do semitom
ff=[0.,0.5,3.5,4.,4.5,5. , 7.,7.5]
dd=[.5,.25, .25,.5/2,.25, .25,.5/4,.5/4]
tt=[adsr(v(tab=Tr_i,f=2002(f/12),d=d,nu=0),R=30.) for
f,d in zip(ff,dd)]
s=H((tt+tt[::1]))

96
97
98
99
100
101
102

ff=[3.5,4.,4.5, 6.5, 7.,7.5, 7. , 6.5]


dd=[.5,.25, .25, .5/2, .25, .25,.5/4,.5/4]
tt=[adsr(v(tab=Tr_i,f=2002(f/12),d=d,nu=0),R=30.) for
f,d in zip(ff,dd)]
so=H((tt+tt[::1]))
s=H(([s]+tt+tt[::1]))

103
104
105
106
107

# ou em 7 grados na oitava com um estilo tradicional tailands


epslon=2(1/7.)
ff=[0.,1.,2.,3.,4.,5.,6.,7.]
dd=[.8,0.4,0.2,.1,0.4]

108
109
110

ff=[200.2.(r.choice(ff)/7.) for i in xrange(153)] # 15 notas


dd=[r.choice(dd) for i in
xrange(153)] # 15 notas

111
112
113

tt=[adsr(v(tab=Tr_i,f=f,d=d,nu=0),R=50.) for f,d in zip(ff,dd)]


s=H(([s]+tt+tt[::1]))

114
115

sa=H((s[::2],s[::2],s[::2],s[::2]))

116
117
118
119
120

ff=[0.,1.,2.,3.,4.,5.,6.,7.]
ff=[50.2.(r.choice(ff)/7.) for i in xrange(153)] # 15 notas
dd=[.8,0.4,0.2,.1,0.4]
dd=[r.choice(dd) for i in
xrange(153)] # 15 notas

121
122
123
124

tt=[adsr(v(tab=Tr_i,f=f,d=d,nu=7.,fv=12),R=50.) for
f,d in zip(ff,dd)]
sg=H((tt+tt[::1]))2.

125
126
127

m=min(len(so),len(sa),len(sg))
foo=H((so[:m]+sa[:m]+sg[:m]))

128
129

s=H((s,foo,foo,foo,foo,foo,foo,foo))

130
131
132

s=((ss.min())/(s.max()s.min()))2.1.
a.wavwrite(s,"microTom.wav",f_a)

183

B.3.4

Acorde cedo

Pequena pea musical de 40 segundos para demonstrao dos encadeamentos tonais bsicos,
conceitos apresentados na subseo 2.3.2, e disponibilizada online como parte da massa.(2)

B.3.5

Conta ponto

Pequena montagem musical de 17 segundos para demonstrao de vozes conduzidas por regras
simples para manterem independncia, conceitos apresentados na subseo 2.3.3, e disponibilizada online junto massa.(2)

B.3.6

Poli Hit Mia

Pequena montagem musical de 99 segundos para demonstrao da mtrica musical e das diferentes contagens, conceitos apresentados na seo 2.3.4, e disponibilizada online junto

massa.(2)
B.3.7

Dirracional

Pequena pea musical de 22 segundos para demonstrao das estruturas direcionais e posicionamentos dos clmax, conceitos apresentados na seo 2.3, e disponibilizada online junto

massa.(2)
dirracional
1
2
3
4
5

# coding: utf8
import numpy as n, scikits.audiolab as a
import random as r
H=n.hstack
V=n.vstack

6
7

f_a = 44100. # Hz, frequncia de amostragem

8
9

############ 2.2.1 Tabela de busca (LUT)

184

10

Lambda_tilde=Lt=1024.16

11
12
13
14

# Senoide
foo=n.linspace(0,2n.pi,Lt,endpoint=False)
S_i=n.sin(foo) # um perodo da senide com T amostras

15
16
17

# Quadrada:
Q_i=n.hstack(

( n.ones(Lt/2)1 , n.ones(Lt/2) )

18
19
20
21

# Triangular:
foo=n.linspace(1,1,Lt/2,endpoint=False)
Tr_i=n.hstack( ( foo , foo1 )
)

22
23
24

# Dente de Serra:
D_i=n.linspace(1,1,Lt)

25
26
27
28
29
30

def v(f=200,d=2.,tab=S_i,fv=2.,nu=2.,tabv=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lv=float(len(tabv))

31
32
33
34
35

Gammav_i=n.floor(ii fv Lv/f_a) # ndices para a LUT


Gammav_i=n.array(Gammav_i,n.int)
# padro de variao do vibrato para cada amostra
Tv_i=tabv[Gammav_i%int(Lv)]

36
37
38
39
40
41
42
43
44

# frequncia em Hz em cada amostra


F_i=f(
2.( Tv_i nu/12. )
)
# a movimentao na tabela por amostra
D_gamma_i=F_i(Lt/float(f_a))
Gamma_i=n.cumsum(D_gamma_i) # a movimentao na tabela total
Gamma_i=n.floor( Gamma_i) # j os ndices
Gamma_i=n.array( Gamma_i, dtype=n.int) # j os ndices
return tab[Gamma_i%int(Lt)] # busca dos ndices na tabela

45
46
47
48
49
50
51
52
53
54
55

def A(fa=2.,V_dB=10.,d=2.,taba=S_i):
Lambda=n.floor(f_a d)
ii=n.arange(Lambda)
Lt=float(len(taba))
Gammaa_i=n.floor(ii fa Lt/f_a) # ndices para a LUT
Gammaa_i=n.array(Gammaa_i,n.int)
# variao da amplitude em cada amostra
A_i=taba[Gammaa_i%int(Lt)]
A_i=A_i10.(V_dB/20.)
return A_i

56
57
58
59

def adsr(som,A=10.,D=20.,S=20.,R=100.,xi=1e2):
a_S=10(S/20.)
Lambda=len(som)

185

60
61
62

Lambda_A=int(A f_a0.001)
Lambda_D=int(D f_a0.001)
Lambda_R=int(R f_a0.001)

63
64
65
66
67
68
69
70
71
72
73
74

ii=n.arange(Lambda_A,dtype=n.float)
A=ii/(Lambda_A1)
A_i=A
ii=n.arange(Lambda_A,Lambda_D+Lambda_A,dtype=n.float)
D=1(1a_S)(
( iiLambda_A )/( Lambda_D1) )
_
A i=n.hstack( (A_i, D )
)
S=n.ones(LambdaLambda_R(Lambda_A+Lambda_D),dtype=n.float)a_S
A_i=n.hstack( ( A_i, S ) )
ii=n.arange(LambdaLambda_R,Lambda,dtype=n.float)
R=a_Sa_S((ii(LambdaLambda_R))/(Lambda_R1))
A_i=n.hstack( (A_i,R) )

75
76

return som A_i

77
78
79
80
81
82
83
84
85
86
87

seq=[(i1.)/i for i in range(60)[1::2]]


# particionamento d oitava em 17 grados, 18 com a oitava
seq=[i for i in n.linspace(0,1,14)]
s1=seq[::2]+seq[::2] # simetrica
s2=seq[::4]+seq[::2] # na primeira metade
s3=seq[::2]+seq[::4] # na segunda metade
s4=seq # no comec
s5=seq[::1] # no fim
pausa=p=[0.]8
s_=s1+p+s2+p+s3+p+s4+p+s5+p+p

88
89
90
91

s=H(([adsr(v(tab=Tr_i,f=800.2.(ss),nu=0.5,d=.2,fv=20),
70.,100.,R=20.) for ss in s_]))
s=((ss.min())/(s.max()s.min()))21

92
93

a.wavwrite(s,"dirracional.wav",f_a)

186

187

APNDICE C -- Finite Groups in Granular and


Unit Synthesis e a sntese de um EP

C.1

FIGGUS

Escrito como um mdulo python, o figgus sintetiza estruturas musicais atravs de permutaes, como apresentadas na subseo 2.3.7. Utiliza os princpios da massa e os cdigos foram
reescritos para python nativo, i.e. sem a utilizao de bibliotecas externas como o Numpy e o
Audiolab, para facilitar o uso de terceiros. O figgus parte da toolbox massa como exemplo
de implementao dos princpios da toolbox com as biblitecas padro da linguagem Python.(2)

C.1.1

FIGGUS.py

Arquivo principal, possui todas as rotinas.

C.1.2

tables.py

Arquivo auxiliar para tratar as tabelas separadamente.

C.1.3

__init__.py

Inicializao do mdulo.

188

C.2

PPEPPS: msicas de um EP solvente

O PPEPPS (Pure Python EP: Projeto Solvente) usa o figgus para sintetizar um EP inteiro. As
msicas esto abaixo, junto com o arquivo que executa cada uma.

C.2.1

RUNME make EP MUSIC.py

Arquivo que executa os outros um por um para sintetizar as msicas do EP.

RUNME_make_now_an_EP_MUSIC.py
1

import os

2
3

os.mkdir(epProjeto_Solvente)

4
5
6
7

execfile("examples/triangulo3_B.py")
os.system(mv sound.wav epProjeto_Solvente/01Eter.wav)
print("gravado o arquivo epProjeto_Solvente/01Eter.wav")

8
9
10
11

execfile("examples/try4_B.py")
os.system(mv sound.wav epProjeto_Solvente/04Butano.wav)
print("gravado o arquivo epProjeto_Solvente/04Butano.wav")

12
13
14
15

execfile("examples/try5_B.py")
os.system(mv sound.wav epProjeto_Solvente/05Thinner.wav)
print("gravado o arquivo epProjeto_Solvente/05Thinner.wav")

16
17
18
19

execfile("examples/try6_B.py")
os.system(mv sound.wav epProjeto_Solvente/06Tolueno.wav)
print("gravado o arquivo epProjeto_Solvente/06Tolueno.wav")

20
21
22
23

execfile("examples/try7.py")
os.system(mv both.wav epProjeto_Solvente/07Benzina.wav)
print("gravado o arquivo epProjeto_Solvente/07Benzina.wav")

24
25
26
27

execfile("examples/try3_B.py")
os.system(mv sound.wav epProjeto_Solvente/08LSA.wav)
print("gravado o arquivo epProjeto_Solvente/08LSA.wav")

28
29
30
31

execfile("examples/try2.py")
os.system(mv sound.wav epProjeto_Solvente/09Cloroformio.wav)
print("gravado o arquivo epProjeto_Solvente/09Cloroformio.wav")

32
33

execfile("examples/try5.py")

189

34
35

os.system(mv sound.wav epProjeto_Solvente/10Agua.wav)


print("gravado o arquivo epProjeto_Solvente/10Agua.wav")

C.2.2
1

ter

import figgus as f

2
3
4
5

n=3
grains=[f.UnitGrain(),f.UnitGrain(),f.UnitGrain()]
s=f.Sequence(grains)

6
7
8
9
10

def doCompass(durs,freqs,perms,ncomps):
for i in xrange(n):
s.ordered_units[i].freq=eval(freqs)
s.ordered_units[i].duration=eval(durs)

11
12
13
14

p=f.Pattern(s,f.PermutationPattern(perms),ncomps)
p.synthesizeSonicVectors()
return p.sonic_vector

15
16
17
18

semitom = "2(1/12.)" # 12 semintons sums to an octave


dur=".5"
sound=[]

19
20

####

21
22
23
24
25

sounda=doCompass(dur,"200("+semitom+") (3 i)",(3,1,2),34)
soundb=doCompass(dur,"2002("+semitom+") (3 i)",(2,3,1),34)
sound = sounda+[(i+j).5 for i,j in zip(sounda,soundb)]

26
27
28
29
30
31

dur=".3"
sounda1=doCompass(dur,"100("+semitom+") (3 i)",(3,1,2),34)
soundb1=doCompass(dur,"200(2/3.)("+semitom+") (3 i)",(2,3,1),34)
stemp = [(i+j).5 for i,j in zip(sounda1,soundb1)]
sound += stemp

32
33

sound += sounda1+soundb1

34
35
36

sounda=doCompass(dur,"200("+semitom+") (3 i)",(3,1,2),34)
soundb=doCompass(dur,"200("+semitom+") (3 i)",(2,3,1),34)

37
38
39
40

stemp2 = [(i+j).5 for i,j in zip(sounda,soundb)]


stemp3 = [(i+j).5 for i,j in zip(stemp,stemp2)]
sound += 2stemp3

41
42
43
44

io=f.IOUtils()
io.recordFile(sound) #records a mono 16 bit

190

45

print("\n== triangulo gira em crescente ==\n")

191

C.2.3
1

Benzina

import figgus as f

2
3
4
5

n=4
grains=[f.UnitGrain(),f.UnitGrain(),f.UnitGrain(),f.UnitGrain()]
s=f.Sequence(grains)

6
7
8
9
10
11

def doCompass(durs,freqs,perms,ncomps):
for i in xrange(n):
s.ordered_units[i].freq=eval(freqs)
s.ordered_units[i].duration=eval(durs)
#print 1(i+1)

12
13
14
15

p=f.Pattern(s,f.PermutationPattern(perms),ncomps)
p.synthesizeSonicVectors()
return p.sonic_vector

16
17
18
19

semitom = "2(1/12.)"
dur=".2"
sound=[]

20
21
22
23
24
25
26
27
28
29

####
sound1=doCompass(dur,"200("+semitom+") (3 i)",(2,3,1),3)
sound1B=doCompass(dur,"4200("+semitom+") (3 i)",(2,3,1),3)
sound1C=doCompass(dur,".5200("+semitom+") (3 i)",(2,3,1),3)
# Inverting quirality
sound2=doCompass(dur,"200("+semitom+") (3 i)",(3,1,2),3)
sound2B=doCompass(dur,"4200("+semitom+") (3 i)",(3,1,2),3)
sound2C=doCompass(dur,".5200("+semitom+") (3 i)",(3,1,2),3)
silencio=doCompass(dur,"0",(2,3,1),1)

30
31
32
33
34
35
36
37
38
39
40

left=[(i+j+k).32 for i,j,k in zip(sound1,sound2B,sound1C,)]


left1=left[:]
right=[(i+j+k).32 for i,j,k in zip(sound2,sound1B,sound2C)]
right1=right[:]
left += right1
right += left1
left=2
right=2

41
42
43
44
45
46
47

left2=[(i+j+k).32 for i,j,k in zip(sound1,sound1B,sound2C,)]


left+=left2
right2=[(i+j+k).32 for i,j,k in zip(sound2,sound2B,sound1C)]
right+=right2
left+=right2
right+=left2

192

48
49
50
51
52
53
54

left30=[(i+j+k).32 for i,j,k in zip(sound1,sound2B,sound2C)]


left+=left30
right30=[(i+j+k).32 for i,j,k in zip(sound2,sound2B,sound1C)]
right+=right30
left+=right30
right+=left30

55
56
57
58
59
60
61
62

left3=[(i+j+k).32 for i,j,k in zip(sound2,sound2B,sound2C)]


left+=left3
right3=[(i+j+k).32 for i,j,k in zip(sound2,sound2B,sound1C)]
right+=right3
left+=right3
right+=left3

63
64

###====

65
66
67
68
69
70

L=len(sound2)
left33= sound2[:L/3]+sound2B[L/3:2L/3]+sound2C[2L/3:] # Sobe
right33=sound2C[:L/3]+sound2[L/3:2L/3]+sound2B[2L/3:] # Desce
left+=left33+right33
right+=right33+left33

71
72
73
74
75

left4= sound1[:L/3]+sound1C[L/3:2L/3]+sound1B[2L/3:] # Sobe


right4=sound1B[:L/3]+sound1[L/3:2L/3]+sound1C[2L/3:] # Sobe
left+=(left4+right4)

2
right+=(right4+left4)

76
77
78
79
80

left5= sound1[:L/3]+sound1B[L/3:2L/3]+sound1C[2L/3:] # Desce


right5=sound1B[:L/3]+sound1C[L/3:2L/3]+sound1[2L/3:] # Desce
left+=(left5+right5)

2
right+=(right5+left5)

81
82
83
84
85

left6= sound2[:L/3]+sound2B[L/3:2L/3]+sound2C[2L/3:] # Desce


right6=sound2C[:L/3]+sound2B[L/3:2L/3]+sound2[2L/3:] # Sobe
left+=left6+right6
right+=right6+left6

86
87

###====

88
89
90
91
92
93

left+=left3
right+=right3
left+=right3
right+=left3

94
95
96

####

193

97
98
99

left=2
right=2

100
101
102
103
104

io=f.IOUtils()
#io.recordFile(left,[],"left.wav") #records a mono 16 bit
#io.recordFile(right,[],"right.wav") #records a mono 16 bit
io.recordFile(left,right,"both.wav") #records a mono 16 bit

194

C.2.4
1

Clorofrmio

import figgus as f

2
3
4
5

n=4
grains=[f.UnitGrain(),f.UnitGrain(),f.UnitGrain(),f.UnitGrain()]
s=f.Sequence(grains)

6
7

#########
#
#
#
#

Construction loop: in each compass,


I choose some parameters for our sequence,
More sppeciffically, i choose parameters for
each of the 4 units/grains and a permutation
The
and
1st
2nd
3rd
4th

23

#
#
#
#
#
#
#
#
#
#
#

24

25

sound=[]

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

permutation gives periodicity, inteligibility,


builds third order archs in the musical discourse
order: grain
order: sequence/compass
order: permutation cycle
order: permutation cycleS periods toguether and
other aesthetic resources
5th order: the piece as it is
6th order: sets of pieces
7th order: the whole social/human context of the piece,
life of the author, etc.

26
27
28
29
30

# COMPASS 14 . . . . . . . . . . . . 1
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.2 + 0.05i

31
32
33

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500

34
35
36
37

p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

38
39
40
41
42

# COMPASS 58 . . . . . . . . . . . . 2
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.2# + 0.05i

43
44
45

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500

46
47

#pp=PermutationPattern()

195

48
49
50

p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

51
52
53
54
55

# COMPASS 912 . . . . . . . . . . . . 3
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.05i#.2# + 0.05i

56
57
58

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500

59
60
61
62
63

#pp=PermutationPattern()
p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

64
65

#################

66
67
68
69
70

# COMPASS 1316 . . . . . . . . . . . . 4
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.1#.2# + 0.05i

71
72
73

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500

74
75
76
77
78

#pp=PermutationPattern()
p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

79
80
81
82
83
84

######## 4 compassos de 4 1
# COMPASS 14 . . . . . . . . . . . . 1
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.2 + 0.05i

85
86
87

s.ordered_units[1].freq=100
s.ordered_units[3].freq=5003./2

# Uma quinta a cima o pedal/bola

88
89
90
91
92

#pp=PermutationPattern()s
p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

93
94
95
96

# COMPASS 58 . . . . . . . . . . . . 2
for i in xrange(n):

196

97
98

s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.2# + 0.05i

99
100
101

s.ordered_units[1].freq=100
s.ordered_units[3].freq=5003./2

# Uma quinta a cima o pedal/bola

102
103
104
105

p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

106
107
108
109
110

# COMPASS 912 . . . . . . . . . . . . 3
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.01i 2#.2# + 0.05i

111
112
113

s.ordered_units[1].freq=100
s.ordered_units[3].freq=5003./2

# Uma quinta a cima o pedal/bola

114
115
116
117

p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

118
119
120
121
122
123

#################
# COMPASS 1316 . . . . . . . . . . . . 4
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.1#.2# + 0.05i

124
125
126

s.ordered_units[1].freq=100
s.ordered_units[3].freq=5003./2

# Uma quinta a cima o pedal/bola

127
128
129
130

p=f.Pattern(s,f.PermutationPattern(),4)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

131
132
133
134
135
136
137

####### 4 compass de 4 ::: 2


# COMPASS 14 . . . . . . . . . . . . 1
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.2 + 0.05i
#print 100(i+1)

138
139
140

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500/2

141
142
143
144
145

#pp=PermutationPattern()
p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

197

146
147
148
149
150
151
152

# COMPASS 58 . . . . . . . . . . . . 2
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.2# + 0.05i
#print 100(i+1)

153
154
155

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500/2

156
157
158
159

p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

160
161
162
163
164

# COMPASS 912 . . . . . . . . . . . . 3
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.2i#.2# + 0.05i

165
166
167

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500/2

168
169
170
171

p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

172
173
174
175
176
177

#################
# COMPASS 1316 . . . . . . . . . . . . 4
for i in xrange(n):
s.ordered_units[i].freq=10000 1000(i+1)
s.ordered_units[i].duration=.1i#.2# + 0.05i

178
179
180

s.ordered_units[1].freq=100
s.ordered_units[3].freq=500/2

181

185

#pp=PermutationPattern()
p=f.Pattern(s,f.PermutationPattern(),8)
p.synthesizeSonicVectors()
sound+=p.sonic_vector

186

###### Acabou 3 x 4 compass de 4 == tonica dominante tonica

182
183
184

187
188
189
190
191

io=f.IOUtils()
io.recordFile(sound)
print("== Ouca que o triangulo gira \
e existe uma bola do lado (nome da peca) ==")

198

199

APNDICE D -- Sntese FM e AM em escala


logartmica


1
! sen f 0 .2 f i1 

i
i
f +

0 1
{ti }0 = cos fi .2
=
cos
.2
f
=

fa 1 0
f
fa 1

0
#)1 ( " 
#)1
( "    0



i

0 .2 i
sen f .2 f 1
i
i
sin
f
a
fa 1
= cos f 2 12

.2
.2
= cos f 2 12
fa 1 0
fa 1 0

n
X
X

x
usando: 2 x = e x ln 2 , e x =
, sinn x = y1 (n)
y2 (n, k). sin[y3 (n, k, x)]
n!
0
k
+
1



X

0
=
J
(,
f
)
cos
y(
f.
f
,
f
)
{ti0 }1

a
k
0

"

#)1

k=

(D.1)
Por brevidade, as identidades teis para a obteno da equao final, que explicita o contedo
em frequncias puras. Portanto, se utilizada a progresso exponencial de frequncia, o espectro da FM perde a simplicidade. A funo de Bessel depender no somente da profundidade
de oscilao, mas tambm da frequncia original do som. Alm disso, as frequncias dependem do produto das frequncias da portadora e da moduladora ( f. f 0 ), o que tambm introduz
complexidade.
No caso da modulao de amplitude na escala logartmica:
{ti0 }1
0

ti0

= {(amx )

.ti }01

(
=



sin f 0 .2 fai1
amx
.P. sin

i
f.2
fa 1

!)1
(D.2)
0

200

atravs das mesmas trs identidades, observa-se um espectro com complexidade similar.

201

APNDICE E -- Anlise sonora e musical

Este captulo foi escrito para complementar a didtica da dissertao pois h forte interesse em
anlise musical assistida por computador, tanto para a indstria, como para pesquisas acadmicas e musicolgicas. Assim, o texto a seguir uma introduo rpida e deve ser apreciado
como um conjunto despretencioso de apontamentos informais a conceitos bsicos de anlise de
msica em evidncia com os recursos computacionais.

E.1

Espectro em frequncia

Muitas vezes, se est preocupado com as componentes em frequncia de um dado som ou estilo.
Para tal, a transformada de Fourier a soluo de uso mais comum. A localizao de energia no
tempo e em frequncia, por exemplo para observar as componentes do espectro no decorrer de
uma sonoridade ou uma msica, geralmente feita com a transformada de Fourier janelada ou
com a transformada wavelet (transformada de ondeleta). Uma figura bidimensional da evoluo
do espectro no decorrer do tempo o espectrograma (veja figura 2.19). A transformada wavelet
bastante simples e computacionalmente barata, consistindo em um banco de filtros FIR. Por
outro lado, o espectro apresentado no senoidal, to caro cognio e msica. Alm disso,
a transformada wavelet mais rgida com relao resoluo temporal e frequencial do que a
transformada de Fourier janelada.
Com a observao espectral, verifica-se a presena de formantes, detecta-se frequncias funda-

202

mentais, calcula-se centrides, observa-se decaimento e aparecimento de harmnicas e rudo,


para citar somente alguns exemplos. O vnculo direto do timbre com o espectro de um som,
mesmo no se sabendo os mecanismos cognitivos envolvidos, compreenso bsica.

E.2

Eventos no tempo

Com o quadrado das amostras temporais obtida uma medida da energia no trecho considerado. Variaes abruptas de energia indicam ataques, o que pode ser informativo do ponto de
vista rtmico e at como indicao de estilos ou tcnicas. Os decaimentos so importantes musicalmente, mas suas deteces so secundrias para a anlise. Dados os ataques ao longo da
durao, capital e capcioso (difcil) adequ-los a alguma mtrica. Para deteco de ataques de
instrumentos diferentes no mesmo udio, pode-se, por exemplo, realizar a separao do udio
por faixas do espectro ou procurar um espectro j conhecido.

E.3

Anlise de partituras

As partituras so registros musicais que usam smbolos consagrados. A extrao de caractersticas musicais a partir das partituras, de uso musicolgico e classificatrio. Esto em uso
diferentes formatos para a utilizao computacional destas informaes (como o Kern) e, como
exemplo de uso, pode-se obter a sequncia de intervalos de altura de linhas meldicas que percorrem toda a msica ou as duraes relativas de suas notas.

203

APNDICE F -- Msica digital em domnios no


digitais

As tecnologias expostas neste trabalho tiveram origem em usos reais, advindas de prticas culturais e voltadas para repercusses sociais. Este material humano e artstico o assunto deste
captulo. Pode-se dividir estes resultados em: experimentos abertos em udio, msica em tempo
real, msica em tempo diferido, msica na matria e repercusses no tecido social. Estes tpicos so tratados separadamente abaixo em termos do que mantido online. Estas atividades
extrapolam os usos musicais, especialmente devido s finalidades pedaggicas e sociais das
prticas audiovisuais. Assim, por completude, alguns materiais didticos e ferramentas web so
descritas. Todos os desenvolvimentos desta dissertao esto em repositrios abertos.(70)

F.1

Experimentos abertos em udio: LADSPAs, Wavelets e


Redes Complexas

O cdigo computacional feito para a arte sonora, incluindo a musical, manifesta-se como cultura
pois fruto de prticas espontneas, dirias e coletivas.

A seguir esto alguns exemplos de

resultados destas incidncias culturais, especificamente em udio e msica.

As chamadas culturas biopunk, ciberpunk, cipherpunk, hacker, digital e outras mais, possibilitadas pelos desenvolvimentos em telecomunicao, dizem respeito em menor ou maior grau produo de cdigo computacional
como uma manifestao cultural. As elaboraes de conceitos e ferramentas voltados para o compartilhamento
nestas culturas esto na gnese do que se entende como Cultura Livre.

204

Plugins LADSPA e lv2


LADSPA (Linux Audio Developers Simple Plugin API) a API livre de plugins de udio at
a presente data. A ltima verso a 1.1, em uso corrente at hoje e de 2002 segundo os
arquivos de cabealho dos cdigos relacionados. O LADSPA version 2, abreviado lv2, uma
segunda verso do protocolo tambm estabelecida e estvel, mas extensvel, motivo pelo qual
est sempre em desenvolvimento.
Na sntese, para maior qualidade, pode-se fazer a recomposio a partir do espectro desejado,
como na seo 2.2.4. Menos purista porm mais eficiente usar uma amostra curta do rudo e
reproduzi-la indefinidamente atravs de cross-fades. Esta eficincia desejada em um plugin,
pois seus usos comuns incluem aplicaes em tempo real.
Atravs deste trabalho, foi disponibilizado um pacote de plugins lv2 que sintetizam os rudos
branco, azul, violeta, rosa e marrom. Os cdigos em C e a implementao como plugin lv2
esto no repositrio git como pode ser visto em online2 .
J na remoo de rudos as abordagens so as mais variadas e extremamente dependentes da
aplicao. A complexidade dos algoritmos atinge nveis de especialidade em processamento
de sinais que j mereceram trabalhos dedicados. Adiante est a implementao de um removedor de rudo Hum. Este rudo geralmente causado pela corrente alternada que alimenta os
equipamentos utilizados.
A remoo de rudo Hum baseada em uma sequncia de filtros n rejeita banda (veja subseo 2.2.3) idealmente dispostos nos harmnicos da frequncia de oscilao da corrente eltrica.
Cada um destes filtros deve permitir ajustes finos no fator de qualidade e tambm na frequncia central pois trata-se de um sistema real passvel dos mais diversos efeitos de distoro do
modelo ideal. O cdigo C/C++ e a implementao como plugin est no mesmo repositrio
2

Este link o README do repositrio git com os cdigos dos plugins: http://labmacambira.git.
sourceforge.net/git/gitweb.cgi?p=labmacambira/LV2;a=summary.

205

disponibilizado para a sntese de rudos.

Wavelets

Alguns dos experimentos em wavelets praticados esto em Audioexperiments.(71) Uma destas


investidas superou em muito um experimento e constitui um protocolo de compactao de udio
desenvolvido com o Prof. Rafael Santos Mendes na FEEC/UNICAMP como consequncia do
mestrado realizado por Andr Luvizzoto sob orientao do mesmo professor. O mtodo est
bem descrito no artigo desenvolvido. Em resumo, o mtodo consiste em particionar o udio com
sobreposies para contemplar aplicaes reais sem as distores de borda da decomposio e
recomposio. Em seguida, o udio decomposto em rvore Wavelet Packet. Cada folha
ento ordenada, os coeficientes com baixa energia eliminados e um polinmio encontrado pelo
mtodo dos mnimos quadrados usado para representar os coeficientes restantes. Detalhes de
escrita e leitura dos polinmios e das permutaes completam o protocolo. Aplicaes para
stream de voz em tempo real foram vislumbradas e testes adicionais propostos.(72)

Redes Complexas

Com o fim de detectar nuanas emocionais no uso da linguagem natural, foram feitos alguns
trabalhos em anlise de fala e de texto, ambos focados no uso de redes complexas. O primeiro
trabalho de processamento de texto foi apresentado na ACL de 2010, em Upsala, na Sucia,
pelo Prof. Thiago Pardo, atual presidente da ACL.(6769)
Os trabalhos focaram em distinguir polaridade em excertos de textos e de fala. Nos textos, a
rede formada a partir da sequncia de palavras, em que cada palavra um vrtice e a sucesso
imediata cria uma aresta. O pr-processamento dos textos consiste na lematizao e na retiradas
das stop-words e da pontuao. Nas falas, as bandas de frequncia utilizadas so vrtices e a
transio entre uma banda e outra uma aresta. Ambas as redes possuem arestas com peso e

206

podem ser utilizadas como direcionais ou no. Os trabalhos consistiam em formar estas redes
com os bancos de dados correlatos, extrair medidas e aplicar reconhecimento de padro. Ambos
os estudos no fazem uso do contedo semntico, mas sim topolgico dos sinais recebidos, e
chegam a mais 80% de cobertura ou preciso em alguns casos, podendo contribuir com mtodos
tradicionais que fazem uso de redes semnticas, por exemplo.

F.2

udio e msica

Este captulo est dividido em 4 partes: msica em tempo diferido (ou seja, que no realizada
em tempo real), msica em tempo real, msica na matria (suporte fsico em hardware) e msica no tecido social (mobilizaes humanas). O texto se baseia em exemplos reais da prtica
musical atravs do cdigo, com aplicaes e em utilizao pelo autor, membros do LabMacambira.sf.net, parceiros, colaboradores e por usurios eventuais das naturezas mais diversas.

F.2.1

Msica em tempo diferido: minimum-fi e FIGGUS


I also find that intelligent people always respect the intelligence needed to construct a
simple structure in a clear way that really works.
Tom Johnson

A realizao musical em tempo diferido o paradigma inicial da msica computacional, iniciada com o Music V, depois com o CSound. Pode-se dizer que at hoje a forma como
compositores usualmente pensam a msica: concebendo e escrevendo as estruturas que depois
so executadas por instrumentistas ou aparelhos eletrnicos. Assim como a composio instrumental permite alguns refinamentos estruturais no presentes na improvisao instrumental, a
realizao musical em tempo diferido permite um detalhamento maior dos procedimentos do
que a realizao em tempo real.

207

O som musical pode ser caracterizado fisicamente, tornando possvel a sua sntese digital. Estes
sons e a organizao deles so objeto do Captulo 2 da presente dissertao. A utilizao destes
sons de forma direta, utilizando somente os recursos bsicos de justaposio e sobreposio,
est na pequena pea minimum-fi. J o figgus (FInite Groups in Granular and Unit Synthesis),
utiliza os princpios do minimum-fi e utiliza simetrias atravs de permutaes e de Teoria de
Grupos, para a composio de msicas. O figgus gera um EP3 com um nico comando. Este
o PPEPPS4 , como veremos a seguir.
Desta forma, esta seo exemplifica e explicita - atravs de dois exemplos reais - o uso de cdigo
para a sntese musical, desde as amostras relativas a uma nota com dada frequncia, amplitude
e timbre, at a confeco de uma ferramenta derivada, que j incorpora propostas musicais e
estruturas mais elaboradas.
Minimum-fi
Existe uma perene matiz esttica e tambm tecnolgica dedicada a realizar uma dada tarefa com
o mnimo necessrio. Na msica, esta matiz igualmente presente e decorre em grande parte do
princpio de unidade e coerncia5 . Em cdigo computacional, a empreitada para manifestar este
princpio ele prprio de forma mnima resultou no minimum-fi.py, cdigo Python em um nico
arquivo curto que sintetiza a msica segundo as estruturas especificadas em linha. Na verso
atual, de 2012 mas adiantada em 2011, os algoritmos em Python propriamente ditos somam 53
linhas e incluem apenas 5 funes. Com estas funes, estruturas musicais so criadas padro
a padro, nota a nota, amostra por amostra. Na prtica, e em linguagem cotidiana, as notas
formam blocos e estruturas hierarquicamente superiores.

3
4
5

Extended Play, um lbum musical maior que um single mas menor que um LP (Long Play) inteiro.
Pure Python EP: Projeto Solvente.
Este princpio tanto fundamental que as escolas musicais possuem tcnicas especficas, msicas possuem suas
prprias convenes mantidas por toda a sua durao, os arcos mantm caractersticas, enfim, podemos at
mesmo concluir que as simetrias definem o escopo musical.

208

Os princpios, bastante simples, so6 :

Deve-se ter um mecanismo de sntese sonora que possibilite a gerao de unidades sonoras com diferentes timbres, controle sobre a frequncia fundamental, durao e volume,
como especificado na seo 2.1.
Deve-se ser capaz de construir sries de unidades, sejam sobrepostas (e.g. acordes) ou
justapostas (e.g. melodias).

Para o primeiro item, presta-se o procedimento de busca em tabelas/vetores com formas de ondas em alta resoluo, chamado lookup table. O procedimento barato computacionalmente,
com resultados diversificados e tidos como de alta qualidade pois no acrescenta rudos relevantes ao sinal. Uma descrio do procedimento est na subseo 2.2.1.
Atravs da utilizao do lookup sucessivo (procura-se um valor na primeira tabela e este valor
indica o valor na segunda tabela a ser utilizado), executa-se um waveshaping. Este procedimento bastante apreciado pela simplicidade e eficcia na sntese de timbres diversos e ricos
em harmnicos e evoluo temporal. Embora uma explicao exaustiva do waveshaping fuja
ao escopo deste trabalho, este mtodo se caracteriza pela aplicao de uma funo no linear
ao sinal de entrada. Neste caso o sinal de entrada gerado pela primeira busca, a funo no
linear aplicada a segunda busca, na outra tabela. Existem muitas formas de se executar um
waveshaping, a seguir segue o que usamos no minimum-fi, que se sustenta principalmente por
ser leve e simples:
Waveshaping com consultas sucessivas a tabelas
1
2
3
4

# T, incremento, n_amostras e dur definidos como no script anterior


ap=0.0
amostras=[0] n_amostras
for i in xrange(n_amostras): # n_de_amostras = dur 44100
6

Osvaldo Lacerda, em seu livro Compndio de Teoria Elementar da Msica fala das propriedades do som musical
e sua organizao de forma condizente.

209
foo=func[int(ap)] # foo entre [1,1]
bar=( bar + (T/2) )(T/2) # centrando no meio da tabela e ampliando o mbito
amostras[i] = func2[int(bar)]
ap = (SI + ap)%T

5
6
7
8

O segundo item - dos dois princpios expostos sobre o minimum-fi - presta-se discretizao
do espao musical. Unidades como batidas e notas tornam mais eficiente a comunicao pois
a quantidade de estruturas sugeridas maior e as estruturas so mais explcitas no discreto do
que no contnuo. Roederer aponta que as prprias notas dos instrumentos musicais so um
reflexo de que mais eficiente o uso do discreto do que do contnuo para a gerao de estruturas
musicais.(3)
De fato, unidades bem definidas se mostram teis na prtica musical para fazer sequncias de
unidades. Quando as unidades so notas com frequncia definida, as sequncias de unidades
justapostas no tempo tendem a ser compreendidas como melodias ou linhas meldicas. As
sequncias sobrepostas no tempo so comumente compreendidas como acordes, mas podem ser
tidas simplesmente como sobreposies circunstanciais de duas ou mais linhas meldicas7 .(11)
As duas construes bsicas explicitadas - baseadas na dicotomia melodia/harmonia, horizontalidade/verticalidade, justaposio/sobreposio - so realizadas atravs das funes fazSequencia e fazAcorde no minimum-fi. Vale notar elas so absolutamente equivalentes em uma anlise
puramente conceitual, i.e. uma delas pode ser omitida sem perda das possibilidades musicais.
Isso fica particularmente bvio quando se nota que os procedimentos de mixagem e concatenao so plenamente capazes de realizar o que estas funes realizam. Alis, as funes nada
mais so do que usos tpicos e quase caricatos destes procedimentos: no fazAcorde a mixagem
sobrepe no tempo todas as unidades, no fazSequencia as unidades so todas justapostas no
tempo.
Como pode-se notar a seguir, as sequncias de notas e os acordes, em ltima instncia, so usos
7

A msica do sculo XX apresentou diversos modelos tericos que quebram com este entendimento simplificado
sobre a msica, suas unidades bsicas e estruturas relacionadas

210

especficos das 2 funes de sntese sonora implementadas: lookup e lookupcruz.


Realizao de Sequncias de Notas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# Note as variveis que so fixadas de antemo


def fazSequencia(notas, f0, fator, dur_nota, dur_silencio,\
funcao1, funcao2=0):
seq=[] # a sequncia iniciada vazia
for nota in notas: # para cada nota
# a frequncia a fundamental vezes 2
# elevado ao nmero de semitons:
freq=f0 fator nota
if funcao2: # caso a funcao2 seja especificada
# fazer o waveshaping:
amostras=lookupcruz(funcao1,funcao2,dur_nota,freq)
else:
# ou faz com a forma de onda simples:
amostras=lookup(funcao1,dur_nota,freq)
# soma o silncio
amostras += [0]int(taxa_amostragem dur_silencio)
seq += amostras # concatena na sequncia principal
# normalizao em 2 passos:
smin=min(seq); smax=max(seq)
seq= [(.5+(ismin)/(smaxsmin)) for i in seq]
return seq # retorna a sequncia pronta

Realizao de Acordes de Notas


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

def fazAcorde(notas, f0, fator, dur_nota, dur_silencio,\


funcao1, funcao2=0):
seq=[]
for nota in notas:
freq=f0 fator nota
if funcao2:
amostras=lookupcruz(funcao1,funcao2,dur_nota,freq)
else:
amostras=lookup(funcao1,dur_nota,freq)
amostras=amostras+[0]int(dur_silencio taxa_amostragem)
# para sobrepor unidades de tamanhos diferentes
# conveniente uma funo auxiliar
seq=somador(seq,amostras)
# normalizao em duas linhas:
smin=min(seq); smax=max(seq)
seq=[(.5+(ismin)/(smaxsmin)) for i in seq]
return seq

A ltima das cinco funes utilizadas uma soma amostra a amostra de dois sons. Para isso,
necessrio completar com zeros a sequncia com o menor nmero de amostras para somar
rapidamente:

211

Somador (funo auxiliar)


1
2
3
4
5
6
7

def somador(seq1,seq2):
# Basicamente adiciona zeros na sequencia menor para somar rapidamente
diff=len(seq1)len(seq2)
if diff > 0:
seq2+=[0]diff
elif diff<0:
seq1+=[0]diff

8
9
10

seq=[(i+j) for i,j in zip(seq1,seq2)]


return seq

Com isso o bsico est coberto e o foco vai para a criao de estruturas. Por exemplo: pode-se
criar as escalas completamente simtricas na oitava cromtica, escalas diatnicas ou at microtonais, como as descritas na subseo 2.3.1.
O estabelecimento de pequenas sequncias bastante til para reutilizaes, variaes e gerao
de materiais derivados, por exemplo:
Sequncias diversas
1
2
3
4
5
6
7
8
9
10
11
12

# padro rtmico e variaes


b1=[0]4
b2=[0]7+[7]
b3=[0,7,0,1]
b3_2=[0,7,8,7]
b4=[0,7,7,7]
b5=[0,7]
b6=[0,19,7,12]
b7=[0,1,0,1]
b8=[0,1,7,1]
b9=[0,1,0,1]
b10=[0,7,6,7]

13
14
15
16

# Srie utilizada por Anton Webern


# em suas Variaes Op.30
c=[0,1,4,3,2,5,6,9,8,7,10,11]

17
18
19
20

# Sequncia em mixoldio comum, por exemplo,


# Em algumas manifestaes do folclore nordestino:
d=[0,4,7,10,9,7,10]

O passo seguinte sintetizar, mixar e concatenar para a obteno de sequncias musicais. A


sntese de sequncias e acordes pode ser feita desta forma:

212

Sintetizando sequncias e acordes


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# inicializamos as variveis:
notas=[1,4,5,6,7]
fundamental=200
fator=2(1/12.)
dur_nota=0.5
dur_silencio=0.1
onda1=senoide
onda2=dente_de_serra
# realizao da sequncia com senides:
sequencia = fazSequencia( notas,
fundamental,
fator,
dur_nota,
dur_silencio,
onda1 )
# realizao do acorde com waveshaping
acorde = fazAcorde( notas
fundamental,
fator,
dur_nota,
dur_silencio,
onda1,
onda2 )

J a sntese de estruturas compostas (e.g. sequncias de acordes e sobreposio de linhas meldicas), feita com os recursos usuais da linguagem: listas em Python e vetores Numpy (mais
eficientes em tempo de execuo e tambm na simplicidade do cdigo). Estes procedimentos
so praticamente os mesmos se implementados em Scilab, C/C++, Javascript, PHP, etc.
A seguir, para fins didticos, est a construo de acordes peridicos em python puro8 :
Acordes peridicos
1
2
3
4

# aproveitando a variavel
# acorde do script anterior
dur = dur_nota + dur_silencio
silencio_1_tempo = [0]int((dur)taxa_amostragem)

5
6
7
8
9

# adicionando o acorde a cada 2 tempos 8 vezes


# ou seja, por 16 tempos, durante 4 compassos de 4
# a msica ter o acorde sedo tocado a cada 2 tempos:
ac += (acorde+silencio_1_tempo)8

Uma implementao no didtica destas trs linhas de cdigo pode ser feita em uma s linha.

213

Em posse destas sequncias, acordes e recursos da linguagem, so formadas estruturas hierarquicamente superiores atravs da concatenao de estruturas, da mixagem de estruturas, e da
amplificao (ou atenuao) seletiva das mesmas:
Amplificao e mixagem
1
2
3
4
5
6

## De posse das notas, fundamental, fator, duraes e ondas ##


# sequncia do restrogrado das notas com waveshapping:
sequencia1 = fazSequencia(nt[::1], f, fator, d, s, senoide, dente)
# sequncia original das notas uma quinta justa acima,
# com dente de serra:
sequencia2 = fazSequencia(nt, f(3/2.), fator, d, s, dente)

7
8
9
10
11
12
13
14
15
16
17

## Procedimentos bsicos ##
# concatenao
seq = sequencia1+sequencia2
# amplificao e concatenao
seq += [1.5i for i in sequencia1]
# mixagem e concatenao
seq += [(i+j) for i,j in zip(sequencia1,sequencia2)]
# mixando igual acima, mas quando os comprimentos
# dos vetores no so os mesmos
seq += somador(seq,sequencia2)

Neste ponto, basta criar msicas e sequncias de interesse esttico ou para pesquisa. Os encadeamentos dependem de intenses estticas, entendimentos musicais e estruturas abstratas que
mantm a coerncia e o interesse em uma pea musical. Para o leitor mais interessado, recomendamos uma visita ao captulo 2 e toolbox massa, onde pode-se encontrar o prprio script
minimum-fi.py e outros experimentos. A seguir utilizamos esta base apresentada para sintetizar
estruturas musicais e ento um EP.

FIGGUS: FInite Groups in Granular and Unit Synthesis

Nesta subseo h um foco nas estruturas musicais. So elas, inseridas em um momento histrico e executadas por instrumentos especficos com as tcnicas de poca, que constituem em
grande parte uma linguagem musical e msicas propriamente ditas. O figgus constitui uma
tcnica composicional manifesta em software como ferramenta de sntese de estruturas musi-

214

cais. Esta tcnica consiste na utilizao de estruturas matemticas que representam simetrias
para a organizao de materiais musicais.
O figgus foi iniciado em 2006 com o fsico-matemtico Prof. Adolfo Maia Junior (do IMECC
e NICS, ambos da UNICAMP) - bem anterior ao nascimento do minimum-fi - para tratar de
simetrias na msica com vistas composio musical atravs de mtodos matemticos9 . Mais
especificamente, a proposta gerou um programa de sntese granular e de estruturas musicais
atravs de Grupos Algbricos. O nome dado foi figgus, sigla de FInite Groups in Granular and
Unit Synthesis10 .
Na atual reescrita, embora ainda bastante atrs do figgus original quanto interface grfica,
a ferramenta opera diretamente em Python puro, com as biblitecas imbutidas por padro. Isso
permite com que o FIGGUS sintetize todo um EP usando somente os comandos:
Utilizando o FIGGUS para Sintetizar um EP
1
2
3
4

$ git clone git://labmacambira.git.sourceforge.net/gitroot\


/labmacambira/FIGGUS
$ cd FIGGUS
$ python RUNME_make_now_an_EP_MUSIC.py

Desta forma, a ferramenta simples de ser usada para experimentaes e implementaes adicionais. Outro uso planejado para o figgus a sntese de timbres e amlgamas sonoros atravs
da Sntese Granular. Embora o foco atual seja outro, cabe algumas breves palavras sobre o
assunto.
A Sntese Granular uma rea bem estabelecida tanto na acstica quanto na Computao Musical e se caracteriza pela gerao de sons bastante curtos e em quantidade massiva. Tipicamente,

9
10

Duas iniciaes cientficas trataram do assunto.


Tambm foi usado o nome FIGGS (FInite Group in Granular Synthesis) dado que o termo unit synthesis no
usual na literatura. Posteriormente o primeiro autor deste trabalho recorreu novamente ao uso do nome figgus.
Isso foi motivado pela utilidade da tcnica para sntese de estruturas musicais, que, nos usos que o figgus teve,
foi maior do que a utilidade para sntese de amlgamas sonoros tipicamente resultantes da sntese granular

215

os sons possuem entre 5 e 40 milissegundos e a quantidade destes microsons11 pode chegar a


milhares por segundo. O tratamento especfico da sntese granular foge ao escopo deste trabalho. O leitor interessado pode consultar os artigos produzidos sobre Sntese Granular e Teoria
de Grupos.(60, 61) Desta forma, o texto a seguir concentra-se em Grupos Finitos para a sntese
de estruturas musicais.
Nas artes de comum conhecimento o papel absolutamente central que as simetrias possuem.
Na msica, para citar somente alguns exemplos simples, h os numerosos estudos de simetrias
na msica de J. S. Bach, os jogos de dados de Mozart e os usos recorrentes da proporo urea
na msica de Bla Brtok. Matematicamente, as simetrias so descritas por Grupos, e estes so
definidos como um conjunto (seja G) munido de uma operao (seja ), formando um grupo
(G, ) satisfazendo as propriedades descritas na subseo 2.3.7. No figgus, o gro ou unidade
sonora uma classe que possui apenas os seguintes atributos: durao (segundos), frequncia
(Hz), timbre (identificador para usar mediante implementaes convenientes), intensidade (pico
[0, 1]), e durao dos fades (in e out em segundos). O figgus funciona com base em uma
sequncia de gros especificada inicialmente e na qual operam as permutaes. Aos gros em
sequncia so aplicadas permutaes. Para isso bastante conveniente representar as permutaes em classes prprias. A classe do padro de permutao possui tambm um perodo de
aplicao da permutao, ou seja, de quantas em quantas leituras da sequncia a permutao
aplicada.
Em posse dos gros, da sequncia, das permutaes e do padro de permutaes, pode-se realizar a estrutura musical em si. Basta adicionalmente especificar o nmero desejado de iteraes
da sequncia. Com isso, a sequncia de gros lida um nmero de vezes, aplicando as permutaes na sequncia de gros segundo o padro especificado, de forma a resultar em uma
sequncia musical. Note que se a permutao usar menos elementos que a sequncia possui,
11

Gros sonoros e microsons so jarges equivalentes tpicos da sntese granular. So usados para indicar sons com
duraes bastante curtas, como assinalado no texto.

216

alguns destes elementos ficaro estticos nas iteraes da sequncia no padro sonoro.
A partir das representaes abstratas do padro musical, so feitos os vetores sonoros da representao digital da msica a ser realizada e pode-se escrever um arquivo de udio propriamente
dito. O mais conveniente, neste caso, escrever um arquivo PCM (Pulse Code Modulation)
em algum padro amplamente utilizado e reconhecido. Ambos WAV e AIFF satisfazem estes
requisitos. Mais especificamente, o padro de CDs WAV com 44100 amostras por segundo
e 16 bits por amostra. As amostras dos vetores sonoros so calculados, por convenincia e
conveno, no mbito [1, 1] e precisam ser normalizados para o mbito [32767, 32768] e
truncados em nmeros inteiros. Depois disso devem ser escritos em um arquivo com os bits
como na conveno da linguagem C/C++. A biblioteca struct cuida dessa escrita do inteiro no
formato correto, e a biblioteca wave escreve o cabealho no formato WAV adequado. Assim, a
clase de escrita do vetor sonoro em arquivo comum fica assim:
Escrita do Vetor Sonoro em Arquivo WAV
1
2
3
4

import wave, struct


class IOUtils:
def recordPattern(self,filename,pattern):
self.recordFile(pattern.sonic_vector,[],"sound.wav",pattern.SR)

5
6
7
8
9

def recordFile(self, sonic_vector=[], sonic_vector2=[],


filename="sound.wav", samplerate=44100):
sound = wave.open(filename,w)
sound.setframerate(samplerate)

10
11
12
13
14

sound.setsampwidth(2) # Always 16bit/sample (2 bytes)


if not sonic_vector2:
sound.setnchannels(1) # Mono
sonic_vector=self.boundVector(sonic_vector)

15
16
17
18
19
20
21
22

sonic_vector=[i(2151) for i in sonic_vector]


sound.writeframes(struct.pack(h len(sonic_vector),
[int(i) for i in sonic_vector]))
else:
sound.setnchannels(2) # stereo
sonic_vector=self.boundVector(sonic_vector)
sonic_vector2=self.boundVector(sonic_vector2)

23
24
25

sonic_vector=[i(2151) for i in sonic_vector]


sonic_vector2=[i(2151) for i in sonic_vector2]

217
SV=[]
for i,j in zip(sonic_vector,sonic_vector2):
SV.extend((i,j))
sound.writeframes(struct.pack(h len(SV),SV))
sound.close()

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

def boundVector(self,vector):
"""Bound vector in the [1,1] interval"""
svmin=min(vector)
svmax=max(vector)
ambit=svmaxsvmin
if svmax>1 or svmin<1:
if svmaxsvmin > 2:
i=0
for sample in vector:
new_sample=(samplesvmin)/ambit # results in [0,1]
new_sample=new_sample21 # results in [1,1]
vector[i]=new_sample
i+=1
elif svmax > 1:
offset=svmaxambit/2
i=0
for sample in vector:
new_sample=sample offset
vector[i]=new_sample
i+=1
elif svmin < 1:
offset=svmin ambit/2
i=0
for sample in vector:
new_sample=sample + offset
vector[i] = new_sample
i+=1
return vector

F.2.2

Msica em tempo real: Livecoding e ABeatTracker (ABT)

Tornou-se usual a sntese sonora em tempo real mesmo em laptops populares. Assim, surgiram linguagens de domnio especfico, para o udio e a msica, em sua maioria dedicadas - ou
ao menos capacitadas - para interao em tempo de execuo como Puredata, SuperCollider,
ChucK e ixilang. Todos estes so exemplos de linguagens largamente utilizadas para a composio musical e sntese sonora em tempo real. Em outras palavras, estas linguagens possibilitam

218

que o usurio oua o resultante sonoro do cdigo utilizado e altere o cdigo com resultados
imediatos no processamento e sonoridades produzidas.
A explorao esttica destas ferramentas em performances musicais a proposta do Livecoding. Esta prtica de performance se dedica especialmente escrita de cdigo em tempo real
com vistas projeo visual dos cdigos enquanto so escritos, junto projeo sonora que
produzem. O ABeatTracker ainda pode ser considerado livecoding, mas j um intermedirio,
com traos de um aplicativo ou ferramenta, embora os comandos sejam acessados pela escrita.
uma linguagem com macros para execuo de ritmos atravs de samples em conjunto com
instrumentos tradicionais e outras fontes sonoras/musicais externas.
Livecoding
Recentemente, grupos de ponta em msica experimental esto desenvolvendo apresentaes
musicais pblicas baseadas na escrita de cdigo ao vivo. Este um fenmeno cultural e esttico,
do qual vale ressaltar os grupos pioneiros Slub e Benot and the Mandelbrots assim como as
orquestras de laptops PLOrk, SLOrk e DubLOrk12 . Usualmente, o cdigo projetado para
que a audincia possa ver o que est sendo escrito, no ritmo em que se escreve, e se projeta
tambm o resultante sonoro por autofalantes.
Estas so motivaes presentes em diferentes grupos13 , embora no necessariamente ou da
mesmcima forma:

A apresentao musical, com o uso do computador como instrumento, carece de recursos


performticos visuais dos instrumentos tradicionais. Os gestos so por demais discretos
e a concentrao do performer/instrumentista bastante focada na tela do computador.
Recursos performticos so, portanto, preciosssimos.
12
13

Para maiores detalhes, veja: http://toplap.org.


Vide Manifesto Live coding em http://toplap.org/wiki/ManifestoDraft.

219

O feedback auditivo do cdigo projetado permite que o espectador infira significados dos
cdigos. Este recurso do livecoding usado para desmistificar a programao de computadores e sua aplicao em computao musical, comumente considerada intangvel.
O cdigo em si um recurso poderosssimo que permite ao usurio controlar os sons produzidos amostra por amostra ou em escalas maiores de tempo, como notas, compassos,
fraseados inteiros ou mesmo em escalas maiores de tempo, como minutos, horas, dias e
semanas.
O compartilhamento do cdigo usual, leve e eficiente como entrega de tecnologia valiosa para a proposta esttica. Isso motiva no s o programador a aplicar seus conhecimentos na msica, mas tambm o msico a adentrar o uso de linguagens de programao
para expresso de suas ideias musicais.

Desta forma, foi iniciada em 2011 uma linha de atuao em livecoding com a criao do duo
FooBar composto por Vilson Vieira e o autor deste escrito. Este duo se desenvolveu no trio
FooBarBaz/Variveis Metasintticas composto pelo duo e por Gilson Beck, este atuante na
mesa de som e usando deteco de cor no laptop para incrementar a apresentao. Este trio
realizou uma performance no V Festival Contato. interessante ressaltar que, at onde se sabe,
essa foi a primeira apresentao de livecoding no Brasil, e a maior apresentao internacional
em tamanho de platia, estima-se que entre 3 e 5 mil pessoas estavam presentes.
Foi usada a linguagem ChucK por apresentar os recursos que o duo inicial considerou mais
apropriados, embora de forma alguma isso seja consensual na prtica atual de livecoding. Alm
disso, a apresentao contou com recursos adicionais para agregar interesse, como a utilizao
do cowsay para enviar mensagens enquanto se desenrolava a msica. Em especial, as trajetrias
de um ponto branco no fundo do cdigo sugeria o sono REM como uma experincia coletiva
de alterao do estado de conscincia. Estes recursos podem ser vistos em uso nos videos

220

demonstrativos14 As linhas do cowsay e o script em linguagem Processing relacionados, assim


como maiores detalhes sobre o duo e fotos da apresentao podem ser vistos em http://
wiki.nosdigitais.teia.org.br/FooBarBaz. Estavam presentes no palco tambm outros
membros do labMacambira.sourceforge.net, davam suporte em gravaes e outros auxlios:
Ricardo Fabbri, Alexandre Bzum, Daniel Penalva e Ivan Marin.
Especificamente sobre a prtica do livecoding, duas pessoas executaram scripts em Chuck simultaneamente. A saber, Vilson Vieira executou ritmos, batidas bastante marcadas que serviam
como base. Renato Fabbri, autor deste texto, executava linhas fludas quasi-meldicas que formavam arcos maiores. Havia tambm interldios em que ambos se revesavam com msicas
curtas e inusitadas, como em um duelo. A mixagem e espacializao dos dois canais de udio
foram controladas por um patch em Puredata que permitia o cross-fading entre os canais atravs da deteco do movimento das mos. Isso foi possvel atravs do objeto em Puredata/GEM
chamado color classify, criado por Ricardo Fabbri e posto em uso por Gilson Beck durante
a apresentao. Esse mesmo objeto foi utilizado no instrumento AirHackTable, discutido na
seo F.2.3.
A prtica de livecoding requer o uso de instrues curtas, que incentivem o improviso musical
atravs do cdigo. Ambos os livecoders usaram bons editores de texto para a escrita dos scripts
em ChucK: Vim e Emacs. Renato utilizou aspectos estruturais de alto nivel, arcos longos e
estruturas meldicas e minimalistas, como os que seguem:
Interface para controle de parmetros em tempo real
1
2
3

// Em ChucK, soltar estas duas linhas em alguma musica


// bem ritmada e deixar os padroes aa vontade com este
// arco maior:

4
5
6
7

// crescimento continuo
SinOsc s1 => Gain g => g => s1 => dac;
2 => s1.sync;
14

Disponveis em http://vimeo.com/33012735, http://vimeo.com/33018740, http://vimeo.com/


33019291, http://vimeo.com/33025717 e http://vimeo.com/33025913.

221

while(second => now);

9
10
11
12
13

// vento
Noise s1 => Gain g1 => g1 => SinOsc s2 => dac;
2 => s2.sync;
while(second => now);

Ao mesmo tempo, Vilson fez uso de scripts para facilmente especificar a posio do arquivo de
udio em que deve ser iniciada a execuo, assim como a velocidade de reproduo do udio,
durao e amplitude. Uma interface simples permitiu a alterao rpida desses parmetros em
tempo de execuo.
Interface para controle de parmetros em tempo real
1
2
3
4
5

["samples/fx/s20.wav"] @=> Foo.name;


[0.] @=> Foo.prop;
[.25, .15] @=> Foo.rate;
[2., 1., 1., 4.] @=> Foo.du;
[.8] @=> Foo.gain;

Classe para sampling de arquivos de udio


1
2
3
4
5
6
7

public class Foo {


static string name[];
static float prop[];
static float rate[];
static float du[];
static float gain[];
}

8
9
10
11
12
13

["samples/fx/s22.wav"] @=> Foo.name;


[.0] @=> Foo.prop;
[1.] @=> Foo.rate;
[4.] @=> Foo.du;
[0.] @=> Foo.gain;

14
15
16
17

TimeGrid tg;
tg.set(1::minute/60/2, 8, 10);
tg.sync();

18
19
20
21

SndBuf buf => JCRev j => dac;


.5 => j.gain;
.2 => j.mix;

22
23

0 => int i;

24
25
26

while (true) {
Foo.name[0] => buf.read;

222
Math.trunc(buf.samples()Foo.prop[i%Foo.prop.size()]) $ int => buf.pos;
Foo.gain[i%Foo.gain.size()] => j.gain;
Foo.rate[i%Foo.rate.size()] => buf.rate;
tg.beat Foo.du[i%Foo.du.size()] => now;
i++;

27
28
29
30
31
32

Estes desenvolvimentos inspiraram a criao de uma linguagem especfica para livecoding, chamada Vivace, que est em constante desenvolvimento e tem seu cdigo e maiores detalhes
disponveis online de forma livre15 . J foram realizadas novas apresentaes utilizando essa
linguagem, a notar: Hacklab do Velho, em So Carlos (SP), Semana da Comunicao FAAP
(SP), Palco UFSCar (SP) e Semana Nacional da Cincia e Tecnologia (SP). Nelas houve a
predominncia do apelo s mdias populares, em uma reinaugurao do gnero da pop art: trechos de vdeos de uma novela brasileira: Avenida Brasil eram rearranjados em tempo real em
sincronia com linhas rtmicas e meldicas16 .
Catalizadas pela aproximao de "Gera" Magela, Caleb Mascarenhas Luporini e Guilherme
Lunhani as apresentaes e amadurecimeentos de 2012 desembocaram na escrita coletiva de
cdigos (acesso e controle da platia no cdigo que est sendo escrito), utilizao de monstros
e ascii art e e sonoridades bizarras. Com isso, est sendo observado e proposto um gnero
de livecoding batizado de Freakcoding, possivelmente o primeiro subgnero de livecoding.
Foi escrito um manifesto sobre o freakcoding e um artigo acadmico. Esto sendo planejados
mais apresentaes e desenvolvimentos tecnolgicos, todos motivados pelo livecoding e este
subgnero brasileiro que est despontando.

15
16

Veja: http://automata.github.com/vivace.
Uma amostra est disponvel online para ser utilizada por qualquer em qualquer computador com o navegador
Google-Chrome: http://pulapirata.com/skills/vivace.

223

ABeatTracker (ABT)
O ABT uma linguagem que dispara linhas rtmicas atravs de macros. Nestas, especifica-se as
clulas rtmicas, amostras sonoras que so utilizadas como contedo sonoro destas linhas, modos de leitura destas amostras sonoras e variveis randmicas utilizadas para execuo da linha.
Alm disso, o ABT dispe de variveis globais que podem ser alteradas a qualquer momento
pelo usurio tambm com macros, como BPM, volume, velocidade de leitura das amostras e
variveis randmicas globais (que se somam s individuais). As macros pr-estabelecidas constituem um conjunto de recursos pr-estabelecidos bem definido, o que contrasta com a ideia de
uma linguagem de programao que tenha capacidades mais amplas. De qualquer forma,
linguagens com domnios especficos no so raras e por vezes o ABT foi descrito como uma
linguagem por usurios e interessados.
O ABT um instrumento computacional essencialmente rtmico. Junto a esta proposta, est
a necessidade da utilizao em conjunto com outros instrumentos, externos ao ABT, ao computador em que o ABT est sendo executado e possivelmente externo com relao a qualquer
computador. Para isso foi elaborado o ABD (ABeatDetector), no qual o usurio tamborila no
teclado do computador os rtmos que estiver ouvindo ou imaginando para que o ABT sincronize o pulso e utilize clulas rtmicas relacionadas. A anlise feita pelo ABD resulta em uma
srie de rtmos explicitados por sequncias de compassos que encapsulem duraes regulares
do rtmo tamborilado. Estes rtmos relacionados ao tamborilar do usurio so chamados de
harmnicos e podem ser selecionados prontamente para o disparo de linhas meldicas no ABT.
De fato, atualmente o ABD parte do ABT. Todo o cdigo do ABT est disponivel online junto
documentao para uso17 .

17

Veja o repositrio: git://labmacambira.git.sourceforge.net/labmacambira/audioArt/ABT

224

F.2.3

Msica na matria: EKP e AHT

Embora o foco deste trabalho seja a explorao musical atravs de cdigos computacionais,
nesta seo est uma explicao simples, clara e factual de como estas investidas transcendem o
cdigo e at mesmo a msica em si. Por vezes, mais relevantes que os prprios desenvolvimentos so as mobilizaes criadas nos entornos e os engajamentos. A seguir esto dois trabalhos
que geraram alguma mobilizao, resultando em trocas, reunies, desenvolvimentos, pesquisas
e apresentaes propriamente ditas. O primeiro utiliza o estado do hardware como entrada, o
segundo consiste na flutuao de origamis para a obteno de um instrumento musical ldico.
Emotional Kernel Panic (EKP)
Em 2008, em colaborao intensa com o CDTL (Centro de Desenvolvimento de Tecnologias
Livres)18 foi lanada a ideia de utilizar o estado do sistema operacional - especialmente o kernel
linux - para gerar de sons. Surge ento o Emotional Kernel Panic (EKP) na parceria de Felipe
Machado (ento coordenador do CDTL), Ricardo Brazileiro (artista conhecedor de tecnologias
livres) e o primeiro autor do presente trabalho.
Foram reconhecidas trs finalidades para esta explorao do sistema operacional:

Pedaggica, atravs da utilizao de um sentido que no o visual para a tarefa de analisar


o sistema.
Artstica, para apresentaes musicais/audiovisuais.
Monitoramento do sistema operacional, pela emisso de sons peridicos relativos carga
de processamento, memria, uso de rede, etc.

Esta empreitada se desdobrou em apresentaes na Conferncia Internacional de PureData


18

Uma associao civil formada e desmembrada em 2008, sediada em Recife, PE.

225

(2009), SESC (2009), e no III Festival Contato (2009). No Festival Internacional de Software Livre de 2010 foi apresentada uma pesquisa sobre o EKP com diversos patches feitos por
Ricardo Brazileiro e Felipe Machado, assim como amadurecimentos da proposta. Uma implementao conceitual do EKP est aqui: http://trac.assembla.com/audioexperiments/
browser/ekp-base.

AirHackTable

A AirHackTable (AHT) um instrumento musical eletrnico controlado por origamis (dobraduras de papel), construda na forma de uma mesa. Nela, uma rede de coolers reciclados faz
flutuar origamis de geometria e cores variadas. Os movimentos dos origamis so captados por
webcam e interpretados em tempo real por software de processamento de imagens, gerando
padres que controlam a transformao sonora da msica. Desta forma, pode-se dizer que os
sons gerados refletem o vo dos origamis de acordo com suas geometrias (que geram trajetrias
de vo caracteristicas). Dito de maneira mais terica, as estruturas fora do tempo (geometrias
dos origamis) esto sendo mapeadas em estruturas temporais (trajetrias dos origamis em seus
vos), o que um macete da msica erudita desde tempos antigos.
Na verso atual da AirHacktable, cada cor (vermelho, amarelo, azul, verde, preto, ou branco)
controla uma voz. J a posio do origami na mesa controla aspectos do som. Como um
exemplo, pode-se configurar a AHT de forma que, se o origami est flutuando para a esquerda,
o som tambm se move para esquerda, se o origami est mais prximo da cmera, o volume
maior, e se est mais afastando do operador, o som se torna mais agudo.
A AHT segue a filosofia de desenvolvimento contnuo, comum ao software livre, que atualmente
foi incorporado ao movimento chamado hardware livre ou aberto. A concepo inicial foi de
Chico Simes (mestre de maracatu e conhecedor de tecnologias livres) e o autor deste texto,
atravs do amadurecimento de possiveis instrumentos musicais de papel. Logo neste estgio

226

inicial, foram aproximados Vilson Vieira, Ricardo Fabbri, Fbio Simes e Daniel Penalva em
reunies presenciais. Destas reunies saram ideias diversas, escritas em um pad aberto19 , e,
por fim, a AHT em si.
A primeira realizao da mesa se deu no V Festival Contato, no Espao Macambira, com apresentao na Teia Casa de Criao, durante o mesmo festival. A estrutura da mesa tambm
de papel (papelo), e foi feita por Francisco Simes por pesquisa prpria. O uso do reticulado de ventoinhas foi fruto de discusses coletivas e de experimentos do coletivo labMacambira.sourceforge.net, com especial empenho do Francisco e uso de sua luthieria de percusso:
Tora Tambores.
Em 2012 houve a aproximao de Caleb Mascarenhas Luporini e "Gera" Magela nesta frente
de atuao. Foram feitas oficinas no SESC Pinheiros e SESC Belenzinho e apresentao no
AVAV20 , todas com o foco na construo e uso da AHT.

F.2.4

Msica no tecido social: Sabrina Kawahara, Audioexperiments, EstudioLivre.org, CDTL, juntaDados.org, Devolts.org, MSST, LabMacambira.sf.net

A singularidade do cruzamento artstico, cultural e tecnolgico dos trabalhos expostos tambm


desenvolvida por diferentes grupos. Os propsitos de compartilhamento e apropriao tecnolgica esto no cerne destas comunidades, de forma que as investidas naturalmente tomam
rumos engajados socialmente. Em especial, o empoderamento civil e a criao de um patrimnio tecnolgico da humanidade so consequncias imediatas das posturas de compartilhamento
e apropriao citados. Segue uma lista parcial dos grupos mais relevantes para o presente trabalho, tanto pela influncia que estes grupos/redes tiveram na formao e atuao do primeiro
autor quanto pela ressonncia que os trabalhos aqui expostos encontram.
19
20

Veja: http://pontaopad.me/origami-sensores.
Evento mensal que ocorre na cidade So Paulo: AudioVisual Ao Vivo.

227

Sabrina Kawahara: formado pelo autor deste texto, Guilherme Lunhani, Guilherme Rebecchi, Israel Laurindo, Rodrigo Felcio e Otvio Martigli, este grupo dedicou-se realizao de apresentaes pblicas com peas musicais, bem como escrita de peas e
textos atravs de dinmicas coletivas.
Audioexperiments (): iniciado por Tiago Tavares, o autor do texto e aproximaes de
Daniel Pastore. O grupo se dedicou publicao de textos didticos e produo de cdigo
em repositrios pblicos. Em destaque, o repositrio no Assembla possui cdigos em
Python e C/C++ que realizam diversos experimentos em udio, msica e inteligncia
artificial21 .
Estudios Livres: so ambientes de estudo, produo e distribuio de mdias livres. Formam, em conjunto, um movimento e uma rede social brasileira, tida como nica no
mundo, embora o conceito seja conhecido internacionalmente22 . Tanto a comunidade
quanto a lista operacional e plataforma da comunidade foram essenciais nos amadurecimentos de questes relacionadas s mdias livres e ao uso de Python para udio e msica,
como pode ser visto na Carta Mdias Livres e no Tutorial de Python para udio e Msica,
abordados abaixo em F.3.1 deste mesmo Apndice.
CDTL (Centro de Desenvolvimento de Tecnologias Livres): foi uma associao civil
com base em Recife/PE, dedicada ao desenvolvimento e difuso de tecnologias livres.
Esta associao proporcionou suporte para os primeiros materiais didticos e investidas
em plugins de udio atravs do convnio estabelecido com o Ministrio da Cultura de
Ponto de Cultura Digital.
JuntaDados.org: um grupo com membros em todo o territrio brasileiro e ainda ativo.
Embora tenha havido um momento de maior institucionalidade, durante o convnio de
21
22

Veja a pgina principal do espao: https://www.assembla.com/spaces/audioexperiments.


H uma plataforma aberta com capacidades de wiki, blog e midiateca em http://estudiolivre.org.

228

Ponto de Cultura Digital com o Ministrio da Cultura e parceria com a Universidade


Estadual da Bahia (UNEB), o grupo marcado pela descentralizao e autonomia dos envolvidos. O autor membro fundador e ativo do juntaDados, em conjunto, especialmente,
com Fabiana "Goa" Sherine e Marcelo Soares Souza. Neste grupo foram desenvolvidas
ideias como o EKP, o ABT, os tutoriais de Python para udio e escritos socialmente
engajados.
Devolts.org: responsvel por Esporos de Pesquisa e Experimentao do programa Cultura
Viva, os "Jardins Devolts" cultivam listas nacionais de trocas de conhecimentos livres e
cultivo de informaes voltadas para msica com usos especiais de PureData, Arduinos e
Python. Este um meio de troca rico e alternativo a alguns meios mais politizados, como
a lista do estudiolivre.org.
MSST (Movimento dos Sem Satlite): com um manifesto e propostas coerentes, mas
nada bvias, como a demanda especfica por satlites civis, abordagens tecnomgicas, o
grupo uma instncia inicitica em termos tecnolgicos e conceituais.
LabMacambira.sf.net: espao virtual de programadores dedicados ao audiovisual e propsitos socialmente engajados. Fundado em parceria do autor deste trabalho e de Vilson
Vieira, Daniel Marostegan e Carneiro e Ricardo Fabbri e de parte dos investimentos da
segunda etapa do convnio de Ponto de Cultura Digital Ns Digitais, da Teia Casa de Criao. Em um primeiro momento, membros foram remunerados como mentores e como
aprendizes23 . Em um segundo momento, aproximaes e parcerias diversas ocorreram.
Detalhes esto mas subsees seguintes de Web e materiais didticos.
Submidialogia: grupo bastante relacionado aos encontros de submidialogias, ao Descen23

Renato Fabbri, Ricardo Fabbri, Vilson Vieira, Marcos Mendona e Gilson Beck mentoraram; Alexandre "Bzum"
Negro, Lucas Zambianchi, Larissa Arruda, Nivaldo Henrique Bondana, Fernando Gorodscy, Andres Martano
desenvolveram como bolsistas; Danilo Shiga e Marcos Murad foram parceiros colaboradores; Francisco Simes,
Fbio Simes, Caleb Mascarenhas Luporini, "Gera" Magela, Edson "Presto" Correia, Daniel Penalva se aproximaram para atividades especficas, cruciais em todo ano de 2012 j sem os investimentos do convnio.

229

tro e s ideias de submdia. A lista de emails do grupo possui membros de diversos dos
outros grupos citados.
Outros grupos relacionados: o MuSa foi um grupo de Joinville importante neste trabalho
por ter sido fundado por Vilson Vieira, que possui presena forte no LabMacambira.sf.net
e nos trabalhos aqui descritos. A Metareciclagem uma rede engajada em apropriao
tecnolgica e empoderamento civil com bastante presena dos outros grupos aqui citados
e muito movimentada. A lista de emails ligada ao movimento Transparncia Hacker foi
tambm de importncia central como espao focado em questes de transparncia e dados
abertos. A Casa de Cultura Tain uma entidade cultural de Campinas/SP, referncia
no uso de tecnologias livres e atividades socialmente engajadas, e onde muito do que
est aqui descrito foi inspirado. O Hacklab do Velho foi fundado por pessoas ligadas
ao labMacambira.sf.net e por moradores do alojamento velho da USP, campus de So
Carlos, e acolheu diversas experimentaes e articulaes. Outros grupos com alguma
importncia foram a Casa Fora do Eixo de So Carlos, a Teia Casa de Criao, a Nuvem
estao rural de experimentao tecnolgica e o grupo que organiza o AVAV udiovisual
Ao Vivo, ligado ao Epicentro Cultural.

F.3

Materiais didticos

F.3.1

Tutoriais em texto e cdigo: python, filtros e nyquist, plugins lv2,


metrics, carta mdias livres, contra-cultura digital

Tutorial de python para udio e som


Este tutorial foi apresentado parcialmente em Berlim no LAC 2007 e, desde ento, foi
melhorado algumas vezes. Esta primeira verso ficou resumida em forma de texto na
plataforma Estdio Livre24 . Um agradecimento especial para Fbio Furlanete e Marlia
24

http://estudiolivre.org/python-e-som-tutorial.

230

Chiozo pelas contribuies. Em 2010 a Associacao Python Brasil escolheu este trabalho,
ento j mais maduro, para ser apresentado no Festival Internacional de Software Livre,
em Porto Alegre. Como consequncia, foi feita uma srie de video-tutoriais25 . Os vdeos
so tidos como iniciticos em Python por diferentes pessoas ligadas ao movimento de
software livre.
Tutoriais de filtros e amostragem via python
Voltados para explicitar fundamentos de udio digital, estes tutoriais so baseados em
pequenos scripts escritos em Python que exploram conceitos puntuais. Pequenas explicaes so dadas com o intuito de orientar a explorao inteligente destes snippets. Teorema
de Amostragem: estes scripts executam experimentaes ilustrativas com o Teorema de
Nyquist e figuras. Filtros: alm de filtros FIR e IIR simples, duas utilizaes clssicas
destes filtros esto implementadas de forma didtica: Wavelets (FIR) e Quad (IIR). Estes
cdigos didticos podem ser baixados do repositrio audioArt26 .
Tutorial de plugins lv2
Dadas as dificuldades que o desenvolvimento dos plugins de udio apresenta, foi feito um
tutorial passo a passo com plugins operantes em todas as etapas. Os cdigos e os textos
esto todos em repositrio27 .
Microtutoriais Django28
Estes microtutoriais so baseados nos conceitos de scripts mnimos e alteraes puntuais. O primeiro conjunto de microtutoriais dedicado a reconstruir o tutorial oficial do
django de forma condensada e no prolixa. O segundo destes conjuntos dedicado a instrumentalizar de fato o leitor com o entendimento do funcionamento dos princpios funda25

http://estudiolivre.org/tiki-index.php?page=Video+Tutoriais.
Veja http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/audioArt;.
27 Veja http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/lv2Tut;.
28 Veja: https://vimeo.com/channels/labmacambira.
26

231

mentais deste framework. A importncia deste material reside no fato de ser uma das primeiras incidncias dos scripts mnimos, muito usados no labMacambira.sourceforge.net
para passagens de tecnologias de forma precisa.
Figusdevpack (FDP)
Idealizado como um meio de interao da comunidade de Python e Msica para compartilhamento de scripts inteiros e excertos, o FDP foi Baseado principalmente em documentao organizada sobre as prticas e as bibliotecas existentes para Python. Parte desta
documentao proposta como scripts que fazem uso de objetos e mdulos de forma
isolada, puntual. Este trabalho foi aceito na maior conferncia de udio em linux, a Linux
Audio Conference de 2008 (LAC2008) e foi reativado algumas vezes pelo autor deste
texto em conjunto com Vilson Vieira, Ivan Marin e outros desenvolvedores. Este projeto
est documentado na plataforma do Estdio Livre29 .
Carta mdias livres
Texto criado em decorrncia da participao do autor do presente escrito na comisso
de seleo no Prmio Mdias Livres, a convite do Ministrio da Cultura por notrio
saber. A participao consistiu em avaliar os inscritos no Prmio Mdias Livres e distribuir 4 milhes de reais dentre categorias regionais e nacionais. Esta carta um documento
nico, deixando s claras o conceito de Mdias Livres como no aprisionadas pelo conceito de propriedade, ou seja, que priorizam a sua livre circulao e a possibilidade de
gerao de materiais derivados. H o vis de priorizar processos colaborativos, comunitrios e setores da sociedade menos contemplados na gerao e circulao miditica30 .
Philosometrics
29

Veja a pgina do PDF http://estudiolivre.org/tiki-index.php?page=fdp&highlight=fdp, o artigo


aceito no LAC2008 http://www.estudiolivre.org/el-gallery_view.php?arquivoId=8221 e o repositrio do FDP http://sourceforge.net/projects/fdpack/developfdpsf.
30 Veja: http://www.estudiolivre.org/carta-pts-midias-livres

232

Em decorrncia deste trabalho, surgiu o Musimetrics, o Cinemetrics e o Literametrics.


Uma publicao no Journal of Statistical Mechanics: Theory and Experiment condensa e
compara as anlises de filosofia e msica.(66) Alm disso, uma utilizao das cincias
duras para assunto mais incidente em cincias humanas.
Textos socialmente engajados
O uso de pseudnimos um costume apreciado em diversos meios. As pesquisas informais confirmam vantagens desta prtica31 . Em especial utiliza-se pseudnimos para auxiliar a despersonificao, gerando textos menos presos satisfao da auto-imagem. Como
resultado, alm de aumento de produtividade, constuma-se conseguir tambm compreenses diferentes. Destes textos, dois foram publicados em duas publicaes relevantes: O
Contracultura Digital e o Peixe Morto, este ltimo relacionado aos submidialogias32 .

F.3.2

Screencasts e outros materiais em video

Python para udio e msica: Relacionado ao tutorial em texto citado acima, foram
feitos videos sobre a utilizao da linguagem Python, em grande parte atravs de usos
em IPython, para leitura e escrita de arquivos de udio com bibliotecas padro e externas,
assim como uso bsico de wavelets,OSC e outros recursos.
Canal Macambira no Vimeo Atualmente, so mais de 700 videos sobre sesses de hacking e experincias de arte e tecnologia. Feitos pelo LabMacambira.sourceforge.net, o
canal tem videos do autor deste escrito, e de: Larissa Arruda, Alexandre Negro, Lucas
Zambianchi, Andres Martano, Fernando Gorodscki, Chico Simes, Daniel Marcicano,
Daniel Pizetta, Daniel Penalva, Nivaldo Bondana, Danilo Shiga, Marcos Murad, Ricardo Fabbri e Vilson Vieira33 . Exemplos especiais dos videos disponibilizados no canal
31

Veja: http://disqus.com/research/pseudonyms/
Veja:
http://mutgamb.org/blog/Submidialogias-Peixe-Morto-para-Baixar
e
http:
//culturadigital.br/contraculturadigital/2012/02/01/publicacao-contraculturadigital/.
33 O canal pode ser acessado em: http://vimeo.com/channels/labmacambira.

32

233

so:
Livecoding: foram expostos os processos utilizados na apresentao de livecoding
com ChucK, vacas e sono REM34 .
Raspagem de dados: menos artstico e mais engajado, uma breve explicao sobre
o processo de raspagem de dados em pginas HTML35 .
Outros videos incluem gambiarras artsticas, uso de scripts/ferramentas para audiovisual, etc.

F.4

Web

Esta dissertao focada em uma descrio fsica do udio digital enquanto msica e usos em
cdigo desta abordagem. Como pode-se observar acima, neste mesmo Apndice, este trabalho,
disponibilizado e concebido como tecnologias livres, tem dimenses bastante considerveis em
aspectos socialmente engajados e artsticos. Esta seo exibe os feitos que extrapolam a msica
por completo.

F.4.1

Tecnologias sociais: Stios, Contedos e Articulao

Stios
Alguns sites foram criados, como parte de trabalhos engajados e tentativa de manuteno das
estruturas do labMacambira.sourceforge.net. O primeiro site com alguma relevncia seja talvez
o site para a Casa dos Meninos / LIDAS, em que foi feita uma estrutura para acolher as conferncias setoriais e municipais dos direitos da criana e do adolescente da cidade de So Paulo.
Outros exemplos, mais recentes, so as pginas para a Rede Nacional de Cultura Ambiental
34

Veja: https://vimeo.com/33012735, https://vimeo.com/33018740, https://vimeo.com/33019291,


https://vimeo.com/33025717, https://vimeo.com/33025913.
35 Veja: vimeo.com/channels/labmacambira/2681879.

234

Afrobrasileira e os blogs para a Rio+20 das secretarias do Ministrio da Cultura.


Nest meio tempo tambm foram criadas vrias ferramentas web, que rodam em navegadores
comuns, como o Firefox. Destes, vale citar36 :

SOS: sistema para coleta e difuso de conhecimentos populares e tnicos ligados sade.
gora Communs, Novo gora: sistema de deliberaes online.
Economia Criativa: rascunho de sistema para facilitar circulao de bens me 4 eixos:
venda de produtos, alugul de equipamentos, alugul de lugares e prestao de servios.
Catlogo de Ideias: ferramenta simples para catlogo de ideias sobre temas diferentes,
junto a palestras, etc.
Mapeamento dos 301 pontos de SP: mapeamento dos 301 pontos de cultura estaduais.
Mapas Coletivos: ferramenta para criao e publicao de mapas com possibilidades
colaborativas. Bastante usada por pessoas de meios diferentes pela usabilidade e proposta
pertinente.
Leitura de shapefiles no Mapas de Vista: implementao de leitura de arquivos do tipo
shapefile com dados geogrficos em um plugin e tema de Wordpress.
Maper: atualmente, um rascunho de uma ferramenta de publicao de Mapas com Vistas
a publicaes no facebook e outros formatos.

36

Os arquivos fonte esto nos repositrios em http://labmacambira.git.sourceforge.net/git/


gitweb-index.cgi.

235

Contedos
Os contedos esto em diversas pginas da wiki do Ns Digitais e do Estdio Livre.37 Tratam
principamente de documentaes de software e receitas para acesso a repositrios ou instalaes. Nestas documentaes tambm esto apontamentos de recursos artsticos e apresentaes
realizadas com a AHT, livecoding e outras propostas. Chama a ateno a quantidade de instncias de etherpads usadas, o labMacambira.sf.net chega a criar vrios destes epads por dia, para
escrita simultnea a vrias mos38 .
Articulao, disponibilizao e desenvolvimento conjunto
As articulaes se do principalmente atravs do IRC, do AA e de emails, alm de conversas
presenciais. O IRC uma forma de comunicao leve e focada na comunicao coletiva. O
AA est explicado abaixo. No menos importante so os Etherpads e as pginas wiki criadas,
permitindo proposies e escritas rpidas por diferentes pessoas.
AA
Uma das tecnologias desenvolvidas nesta empreitada se prope a estabelecer formas de compartilhar andamentos e processos. As motivaes incluem transparncia civil e organizao
assncrona de grupos descentralizados. O sistema se baseia no envio de mensagens peridicas
sobre as atividades que esto sendo desempenhadas, evitando foco em produtos e propaganda.
A ferramenta pode ser usada no IRC ou em linha de comando. Existem algumas interfaces web
para exibir as mensagens e dados do AA39 . Esto planejados desenvolvimentos do AA para que
seja utilizvel atravs do chat em diferentes redes sociais. Tambm est sendo considerada a
utilizao do AA para distribuio de verba de acordo com as dedicaes comprovadas pelos
37

Veja: http://wiki.nosdigitais.teia.org.br/Lab_Macambira, http://www.estudiolivre.org/


el-user.php?view_user=gk.
38 Veja: http://pontaopad.me/epads
39 Veja: http://wiki.nosdigitais.teia.org.br/AA.

236

mecanismos do AA, tornando possvel que se trabalhe de forma remunerada pelo bem comum.

F.5

Momento atual e previses

Est sendo escrito sobre livecoding, especialmente ligado ao Vivace e ao subgnero Freakcoding, que recebeu um manifesto recentemente. Um artigo explicando os vnculos entre a proposta esttica e o programa Vivace est sendo escrito por vrias mos. O georeferenciamento,
perene na atuao do labMacambira.sf.net, tomou agora a direo de arrumar animaes de
fluxos em arestas de grafos dispostos em mapas. Apresentaes artsticas esto previstas para
uso da AHT e experimentaes de livecoding. Um crowdfunding foi feito para experimentao
de difuso na rede e respostas, com estudos em andamento sobre comportamentos no Facebook
e listas de emails. O Cultura Viva, programa do governo federal que apoiou parte destas iniciativas, indica fortalecimento, tornando-se poltica de estado, no somente do governo que a
implantou. As aproximaes federais so observadas tambm por parte do MEC (Ministrio da
Educao), com a prestao de uma acessoria em 2012, e do MinC, devido Lei Cultura Viva.
Comunicaes mais moderadas continuam com o MCTi, MC e MMA. Os canais de IRC e
emails do labMacambira.sf.net esto bastante ativos e focados em execuo de tarefas, e, dentre
os desenvolvimentos em cdigo previstos, est o aproveitamento desta dissertao para implementaes em JavaScript, experimentaes, apresentaes, publicaes, usos didticos e estudo
propriamente dito. O alto rendimento do labmacambira.sourceforge.net no GSoC de 2012, e o
forte empenho de alunos do IPRJ/UERJ, de Nova Friburgo, atravs do suporte oferecido pelo
prof. Ricardo Fabbri, da mesma instituio, apontam para uma vida prpria que estes andamentos tomaram. Em So Paulo, a atuao de Geraldo Magela e Caleb Luporini se prope a
difundir estas prticas em circuitos artsticos e de ensino. Por emails privados, listas ou IRC, os
participantes do grupo estabelecem trocas com pessoas em diversas localidades no Brasil e no
mundo para fins de desenvolvimento tecnolgico, trabalhos, elaboraes didticas e convivn-

237

cias, mesmo que brandas, por protocolos de comunicao. A proposta no momento focar em
algo que contemple estas coisas todas da melhor forma, aliando cobertura dos interesses e preciso no aprofundamento, o que est despontado nos estudos de logs de IRC e listas de emails,
com bancos de dados massivos e pblicos. As possibilidades artsticas, engajadas, cientficas e
de instruo e interesse pessoal so confluentes atravs da modelagem por redes complexas, o
que sugere a unificao do conhecimento, trao marcante da rea e observado com frequncia.

238

239

APNDICE G -- Trabalhos relacionados e


caracterizao das contribuies
deste trabalho

Os trabalhos relacionados a esta dissertao so numerosos. Dentre as causas disso, pode-se


apontar:

Natureza interdisciplinar entre msica, computao e fsica.


H um interesse generalizado em msica por parte das pessoas que compem a sociedade.
A programao de computadores est se difundindo notavelmente.
As rotinas descritas neste trabalho so essenciais para boa parte dos software voltados
para udio e msica.

Embora as rotinas, apresentadas nesta dissertao, estejam presentes em diversas implementaes livres e proprietrias, suas descries precisas se encontram somente em cdigo computacional. A maior contribuio desta dissertao exatamente a descrio analtica das qualidades bsicas que compem elementos musicais no udio digital. A apresentao didtica dos
fenmenos envolvidos tambm no foi encontrada na literatura visitada, o que, junto com as
implementaes em cdigo Python destas relaes e de peas musicais que as exemplifiquem,
forma uma contribuio simples e convidativa embora indita e multidisciplinar. No incio da

240

escrita desta dissertao, a caixa de ferramentas no estava prevista, ela foi fruto das equaes e
descries precisas, o que tornou imediata a escrita dos scripts que compem a toolbox massa.
Este captulo dedicado aos trabalhos similares ou relacionados. Os livros mais prximos
so descritos. Na sequncia, so apontadas as implementaes computacionais proprietrias e
livres. Por fim, esta dissertao posicionada com relao aos trabalhos relacionados.

G.1

Livros

1. Music For Geeks And Nerds: learn more about music with Python and a little bit of math

Descrio: com exemplos em cdigo computacional e sonoros, este excelente livro


de Pedro Kroeger aborda conceitos de notas, afinaes, especificao da nota Midi
e converso entre nomenclaturas latina (d-r-mi) e anglo-sax (C-D-E). Lida tambm com operaes musicais fundamentais como transposio, inverso e afins,
combinaes randmicas, por Fibonacci. Explora estas organizaes tanto para
acordes quanto para combinaes horizontais (meldicas). Apresenta o bsico sobre
a constituio dos sons, batimentos, srie harmnica, e um aprofundamento sobre as
afinaes. Por fim, aponta os recursos de ampliao temporal e de tessitura (alturas)
de um dado conjunto de notas. Com isso, aponta o dipolo repetio/variao. Faz
vnculos de apreenso de estruturas com peas de Josquin des Prez, Bach, Rachmaninoff e Steve Reich.
Aspecto complementar: as formalizaes de operaes dentro da notao tradicional so preciosos adendos s questes naturais abordadas na presente dissertao. A
notao em si capta aspectos estruturais do sistema tonal e de 12 notas. Alm disso,
com a notao abre-se uma ponte com as tradies musicais eruditas.

241

Aspecto diferencial: o livro no desenvolve descrio precisa de aspectos musicais


do som em si e no h foco em relacionar qualidades psicofsicas aos elementos
musicais.
2. The Theory and Technique of Electronic Music
Descrio: um livro de Miller Puckette, de reconhecida complexidade, se define,
nas palavras de Max Matheus (Prefcio) "The Theory and Technique of Electronic
Music is a uniquely complete source of information for the computer synthesis of
rich and interesting musical timbres". O livro comea com medies do som e
controle de parmetros, cai em sntese, modulaes, mtodos espectrais, atrasos e
reverberaes e termina com filtros.
Aspecto complementar: o livro apresenta diversos procedimentos valiosos para
sntese, tratamento e anlise. O texto busca ser de computao musical em geral e
todo o texto acompanhado de exemplos em Puredata, que uma excelente linguagem de programao por patches voltada para audiovisual. Puredata a linguagem
de programao mais difundida na msica acadmica e tecnolgica em geral.
Aspecto diferencial: salvo raras excees, o livro no apresenta uma descrio
analtica das amostras sonoras com relao aos procedimentos, assim, no relaciona
de forma precisa as qualidades fsicas do som. Tampouco se aprofunda em aspectos
formais da teoria musical tradicional.
Contribuies diretas: na pgina 92, h uma soluo para a o fade-in e o fadeout que, se feitos em progresso geomtrica, demora a cair ao inaudvel. A curva
"qurtica" atinge o zero e se bastante prxima da progresso exponencial, especial
 1
n 4
mente nas intensidades maiores: an = 1
. Outra contribuio a descrio
0

prtica do uso ideal de 1000 ou mais linhas de atrasos por segundo para simular a
reverberao. Tambm deixa claro que h uma equalizao na atenuao do som

242

refletido, e que esta equalizao tende ser mais atenuante nos agudos.
3. Real Sound Synthesis for Interactive Applications
Descrio: livro do Perry Cook, de 2002, discorre sobre fundamentos de udio
digital e modelagem fsica. Possui preciosas dicas de modelagens de sons reais com
caractersticas de instrumentos tradicionais e efeitos com origem nos instrumentos
analgicos.
Aspecto complementar: implementa diversos instrumentos musicais e efeitos sonoros. Trata de uma biblioteca em C para sntese sonora que contempla boa parte
das funcionalidades da massa.
Aspecto diferencial: O trabalho escapa descrio das amostras sonoras em si e
no possui uma sistematizao de elementos musicais bsicos em termos das caractersticas sonoras.
Contribuies diretas: a parte "1.3 Quantizao" descreve de forma breve e suficiente o rudo de quantizao e pode complementar dissertao em "1.1 Som em
udio digital". O escrito sugere uma melhora na relao sinal/rudo de 6 decibels
por bit utilizado na quantizao de cada amostra do udio PCM. O que indica diretamente uma relao sinal/rudo de 96dB para 16 bits/amostra (padro de CD) e
48dB para 8 bits/amostra (comum em sistemas de voz).
4. Interao Tmbrica na Msica Eletroacstica Mista
Descrio: dissertao de Ignacio de Campos, possui diversas discusses cognitivas
e musicais.
Aspecto complementar: desenvolvem os apontamentos da dissertao e do Apndice F com relao performance musical.

243

Aspecto diferencial: o trabalho no lida de forma sistemtica com as caractersticas


do sinal digital de elementos musicais.
Contribuies diretas: a parte "2.3.2 A Sensao de Identidade Tmbrica" pode
completar a exposio sobre timbre em "2.1.4 Timbre" com os apontamentos de
envoltria, inarmonicidade, jitter e shimmer.
5. Music, Cognition, and Computerized Sound: An Introduction to Psychoacoustics
Descrio: outro livro do Perry Cook, desta vez so artigos de vrios autores, ele
cuidou da edio. Um valioso apanhado pertinente para a psicofsica de elementos
musicais no udio digital, com textos focados em aspectos cognitivos e fsicos do
som alm de eventuais descries de procedimentos eltricos e digitais envolvidos.
O foco qualitativo embora com bastante embasamento quantitativo.
Aspecto complementar: o livro traz artigos de vrios autores. As temticas so
pertinentes para a dissertao como cultura a respeito dos assuntos.
Aspecto diferencial: o trabalho no uma descrio de elementos musicais com
relao s caractersticas do som digital.
Contribuies diretas: talvez as partes mais interessantes para a dissertao sejam
a subseo "23.10 Special Considerations in Psychoacoustic Research" e o captulo
"Appendix A: Suggested Lab Exercises".
6. Modelos Psicoacsticos de Dissonncia para Eletrnica ao Vivo
Descrio: tese de Alexandre Porres com consideraes pertinentes sobre modelos psicoacsticos, dissonncia e aspereza/rugosidade. Outros trabalhos, do mesmo
autor, incluem um livro sobre computao musical em PD e apresentam, de forma
acessvel, procedimentos-chave de computao musical junto s implementaes
em Puredata.

244

Aspecto complementar: a tese foca em teorias psicoacsticas e em descries minuciosas de rugosidade e dissonncias que podem acrescentar bastante ao que foi
apresentado na dissertao. Alm disso, h um vis prtico com a utilizao do
Puredata.
Aspecto diferencial: a trabalho no uma descrio psicofsica de sequncias
amostrais relacionadas a elementos musicais.
7. 5 livros do Julious O. Smith III(36, 42, 7375)
Descrio: este autor possui diversos escritos, mais de 200 artigos publicados. Ao
menos 5 livros de interesse para a dissertao: Mathematics of the Discrete Fourier
Transform (DFT) descreve a DFT minuciosamente, influindo FFT. O livro Introduction to Digital Filters (with audio applications) trata de filtros de diversos tipos
e descreve transformadas, tcnicas de design de filtros e anlises de frequncia e
por polos e zeros. Alm de abordar filtros no convencionais, o livro termina com
implementaes em matlab, Faust e PD e possibilidades de confeco de plugins. O
livro Physical Audio Signal Processing (for virtual musical instruments and audio
effects) trata de modelagem fsica. O livro Spectral Audio Signal Processing adentra STFT em detalhes das janelas utilizadas e aplicaes da STFT. Tambm aborda
Wavelets de forma superficial porm consistente. O livro Audio Signal Processing
in Faust trata da linguagem Faust e suas facilidades para o processamento de udio
e msica.
Aspecto complementar: a seo "Perceptual Aspects of Reverberation", do livro de
filtros, pode fechar o assunto da espacializao junto subseo "2.1.7 Localizao
espacial". As partes de modelagem de voz e de fundamentos fsicos podem tambm
servir de bons complementos dissertao. o livro sobre Faust complementa a
dissertao por explicitar uma linguagem de domnio especfico para udio e msica.

245

O livro tambm contempla usos integrados com outros programas e linguagens via,
por exemplo, o padro de plugin LADSPA ou o protocolo OSC de comunicao
entre programas para manipulao multimdia.
Aspecto diferencial: estes trabalhos apresentam teorias fundamentais para o que se
faz hoje em termos de programao para msica, e no uma descrio de elementos
musicais em termos das amostras digitais.
Contribuies diretas: a parte de espacializao tem como referencia forte o livro de modelagem fsica. A clareza sobre a natureza da reverberao e sobre suas
caractersticas foi toda disparada por este livro.
8. Music: A Mathematical Offering
Descrio: este livro, escrito por Dave Benson, se ocupa dos fundamentos matemticos do fenmeno e tradies musicais.
Aspecto complementar: algumas afinaes, escalas e explicaes dos captulos 5
e 6 (sobre afinaes e escalas) podem facilitar algumas compreenses apontadas em
subseo 2.3.1. O captulo "9- Symmetry in Music" pode acrescentar nas estruturas
cclicas do captulo 2.3 da dissertao, especialmente a parte de grupos, Cayley e
rbitas.
Aspecto diferencial: o livro no trata de udio digital. Alm disso, o trabalho
uma coleo de modelagens matemticas, no uma descrio do fenmeno sonoromusical.
9. The Topos of Music: Geometric Logic of Concepts, Theory, and Performance
Descrio: este impressionante livro de Guerino Mazzola possui quase 1500 pginas e explora diversos formalismos matemticos para estruturas musicais. um
livro fascinante que atinge questes filosficas.

246

Aspecto complementar: podem servir de ilustrao ou aprofundamento: a subsees "6.5 Regular and Circular Forms", "22.4 Paradigmatic Groups" e "22.5 Pseudometrics on Orbits" e as sees "8 Symmetries and Morphisms" e "11 Orbits" fundamentam e ampliam a parte de estruturas cclicas de 2.3. A subsubseo "7.2.2 Local
Meters and Local Rhythms" e a seo "21 Metrics and Rythmics" podem aprofundar na parte de "2.3.4 Ritmo". A Subsubseo 9.4.2. pode dar uma contribuio na
abordagem artstica do cdigo computacional. A subsees "9.4 Undestanding Fine
and Other Arts" e "10.1 Paradigmata in Musicology, Linguistics, and Mathematics"
e as sees "47 Unfolding Geometry and Logic in Time" e "48 Local and Global
Strategies in Composition" podem fundamentar melhor a parte 2.3.7. Idioma Musical. Os tomos "VI Harmony" e "VII Counterpoint" podem aprofundar as partes
"2.3.2 Rudimentos de harmonia" e "2.3.3 Contraponto". O tomo "XV Appendix:
Sound" bastante interessate, com algumas partes que lembram bastante a dissertao: "A Common Parameter Spaces", "A.1 Physical Spaces", "A.2.1 Onset and
Duration", "A.2.2 Amplitude and Crescendo", "A.2.3 Frequency and Glussando" e
"B Auditory Physiology and Psychology". No tomo "XVI Appendix: Mathematical
Basics", interessa a parte "C.3 Groups" em que trata de homomorfismos, produtos direto, semidireto e Wreath, teoremas de Sylow, classificao, grupons affinos
gerais e grupos de permutao, a subseo "E.3 Categories of Modules and Affine
Transformations", "F.2 Spectra of Commutative Rings". O tomo "XVII Appendix:
Tables" pode ter algumas afinaes para constar em "2.3.1 Afinao, intervalos, escalas e acordes".
Aspecto diferencial: o livro no se ocupa da descrio de elementos musicais em
termos do udio digital.

10. Symmetry as a Compositional Determinant

247

Descrio: livro Larry J. Salomon, de 1973 e revisado em 2002, uma leitura de


procedimentos composicionais tradicionais tendo como base comum a simetria.
Aspecto complementar: um escrito bastante pertinente para toda a seo "2.3
Organizao de notas em msica", principalmente para a parte "2.3.6 Estruturas
cclicas" com as rotaes, reflexes, translados e incidncias tradicionais.
Aspecto diferencial: o trabalho no relaciona as caractersticas musicais com o som
como fenmeno fsico.
Contribuies diretas: foi um livro importante no amadurecimento das questes
tratadas nesta dissertao por ser um livro focado em simetrias na msica.
11. The CSound Book
Descrio: editado por Richard Boulanger, 2000, possui contribuies de diversos
autores. Alm de abordar princpios da linguagem, seus funcionamentos internos
e paradigmas musicais, um apanhado de tcnicas de sntese musical do som e
estruturas de mais alto nvel.
Aspecto complementar: apresenta a paradigmtica linguagem de programao
voltada para msica: CSound. Junto a esta valiosa empreitada, consagrados recursos musicais eletrnicos so expostos.
Aspecto diferencial: focado no CSound e no se prope a ser um livro de fundamentos com descrio formal das caractersticas do som relacionado s estruturas
musicais.
12. The Audio Programming Book
Descrio: de Richard Boulanger e Victor Lazzarini, 2011, um livro interessantssimo que trata de programao em C/C++ voltado para udio. Possui vrias receitas

248

tradicionais e fundamentais, todas implementadas em cdigo C. Aborda CSound ao


final.
Aspecto complementar: aborda programao em C/C++, apresenta aspectos cruciais das implementaes.
Aspecto diferencial: no uma descrio do comportamento amostral do sinal
sonoro com relao aos elementos musicais.
13. Computer Music Tutorial
Descrio: de Curtis Roads, 1996, j um clssico com algumas partes escritas por
outros autores, como colaboraes.
Aspecto complementar: o captulo "VII - Psychoacoustics" pode ser complementar
dissertao em algum detalhes e para aprofundamento.
Aspecto diferencial: Os textos do livro so de alto nvel, sem preocupao central
com o rigor, mas sim com apontamentos qualitativos e histricos das subreas da
msica computacional.
14. Music and Acoustics: From Instrument to Computer
Descrio: um curto e preciso livro com os fundamentos acsticos, de modelagem
de instrumentos musicais, de sntese e tratamento digitais.
Aspecto complementar: apresenta tcnicas de modelagem fsica, alm de aspectos
musicais e computacionais.
Aspecto diferencial: no uma descrio das amostras do sinal sonoro com relao
s caractersticas musicais.
Contribuio direta: a proposta de modelar a reverberao como um ruido com
decaimento exponencial foi importante para a elaborao da exposio sobre reverberao na subsubseo 2.2.6

249

G.2

Bibliotecas, linguagens e conjuntos de implementaes


computacionais voltados para msica

Implementaes fechadas. As seguintes implementaes fogem ao escopo do trabalho dada a


inexistncia de descrio amostral ou cdigo que assegure uma implementao precisa e limpa.
Como estas implementaes so comerciais e o compromisso com a satisfao do usurio, podem possuir pequenas adies de reverbs, delays e outros artifcios que, conhecidamente, fazem
o resultado final soar mais agradvel (chamado de catchup no som ou na msica). Observe
que os plugins com funes adicionais s propostas pela classificao podem ser considerados
adulterados. Exemplos desta adulterao so, em funes dspares do efeito especificado: aplicar um compressor de dinmica para fazer o som ser ouvido como mais volumoso, aplicar
reverb, dar ganho de equalizao nos agudos ou nos graves, etc.

1. Plugins da Waves: vrios plugins que simulam equipamentos consagrados de estdio


analgico, alm de montagem e configuraes tpicas de msicos e produtores famosos.
H plugins concebidos/desenhados por artistas/produtores com notria competncia. H
uma srie de plugins de um s parmetro. H uma linha de compressores, gates e deessers. Uma linha especial de plugins de limiters. Uma extensa linha de excelentes
plugins de EQs. Uma linha de plugins de reverbs e delays. Outra de efeitos como Doppler,
flanger, morpher, etc. Uma linha focada em plugins de surround. Uma linha bastante
diferenciada de plugins de remoo de rudo. Diversos plugins para vocais. Alguns
plugins para alterao e modificao de altura. Outros analisadores. Por fim, alguns
plugins para criao de imagem estreo e maximizao da sensao do grave.
2. GRM Tools uma coleo de plugins para transformao sonora que atinge, na prtica
cotidiana, resultados nicos e poderosos. um conjunto de efeitos bastante considerado
na msica eletroacstica. Pode interessar dissertao como exemplo de implementaes

250

modelo.
3. A Steinberg possui uma srie de programas considerados da melhor qualidade, incluindo
os sequenciadores Cubase/Nuendo e o editor de udio Wavelab. H tambm diversos
plugins VST (que o padro de plugin de udio mais difundido e da Steinberg) para
sntese e tratamento sonoro. A Steinberg est tambm fornecendo bancos de sons.
4. Synths (i.e. sintetizadores) mais conhecidos: Reason e ReCycle so produtos da Propellerheads com bastante nfase em msica de pista e simulao computacional de equipamentos e configuraes de canais de udio em hardware. O Tassman e outros intrumentos
da Applied Acoustics Systems proporcionam sons de qualidade impressionante. Os instrumentos da Native Instrumens so consagrados, em especial o sintetizador ABSynth, o
Traktor para VJing e o Maschine para fazer batidas; alm destes, o sintetizador modular
Reaktor e o pacote Komplete so tambm bastante conhecidos.

Implementaes livres. Podem ser consideradas documentaes pois os cdigos computacionais esto disponveis e podem ser considerados especificaes dos procedimentos envolvidos.

1. SndObj uma biblioteca em C usada tambm como um mdulo Python. O manual est
claro: "o SndObj uma unidade de programao que pode gerar sinais com especificaes de udio e parmetros de controle". A biblioteca tem anos de existncia, foi escrita
e mantida por Victor Lazzarini com contribuies da FFTW e do Frank Barknecht. A
documentao, incluindo stio, manual e cdigos, lida com especificaes tcnicas da biblioteca como um todo e com as entradas e sadas de cada objeto. complementar com
relao s implementaes dos Apndices. No possui descrio analtica dos procedimentos.
2. The MusicKit uma biblioteca em ObjC com mais de 10 anos de existncia. Descreve-se
como um sistema de software orientado a objetos para criao musical.

251

3. Abjad uma biblioteca Python que se define como um "sistema de software interativo
para ajudar compositores a escreverem complexas peas de notao musical de forma
incremental e iterativa". O Abjad utiliza o Lilypond para renderizar as estruturas em
notao musical.
4. music21: esta biblioteca do MIT se descreve como um conjunto de ferramentas para musicologia auxiliada por computadores. Em grande parte, lida com a entrada e sada de
elementos musicais em bancos de dados com obras dos compositores mais relevantes da
msica erudita. Trata principalmente de notao musical e anlise de dados. Complementar dissertao esta prpria nfase em anlise e notao musical. Diferencial que
no trata de aspectos fsicos do som ou sua representao amostrada no tempo, mas sim
de aspectos que esto descritos pelo vis natural em "2.3 Notas em msica".
5. Embora ainda possa ser usado como uma biblioteca, o AthenaCL tem j caractersticas
de uso que fogem linguagem Python, com terminal prprio e outras interfaces. O autor, Christopher Arizza, tambm co-responsvel pelo Music21, o define com um "sistema
que uma ferramenta computacional orientada a objetos e em cdigo aberto". O manual
possui diversas das ferramentas, os detalhes de uso e implementaes. complementar
quanto ao trabalho o aspecto de ferramenta computacional com linguagem prpria e ferramentas encapsuladas disposio. Diferencial que no tem um tratamento analtico e
no se atm s amostras em si.
6. PD e Max/MSP: so linguagens de domnio especfico (para msica) que aproveitam a
interface das linguagem de patches. As caixinhas cujo texto especifica o objeto e cujas entradas e sadas so ligadas por cordinhas so tanto uma interface amigvel quanto
uma interface grfica para utilizao do programa. Ambas as linguagens foram feitas em
grande parte por Miller Puckette, que cuida atualmente somente da verso livre, que
o PD. O Max/MSP mantido pela empresa Cycling 74. Os manuais do Max/MSP so

252

timas e at histricas introdues qualitativas e prticas. O livro do Puckette, citado em


na lista de livros acima, um dos materiais excelentes que utilizam o PD. Complementar
dissertao h esta aproximao de um programa/sistema, com interface, e mais engessado do que uma linguagem de programao. Diferencial que no h descrio analtica
do que ocorre com as amostras. O cdigo computacional, neste caso, a documentao
e Puckette explicita que o cdigo do PD deva sempre ser completo se impresso em uma
folha de papel.

7. Faust, Chuck, Supercollider, Nyquist, Impromptu: linguagens de domnio especfico como


p PD e o Max/MSP, voltadas para a sntese de msica em tempo real, mas escritas normalmente em linhas, no em patches. Complementar ao trabalho que so implementaes
computacionais excelentes para uso em tempo real. Diferencial que h perda da desenvoltura para manipulaes de udio com controle amostral de preciso arbitrria. A
descrio analtica tambm inexistente.

8. CSound: linguagem de programao voltada para msica mais antiga que est em uso.
As constantes produes acadmicas em torno do CSound podem servir de descries
mais rigorosas do que as encontradas nas solues anteriores. De qualquer forma, no h
uma documentao clara e concisa sobre os procedimentos bsicos como o captulo 2 da
dissertao.

9. tuneR: um pacote em R para anlise de msica. A documentao um bom manual dos


objetos e as caractersticas que extraem.

10. Gwibber e Vivace: linguagens de programao voltadas para msica (e video no caso do
Vivace) utilizveis via browser.

253

G.3

Aprofundamento sobre esta dissertao com base nos


trabalhos visitados nas subsees G.1 e G.2

H livros de tcnicas de msica eletrnica, como o do Puckette. J materiais como o livro do


Pedro Koeger e a biblioteca music21 no tratam das amostras sonoras em momento algum, mas
sim da representao e manipulao de estruturas musicais, assunto abordado na seo 2.3 do
ponto de vista natural. H tambm trabalhos focados em modelagens matemticas de tcnicas
e princpios musicais, cuja considerao permeia toda a dissertao e aprofundamentos so
bem vindos. Estes trabalhos, quando muito, apresentam princpios de sinais discretos, mas
no se ocupam da descrio do comportamento amostral. Os trabalhos de Cook, Smith III
e algumas implementaes possuem descries de fenmenos vibratrios em corpos rgidos
e outras modelagens fsicas. Pode-se propor expanses para usos conjuntos com alguns dos
trabalhos, visitados ou no. Vale assinalar: com base na experincia prvia dos autores, nos
escassos artigos encontrados e nos trabalhos visitados em G.1 e G.2, a descrio analtica dos
elementos musicais bsicos em termos das amostras do udio digital parece ser indita. Como
h tambm a implementao em cdigo livre das relaes descritas nesta dissertao na toolbox

massa, abre-se um leque para experimentaes cientficas rigorosas assim como para usos
artsticos com alta fidelidade e preciso arbitrria.(2)

You might also like