Escolar Documentos
Profissional Documentos
Cultura Documentos
RENATO FABBRI
So Carlos
2013
RENATO FABBRI
Verso Corrigida
(verso original disponvel na Unidade que aloja o Programa)
So Carlos
2013
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 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).
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.
Figura 1.1 -
Som digital em modulao por cdigo de pulsos (PCM): 25 amostras representadas por 4 bits cada uma. . . . . . . . . . . . . . .
Figura 2.1 -
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
Figura 2.4 -
47
Figura 2.5 -
49
50
Figura 2.6 -
51
Figura 2.7 -
52
Figura 2.8 -
Figura 2.9 -
53
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 -
Figura 2.12 -
60
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 -
Figura 2.15 -
64
67
70
Figura 2.16 -
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 -
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
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 -
Tabela 2.23 -
97
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 -
Figura 2.26 -
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
Equao
Equao
2.2 - Potncia.
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
2.15 - Recomposio das amostras temporais com base nos coeficientes espectrais.
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
2.28 - Sequncia binaural PCM com DTI e DII para localizao espacial.
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Equao
Subseo
2.3.1 - Relaes microtonais atravs de fraes de semitons ou atravs de quantidades inteiras de divises arbitrrias da oitava.
Subseo
Subseo
Subseo
Subseo
Subseo
Elementos de notao
Hz
metro.
mm
milmetro.
segundo.
Si
y
parte inteira de x.
ento.
portanto.
tal que.
para todo.
aproximadamente.
equivalente.
comprimento em amostras.
durao temporal.
ai
Sumrio
1 Introduo
33
1.1
33
1.2
35
1.3
Implementao computacional . . . . . . . . . . . . . . . . . . . . . . . . . .
36
1.4
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
1.5
Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
39
39
2.1.1
Durao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
2.1.2
Volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
2.1.3
Altura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
2.1.4
Timbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
2.1.5
47
2.1.6
A nota bsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
2.1.7
54
2.1.8
2.2
2.3
Usos musicais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
63
2.2.1
Tabela de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
2.2.2
65
2.2.3
69
2.2.4
Rudos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
2.2.5
Tremolo e vibrato, AM e FM . . . . . . . . . . . . . . . . . . . . . . .
80
2.2.6
Usos musicais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
95
2.3.1
95
2.3.2
2.3.3
Contraponto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.3.4
Ritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
123
REFERNCIAS
125
133
157
187
199
201
203
F.1
F.2
F.2.2
F.2.3
F.2.4
Msica no tecido social: Sabrina Kawahara, Audioexperiments, EstudioLivre.org, CDTL, juntaDados.org, Devolts.org, MSST, LabMacambira.sf.net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
F.3
Tutoriais em texto e cdigo: python, filtros e nyquist, plugins lv2, metrics, carta mdias livres, contra-cultura digital
F.3.2
F.4
Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
F.4.1
F.5
. . . . . . . . . . . . . 229
239
33
Introduo
1.1
34
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 ,
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
35
Figura 1.1 Som digital em modulao por cdigo de pulsos (PCM): 25 amostras representadas por 4
bits cada uma.
1.2
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
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
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
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
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
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)
2.1.2
Volume
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)
2.1.4
Timbre
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
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)
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)
)
n f o (
i % f
= ti = 1 2 4
f
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
de onda.
5
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.
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
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
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
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 =
2k
1X
1X
ck e j i =
(ak + j.bk ) cos(wk i) + j.sen(wk i)
k=0
k=0
(2.15)
48
fa
k
2
k
em radianos ou fk =
fa
2
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
a0
2
o deslocamento fixo8 e
a1
2
fa
pela relao fk = k =2
. Este caso de especial importncia pois o mnimo necessrio para
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
49
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 < .
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
fa
2
%2
+ %2 1
2
(2.17)
fk fk , wk wk ,
1k
(2.18)
51
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)
52
53
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
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
f, f
Li
n f o f . fa 1 n f o f 1
= li
= li
0
(2.23)
f,
Ti
2.1.7
n f ob fa .c1 ( f
= ti
= l
0
f
i % fa
)1
(2.24)
0
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).
d=
d0 =
s
2 2
x
+y
2
2
x+
+ y2
(2.25)
56
DT I =
d0 d
v som no ar 343.2
segundos
(2.26)
d
d0
!
decibels
d
d0 .
(2.27)
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:
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
{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
fa
100/2
fa =44.1kHz
100
= 882Hz,
fa
100/4
= 1764Hz
2 milissegundos. Basta
60
{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
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
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
i
fa ,
que
fa
que completa
2.2.2
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
fa ,
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)
primeira amostra.
f , f1
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
log2
i
f
1
log2 1
f0
f1
f0
= f0 .2
f1
f0
o nmero
= f0
f
1
f0
i
1
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
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
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
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.
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)
0 e t0 so duas amostras
resposta ao impulso {hi } percorrida na forma retrgrada e t12
32
71
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
73
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.
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
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
"
#
, j = 1 , x randmico [0, 2] , i 1, 1
2
2
c/2 = 1
(2.50)
(se par)
ci = ci , para i >
fmin 15Hz
fi = i
fa
,
i
3 log2
20
i = 10
, i N
2
fi
fmin
ci = 0 , i : fi < fmin
(2.51)
(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)
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
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)
VdB
20
o ganho
imx =82000
fa
= 2s
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
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)
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
i0
e M
0
= i f
fa
(2.66)
e0 %
ti0 = m
eM
(2.67)
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
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
88
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.
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
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)
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 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)
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
Seja S j =
j
s j = Ti
H1
j j 1
= {ti }i=0
j=0
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
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
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
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
98
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).
100
Escalas
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
(2.82)
2
2
teras maiores = EitM = {etM
i }0 = {0, 4, 8} = {4.i}0
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}
modo frgio = Ei
(2.83)
mf
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.
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
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 diminuta =
Adi
= {adi }20
(2.86)
= {0, 3, 6}
103
Acordes tridicos incompletos, com notas adicionais (acordes sujos), e no tridicos so comuns. Orientaes gerais so:
2.3.2
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
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
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.
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.
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
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.
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,
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
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 .
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.
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
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)
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)
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
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
j
ti
114
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
115
operao:
S 0j
{s0j }0H1
. f
sj j 0
, onde j o fator entre a frequncia do evento s j e a
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
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
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
121
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
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.
6 ALTEN, S. R. Audio in media. 9th ed. Boston: Wadsworth Publishing, 2010. ISBN:
9780495572398.
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.
126
15 CHACON, S.; HAMANO, J.; PEARCE, S. Pro Git. Berkeley: Apress, 2009. ISBN:
9781430218333.
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.
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.
127
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.
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.
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.
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.
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.
45 CLOUGH, J.; ENGEBRETSEN, N.; KOCHAVI, J. Scales, sets, and interval cycles: a
taxonomy. Music Theory Spectrum, v.21, n. 1, p. 74104, 1999.
129
48 SALZER, F. Structural hearing: tonal coherence in music. New York: Dover Publications,
1962.
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.
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.
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.
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
132
133
A.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
9
10
11
# 2.1
12
T_i = n.zeros(Lambda)
# nmero de amostras
13
14
15
16
17
18
19
20
21
# 2.2 Potncia
134
22
pot = (T_i2.).sum()/Lambda
23
25
T2_i = n.random.normal(size=Lambda)
pot2 = (T2_i2.).sum()/Lambda # potncia 2
26
27
V_dB = 10.n.log10(pot2/pot)
24
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
A = 10.(V_dB/20.)
48
49
50
53
f_0 = 441.
lambda_0 = f_a/f_0
periodo = n.arcsin(n.random.random(lambda_0))
54
55
Tf_i = n.array(list(periodo)1000)
51
52
# amostras quaisquer
# 1000 perodos
56
57
58
59
60
61
62
66
67
# 2.10 Senoide
68
69
63
64
65
135
70
71
# 2.12 Triangular
72
73
74
75
76
Rf_i = a.wavread("22686__acclivity__oboea440_periodo.wav")[0]
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
kk = n.arange(tau)
F_k = C_k[1:tau+1]
F2_k = C_k[Lambdatau:Lambda1][::1]
105
106
109
ab = n.abs(F_k)
ab2 = n.abs(F2_k)
MIN = n.abs(abab2).sum()
110
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
116
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
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
132
126
127
128
129
133
134
135
139
140
136
137
138
142
d = n.sqrt((xzeta/2)2+y2)
d2 = n.sqrt((x+zeta/2)2+y2)
143
141
144
DTI = (d2d)/343.2
145
146
DII = 20n.log10(d/d2)
# segundos
# dBs
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
theta = n.arctan(y/x)
163
164
165
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
Todas as equaes da seo 2.2 esto implementadas abaixo em Python e disponibizadas como
parte da toolbox massa.(2)
# coding: utf8
import numpy as n
import scikits.audiolab as a
4
5
f_a = 44100
6
7
8
9
10
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
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
50
52
51
53
54
f_i = f_0+(f_ff_0)ii/(float(Lambda)1)
55
58
59
60
56
57
61
62
63
64
67
68
69
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
91
92
A_i = a_0(a_f/a_0)((ii/float(Lambda))alpha)
93
94
88
89
95
96
97
A_i = a_0+(a_fa_0)(ii/float(Lambda))
98
99
100
101
102
103
104
105
106
107
108
109
110
# 2.43 Convoluo
111
112
113
114
115
116
fc = .1
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# aplicao do filtro
T2_i = [a0 T_i[0]]
last = T_i[0]
141
136
137
138
139
140
142
fc = .1
bw = .05
143
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
142
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
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
233
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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
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
292
293
294
295
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
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
318
319
320
321
322
323
# ndices
# ndices para a LUT
326
327
# 2.60 som em si
328
324
325
329
330
# escrita do som
145
331
332
333
Tt_i = n.copy(Tv_i)
334
336
337
335
338
339
340
341
342
343
344
345
346
347
348
fv = 60.
349
350
351
# > 20Hz
354
355
356
f_i = f+Tfm_i mu
357
352
353
360
361
# 2.70 FM
362
358
359
363
364
# escrita do som
365
366
369
Tam_i = n.copy(Tfm_i)
V_dB = 12.
alpha = 10(V_dB/20.)
370
367
368
# profundidade da AM
372
373
# 2.70 AM
371
374
375
376
377
# escrita do som
146
378
379
380
381
# Efeito Doppler
386
387
382
383
384
385
388
389
390
391
392
393
394
# distncias iniciais:
x_0=0 # emissor frente
y_0=200 # distante y_0 metros
395
396
397
398
399
400
402
403
401
408
409
404
405
406
407
410
411
412
413
414
417
418
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
449
450
443
444
445
446
447
451
453
454
452
456
Rm_i=ruido_marrom[Lambda1:Lambda]
R2_i=Rm_i A_i[Lambda1:Lambda]
457
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
467
468
469
470
471
472
473
474
475
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
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
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
=
=
=
=
=
=
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
539
540
541
542
543
544
545
150
A.3
Todas as equaes da seo 2.3 esto implementadas abaixo em Python e disponibizadas como
parte da toolbox massa.(2)
# coding: utf8
import numpy as n
3
4
5
6
7
frequncia de amostragem
1024.
2n.pi, Lt, endpoint=False)
um perodo da senide com T amostras
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
151
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
n.arange(13.)
56
57
58
59
60
61
62
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
80
81
82
83
84
85
86
87
88
152
89
90
91
92
93
94
95
96
97
98
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
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
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
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
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
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
257
258
259
260
261
262
263
264
265
266
267
268
269
156
157
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
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.
# coding: utf8
import numpy as n
import scikits.audiolab as a
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
159
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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
39
40
41
42
43
44
45
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
163
B.2
B.2.1
# coding: utf8
import numpy as n, scikits.audiolab as aa
3
4
5
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
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
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
165
86
87
88
89
90
91
92
93
94
95
96
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
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
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
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
))
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
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
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
7
8
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
34
35
36
37
38
39
40
41
42
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
76
77
78
79
80
81
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
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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
7
8
9
10
11
12
13
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
35
36
37
38
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
64
65
66
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
83
84
85
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
102
103
104
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
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
B.3.1
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
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
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
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
74
75
76
77
78
79
179
80
81
EtM_i=[0.,4.,8.]
Ett_i=[0.,6.]
82
83
84
85
86
87
88
89
90
91
92
93
94
EtM_i]
95
96
97
98
99
Ett_i]
100
101
102
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
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
8
9
10
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
36
37
38
181
39
40
41
42
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)
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
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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
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
8
9
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
36
37
38
39
40
41
42
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
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
77
78
79
80
81
82
83
84
85
86
87
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
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
C.1.2
tables.py
C.1.3
__init__.py
Inicializao do mdulo.
188
C.2
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_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
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
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
41
42
43
44
io=f.IOUtils()
io.recordFile(sound) #records a mono 16 bit
190
45
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
41
42
43
44
45
46
47
192
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
2
right+=(right4+left4)
76
77
78
79
80
2
right+=(right5+left5)
81
82
83
84
85
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
#########
#
#
#
#
23
#
#
#
#
#
#
#
#
#
#
#
24
25
sound=[]
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
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
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
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
127
128
129
130
p=f.Pattern(s,f.PermutationPattern(),4)
p.synthesizeSonicVectors()
sound+=p.sonic_vector
131
132
133
134
135
136
137
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
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
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
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
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
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
O cdigo computacional feito para a arte sonora, incluindo a musical, manifesta-se como cultura
pois fruto de prticas espontneas, dirias e coletivas.
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
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
Wavelets
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
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
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
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
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
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
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
13
14
15
16
17
18
19
20
212
# 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
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
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.
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
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
215
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
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
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:
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
4
5
6
7
// crescimento continuo
SinOsc s1 => Gain g => g => s1 => dac;
2 => s1.sync;
14
221
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
8
9
10
11
12
13
14
15
16
17
TimeGrid tg;
tg.set(1::minute/60/2, 8, 10);
tg.sync();
18
19
20
21
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
224
F.2.3
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:
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
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
228
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
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
232
F.3.2
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
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
234
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
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
236
mecanismos do AA, tornando possvel que se trabalhe de forma remunerada pelo bem comum.
F.5
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
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
241
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
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.
247
248
249
G.2
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
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.
10. Gwibber e Vivace: linguagens de programao voltadas para msica (e video no caso do
Vivace) utilizveis via browser.
253
G.3
massa, abre-se um leque para experimentaes cientficas rigorosas assim como para usos
artsticos com alta fidelidade e preciso arbitrria.(2)