Professional Documents
Culture Documents
TRABALHO DE GRADUAO
EM INTELIGNCIA ARTIFICIAL
Resumo
A
realizao
de
diversas
tarefas
na
msica
ocidental,
como
ndice
1. Introduo.......................................................................................................6
2. Contexto...........................................................................................................8
2.1 Conceitos.................................................................................................................8
2.2 O Problema..........................................................................................................10
3. Estado da Arte...............................................................................................12
4. Automao da Anlise Harmnica Funcional...........................................14
4.1 Encontrando Padres Simples............................................................................14
4.2. Removendo Padres Sobrepostos......................................................................17
4.3. Classificando Acordes Ainda No Classificados..............................................21
4.4. Correo da nomenclatura dos acordes...........................................................25
5. Implementao..............................................................................................29
5.1 O Parser................................................................................................................31
5.2 Gerenciador de Arquivos....................................................................................31
5.3 Analisador............................................................................................................32
5.4 Validador..............................................................................................................33
5.5 Interface Grfica..................................................................................................33
6. Resultados obtidos.......................................................................................37
7. Concluses e Trabalhos Futuros................................................................38
8. Referncias....................................................................................................40
9. Datas e Assinaturas.....................................................................................41
1. Introduo
Na msica ocidental, a realizao de diversas tarefas como, por
exemplo, re-harmonizao, arranjo ou improvisao exige como passo
intermedirio a anlise harmnica funcional. Sendo assim, a automao de
tal anlise facilitaria bastante a automao destas outras tarefas, bem como
seria til a msicos que realizam estas tarefas manualmente.
A anlise harmnica funcional consiste na atribuio de funes a cada
acorde de uma grade de acordes. Assim, possvel inferir qual o sentido de
um determinado acorde, ou seja, qual a inteno do compositor ao utilizar
aquele acorde no contexto onde foi utilizado.
Este trabalho tem como objetivo propor um framework para automao
da anlise harmnica funcional, permitindo, a partir de uma grade de
acordes, acompanhada ou no de uma letra de msica, gerar uma estrutura
mais completa que contm tambm a informao dos graus (ou funes) de
cada acorde e a tonalidade de cada trecho.
A tcnica utilizada tem por base a proposta de Pachet [PAC01], porm
com algumas alteraes. O processo sugerido utiliza um motor de
inferncia baseado em regras, o JEOPS [FIG01], nas duas fases em que
dividido, e foi implementado utilizando um framework musical em Java, o
Ritornello [SER01]. A primeira fase, chamada fase de anlise, divide-se em
trs etapas. A segunda fase, o ps-processamento, tem por objetivo tornar
a grade de acordes conceitualmente consistente em etapa nica.
Na fase de anlise, a etapa inicial consiste na identificao de
seqncias de funes utilizadas com certa freqncia e fceis de
identificar sem causar ambigidades. Uma vez identificadas estas
seqncias, que chamaremos de chunks, o segundo passo responsvel
por eliminar os chunks redundantes ou menos relevantes, de maneira a no
permitir a sobreposio de dois chunks. Por fim, a terceira etapa atribui
funes aos acordes que no esto associados a nenhum chunk, os
chamados gaps, inserindo-os nos chunks vizinhos.
O ps-processamento responsvel pela correo dos nomes das
notas, a fim de manter a consistncia da msica aps a anlise. Esta
2. Contexto
Nesta sesso, sero apresentados alguns conceitos relacionados com o
problema discutido neste trabalho. Em seguida, a anlise harmnica
funcional ser descrita enquanto tarefa, juntamente com uma anlise das
principais dificuldades computacionais existentes em sua automao.
2.1 Conceitos
Os principais conceitos necessrios ao bom entendimento deste trabalho
so: enarmonia, campo harmnico, funo dos acordes e emprstimo
modal.
O conceito de enarmonia simples: duas notas so enarmnicas
quando tm o mesmo som (mesma freqncia de vibrao), porm nomes
diferentes. Exemplos de notas enarmnicas so: d bemol e si, ou f
sustenido e sol bemol.
G7
Am7 Bm7(b5)
Figura 2.4 Exemplos de chunks. (a) Chunk II-V-I da tonalidade Bb. (b) Chunk
bVI-V-subV-Im da tonalidade Cm.
G7
Am7 Bm7(b5)
I7M
Ab7+ G7
C7M
10
11
3. Estado da Arte
A automao da anlise harmnica funcional j foi objeto de estudo em
diversas pesquisas, embora mais como meio que como fim. Veremos que a
grande maioria dos estudos que envolvem automao da anlise harmnica
funcional o fazem como tarefa intermediria, e por este motivo a tratam de
maneira superficial. Alm disso, os dados de entrada utilizados costumam
ser bastante especficos para cada problema.
As tcnicas utilizadas so as mais diversas. Em Ulrich [ULR01], por
exemplo, uma msica modelada como uma srie de acordes, onde cada
acorde composto por um conjunto de notas, podendo um determinado
conjunto de notas representar mais de um acorde. Os acordes so
reconhecidos atravs de uma gramtica livre de contexto. Em seguida, os
campos harmnicos so identificados iterativamente: inicialmente, cada
acorde um campo harmnico, e a cada passo, dois campos adjacentes
so combinados, se os acordes de ambos puderem ser analisados sob o
mesmo campo harmnico. J em Giomi e Ligabue [GIO01], trata-se
essencialmente da composio de seqncias harmnicas atravs de uma
estrutura em rvore, de carter derivacional, que sintetiza, compasso-acompasso, as vrias solues, juntamente com as probabilidades de
incidncia de cada acorde. A vore definida gera seqncias derivadas do
Blues.
Estas abordagens no foram utilizadas neste trabalho por considerar
entradas em formatos muito especficos, que no seriam encontradas com
facilidade, e tratar o processo de anlise harmnica funcional como um
meio para uma outra tarefa, na maioria das vezes, composio automtica,
ocasionando em anlises no abrangentes, suficientes apenas para a
realizao das tarefas desejadas. Alm disso, as abordagens no so
facilmente extensveis, dificultando a melhoria incremental da anlise
realizada.
Em particular, duas das referncias encontradas tratam do problema de
maneira mais especfica e numa abordagem mais aprofundada. A primeira
baseia-se na definio de uma gramtica capaz de gerar seqncias
12
13
14
Tabela 4.1 Chunks identificados pela primeira base de regras (Match Chunks Base).
15
16
17
Exemplo
A. (...) Im
B.
VIm7 ()
A. (...) Im
B.
IIm7 (...)
A. (...) Im
B.
Ivm7 (...)
A. (...) Im
B.
Vm7 (...)
A. (...) Vm7
B.
VIm7 (...)
A. (...) Vm7
B.
IIm7 (...)
A. (...) Vm7
B.
IVm7 (...)
A. (...) V7
B.
bII7 (...)
A. (...) V7
B.
V7 (...)
A. (...) I
B.
V7 (...)
A. (...) I
B.
bII7 (...)
A. (...) I
B.
IV7M (...)
A. (...) I
B.
bVI7M (...)
Chunk Eliminado
A
A
A
A
B
B
B
A
A
A
A
B
B
18
14. Imerso
Y Z
B. X Y Z W
19
regra Im Vs VIm {
declaraes
c1 e c2 so chunks da base de conhecimento;
condies
O primeiro acorde de c2 o ltimo de c1;
O ultimo acorde de c1 tem funo Im;
O primeiro acorde de c2 tem funo VIm;
aes
retire c1 da base de conhecimento;
}
20
Regra
Igual ao acorde posterior.
Igual ao acorde anterior.
Campo harmnico maior do prximo chunk.
Campo harmnico menor harmnico do
prximo chunk.
Campo harmnico menor natural do prximo
chunk.
Campo harmnico maior do chunk anterior.
Campo harmnico menor harmnico do
chunk anterior.
Campo harmnico menor natural do chunk
anterior.
Campo harmnico maior do prximo acorde.
Campo harmnico menor harmnico do
prximo acorde.
Campo harmnico menor natural do
21
Figura 4.3.1 Classificao de gap por igualdade com acorde vizinho. Estado
da base de conhecimento antes (a) e depois (b) da aplicao da regra.
22
23
24
25
26
Tonalidades Preferveis
C, C#, D, D#, E, F(?), F#, G, G#, A,
A#, B
C, Db, D, Eb, E, F, F#, G, Ab, A, Bb,
27
28
5. Implementao
O problema foi modelado sob o paradigma de orientao a objetos e
implementado utilizando a linguagem Java. Dentre os motivos que levaram a
escolha de tal linguagem, o principal o fato do motor de inferncia JEOPS
[FIG01] gerar cdigo Java, alm do framework musical utilizado, o Ritornello
[SER01] tambm ser implementado em Java.
A arquitetura utilizada composta por cinco mdulos: um parser, um
gerenciador de arquivos, um analisador, um validador e uma interface grfica.
Cada mdulo ser descrito em detalhes mais adiante. Os quatro primeiros
mdulos esto associados a uma interface, ou fachada, que torna transparente
ao quinto mdulo interface grfica a implementao dos servios
oferecidos. Estes quatro mdulos, juntamente com a fachada, formam o
framework de anlise harmnica funcional.
29
5.1 O Parser
O mdulo de parsing responsvel por, dado um texto qualquer, identificar
acordes, criando um objeto Music, que formado pelos dados fornecidos como
entrada, porm de maneira estruturada e com todas as meta informaes
necessrias para remontar o texto original.
O parser desenvolvido capaz de reconhecer cifras no padro brasileiro
apenas e foi portado a partir do cdigo fonte utilizado para parsing em Zanforlin
[ZAN01], fornecido pela prpria autora.
Este mdulo contm uma classe Parser, que faz uso de uma classe
Specialist. A classe Specialist responsvel por reconhecer um acorde ou
levantar uma exceo caso o texto passado no seja um acorde.
O algoritmo utilizado, em linhas gerais, simples: o parser quebra o texto em
linhas e em seguida quebra cada linha em palavras. Para cada linha, tenta-se
classificar as palavras como acordes; se em alguma das palavras o especialista
levantar uma exceo, significa que no se trata de uma linha de acordes e sim
de uma linha de texto. Passa-se ento para a prxima linha e repete-se o
processo. Se todas as palavras de uma linha forem classificadas como acordes,
estes so inseridos na lista de acordes e passa-se para a prxima linha. Um fluxo
secundrio de processamento realizado dentro deste algoritmo para salvar
meta-informaes sobre posio de cada acorde em relao ao texto associado
na linha seguinte, entre outras, a fim de permitir a remontagem do texto no final
da anlise.
5.2 Gerenciador de Arquivos
O gerenciador de arquivos o mdulo responsvel por gerar, salvar e
recuperar arquivos nos dois formatos aceitos pelo framework: .mus e .xml. O
primeiro formato, .mus, foi criado especificamente para guardar de maneira
estruturada um objeto Music em um arquivo binario. O framework capaz de ler e
escrever arquivos neste formato. Assim, uma vez analisada, uma msica pode
ser salva em disco e recuperada posteriormente. J no caso do formato .xml, o
framework capaz apenas de gerar o arquivo e salva-lo. Ainda assim, atualmente
33
34
Figura 5.5.2 Tela de anlise parcial. Na anlise passo-a-passo, esta tela mostra
o resultado parcial da anlise at ento realizada. Percebe-se ainda uma grande
quantidade de gaps.
35
Figura 5.5.4 Tela de edio. Aps o trmino da anlise, o usurio tem a opo de
editar a anlise realizada pelo framwork, bastando corrigir as funes dos acordes
desejados na tabela, escrevendo a nova funo.
36
6. Resultados obtidos
O framework foi desenvolvido a fim de analisar msicas de harmonia
funcional, excluindo-se o blues, por sua ambigidade. Na msica funcional, o
jazz o estilo de harmonia mais sofisticada, abrangendo tudo que utilizado
em outros estilos de msica funcional, desde o perodo barroco at os dias
atuais. Assim, os testes foram realizados com amostras de msicas cuja
harmonia jazzstica, como o prprio jazz ou a bossa-nova.
A tabela abaixo mostra as porcentagens encontradas utilizando 12 msicas
no conjunto de teste. Considera-se que o msico no um especialista ou
profissional, mas tem conhecimento de harmonia funcional suficiente para
analisar satisfatoriamente boa parte das msicas de harmonia jazzistica.
Quantidade
de Msicas /
Total de acordes
% de Acordes
No Analisados
por um Msico
% de Acordes
No Analisados
pelo Framework
% de Acordes
Analisados
de Maneira
No Ideal
12 / 810
3,52
1,76
9,16
37
anlise
harmnica
funcional,
supondo-se
que
entrada
estivesse
38
IIm7(b5)
V
Bm7(b5)
E7(b9)
...O perfume que roubam de ti, Ai!
Im
Am
Devias vir...
39
8. Referncias
[FIG01]
[PAC01]
Informtica-UFPE.
PACHET, Franois. A meta-level architecture applied to the analysis of
Jazz chord sequences. Institute Blaise Pascal Laforia. Universit Paris
[SER01]
VI.
SERAPIO, Sylvio P.. Ritornello: um Framework para Representao
do Conhecimento Musical. Dissertao de Mestrado. 2004.
[ULRO1]
Centro de Informtica-UFPE.
ULRICH, John W.. The Analysis And Synthesis Of Jazz By Computer.
Computing and Information Science Department. University of New
[GIO01]
[STE01]
[RAM01]
[CHE01]
[ZAN01]
182p.
ZANFORLIN, Izabel. Um estudo sobre a personalizao de
encadeamento de acordes para violonistas. Trabalho de Graduao. 2004.
[PAC02]
Centro de Informtica-UFPE.
PACHET, Franois. Computer Analysis of Jazz Chord Sequences: Is
[BAG01]
40
9. Datas e Assinaturas
Recife, maro de 2005,
_____________________________________
Ricardo Enrique Pereira Scholz
Aluno
_____________________________________
Geber Lisboa Ramalho
Orientador
41