Você está na página 1de 4

WTA 2008 Segundo Workshop de Tecnologia Adaptativa

39

Converso de partituras para tablaturas usando


algoritmo baseado em autmato adaptativo
Danilo de Jesus da Silva Bellini, Anna Catarina Batista Tavella

ResumoOrfeu um software que foi desenvolvido para


auxiliar msicos amadores e profissionais na edio de msicas.
Em suas funes, est inclusa a converso de partitura para
tablatura, realizada atravs de um algoritmo baseado em
autmato adaptativo. O autmato utilizado para trechos sem
simultaneidade sonora enquanto que acordes e bicordes so
tratados atravs de uma rotina especfica.

I. INTRODUO

software Orfeu foi desenvolvido com o objetivo de

auxiliar msicos amadores e profissionais na edio de


msicas. Possui duas interfaces de edio: a de partitura e a de
tablatura. A notao em partitura , em geral, mais completa,
por incluir informaes sobre ritmos, dinmicas, articulaes e
outras caractersticas comumente omissas em tablaturas
segundo Junior (2007), alm de ser uma notao musical
historicamente mais importante (BENNETT, 1996), e a mais
utilizada at os dias de hoje pelos msicos. A figura-1 a seguir
apresenta as duas notaes.

Figura-1: representao em partitura e em tablatura

Toda msica no Orfeu dividida em trilhas, cada uma com


propriedades particulares, representando um instrumento
musical pertencente msica. A interface visual utiliza apenas
uma trilha por vez, exibindo seu contedo como partitura ou
como tablatura.
A notao em tablatura bastante utilizada por guitarristas
e violonistas, pela maior proximidade com seu instrumento.
Na tablatura, a nica informao que sempre apresentada a
altura das notas. Cada nmero representa uma altura,
indicando uma posio ao longo do brao do instrumento
(AZEVEDO, 1978), chamado de casa. Tambm comum o
uso do termo traste, principalmente em ingls (fret), por ser
o nome tcnico das barras metlicas que dividem o brao do
instrumento em casas. O nmero zero representa que a corda
deve ser tocada solta, ou seja, sem prend-la a nenhum traste;
outro nmero N indica que a corda deve ser tocada prendendo
a ao N-simo traste, contando da mo do instrumento ao corpo

do mesmo.
Uma funcionalidade do software Orfeu a converso entre
essas duas formas de representao. Toda nota sempre
representada na partitura e na tablatura simultaneamente,
embora suas tablaturas possam ser invlidas, por incluir
posies inexistentes no brao do instrumento a ser utilizado.
Ao inserir uma nota em alguma das interfaces de edio,
realizada uma converso dessa informao, porm ignorando
o contexto musical presente e, inclusive, a possibilidade de
execuo. Para contornar esse problema, h no software um
recurso adicional de converso de partitura para tablatura,
utilizando-se de adaptatividade (NETO, 1994), em que o
contexto musical e a dificuldade de execuo so levadas em
considerao. O algoritmo utilizado para fornecer esse recurso
considera que a trilha a ser convertida j esteja completa, ou
seja, que todo o contexto musical j pertena mesma.
II. POSSIBILIDADES
TABLATURA

DE

CONVERSO DE PARTITURA EM

A estrutura de dados da partitura e da tablatura


basicamente a mesma, mas para este algoritmo, a informao
de como os dados so estruturados irrelevante, importando
apenas a maneira de representao das notas e sua ordenao.
As notas em partitura so identificadas por um conjunto de
trs atributos (FAGUNDES, 2004): nome, acidente e oitava;
enquanto as notas em tablatura so identificadas por dois
atributos: corda e posio (LEAVITT, 2007). Porm, apesar
de, aparentemente, as tablaturas serem mais simples de
representar, elas exigem o conhecimento prvio do nmero de
cordas do instrumento e da afinao de cada corda, dentro da
pauta musical em anlise.
Ao fixar uma corda, pode-se facilmente converter cada nota
da partitura em uma equivalente na tablatura. Na tablatura,
cada nota tem uma posio, um nmero inteiro que denota a
diferena de altura, em semitons, entre a nota representada e a
nota da afinao da corda fixada. O processo de obter
intervalos em semitons entre duas notas bastante comum e
pode ser encontrado facilmente em livros que contenham os
fundamentos da teoria musical (MED, 2001). Quando a nota
representada mais grave que a nota da afinao, e apenas
nessa situao, o sinal da posio negativo. Toda nota
possui, portanto, uma posio na corda fixada, porm esse
nmero pode ser negativo ou excessivamente grande. A faixa
de valores permitidos um parmetro do algoritmo e seu valor
usual [0;24], por ser a faixa completa de valores possveis na
maior parte das guitarras produzidas no mercado. Conforme a
afinao das cordas, uma mesma nota pode ser tocada de mais
de uma forma.

40

WTA 2008 Segundo Workshop de Tecnologia Adaptativa


Embora seja dito que a converso realizada de partitura
para tablatura, pode-se dizer que esse algoritmo tambm
converte uma tablatura em outra, pois apenas os intervalos, em
semitons, so utilizados, e eles esto presentes em ambas as
notaes.
dado o nome de digitao ao conjunto de posies
determinadas pelo algoritmo. O algoritmo no capaz de
converter, de uma forma ideal, qualquer partitura em tablatura.
O nico critrio utilizado foi: em uma melodia, as notas
prximas entre si devem possuir as menores diferenas de
posio possveis.
A partir desse critrio possvel criar diversos algoritmos
de converso, porm o uso de um algoritmo baseado em
autmatos adaptativos mostrou-se adequado para efetuar tal
converso.
III.

DIVISO DA TRILHA

A trilha dividida em partes para que seja possvel a


converso, pois o autmato trabalha apenas com trechos
puramente meldicos e contnuos, ou seja, sem pausas e sem
simultaneidade de notas; ocorrncias como essas servem de
separadores entre as partes da trilha, criando trs tipos de
partes: trechos meldicos, pausa nica e bloco com um nico
agrupamento de notas simultneas.
As pausas no necessitam de tratamento, visto que no h
nota alguma para converter. Elas no so tratadas junto aos
trechos meldicos pois, apesar de serem um caso particular de
cadeia de entrada nula, o autmato no est preparado para
isso.
Os acordes, agrupamento de trs ou mais notas simultneas,
e os bicordes, par de notas simultneas, no so tratados por
autmatos adaptativos. H apenas uma lgica que tenta dispor
as notas em cordas que faam a posio das mesmas ficar
dentro da faixa de valores permitidos (corda permitida),
fornecida como parmetro. Essa lgica consiste em ordenar as
cordas do instrumento da mais aguda at a mais grave e fazer
o mesmo com as notas a serem colocadas na tablatura. Cada
nota, verificando da mais grave mais aguda, colocada na
corda permitida de afinao mais grave.
Cada trecho meldico tratado de forma isolada, utilizando
o autmato adaptativo na converso. O trecho meldico a
entrada do autmato. designado o nome de melodia para
esses trechos meldicos.
IV. CADEIA DE ENTRADA DO AUTMATO ATRAVS DE N
FITAS
Trabalhando com cada melodia, pode-se obter, para cada
corda, uma seqncia de nmeros que indicam como a
melodia seria tocada no instrumento utilizando apenas essa
corda, por exemplo, para um baixo eltrico de quatro cordas
com afinao padro (GDAE), pode-se ter a melodia
representada conforme mostrada na tabela-1 (as notas da
melodia de exemplo so o incio de Greensleaves).
Cada uma das linhas da tabela a seguir considerada uma
fita utilizada pelo autmato, apontadas por um cursor sobre
uma nica nota, ou seja, sobre uma coluna. O conjunto de
todas as fitas do autmato forma a cadeia de entrada do
mesmo, ou seja, cada smbolo de entrada a n-upla formada
por cada coluna da tabela de fitas.

Tabela-1: exemplo de representao de melodia

Afinao Melodia A3 C4 D4 E4

F4

E4 D4

G3

10

D3

10

12

14

15

14

12

A2

12

15

17

19

20

19

17

E2

17

20

22

24

25

24

22

Dessa forma o alfabeto de entrada fica definido como todas


as n-uplas possveis para o dado nmero de cordas. Dentro de
cada n-upla pode-se ter como valores qualquer nmero da
faixa de posies permitidas para a tablatura, ou um smbolo
que indica que a nota invlida na corda em questo, o
smbolo E, tambm utilizado quando no h nota, ou seja,
quando o cursor passa a estar fora da fita (antes ou depois da
melodia). Nesse ltimo caso descrito, a n-upla contm apenas
valores iguais a E.
Todos os dados de entrada so mantidos imutveis, e o
cursor tem plena liberdade de mover-se tanto para a direita
como para a esquerda.
V. ESTADOS E TRANSIES
O autmato possui um estado para cada corda (indicado por
nmeros), um estado de aceitao, um estado de rejeio e um
estado de transio (T), com transies conforme constam
abaixo no exemplo com trs cordas. Cada transio pode ter
at trs valores. O primeiro valor indica o que ser consumido,
o segundo valor indica a ao adaptativa que ser realizada
aps efetuar a transio e o terceiro valor indica para que lado
o cursor das fitas deve mover-se. Apenas o primeiro valor no
pode ser omitido.
O operador unrio ~ usado para indicar um conjunto
complementar, ou seja, ~K o conjunto complementar a K, e
K U ~K o alfabeto de entrada, para qualquer conjunto K
pertencente a esse alfabeto. As transies habilitadas apenas
por (E,..,E) tm prioridade sobre as demais, por indicar que as
fitas terminaram, resolvendo um problema de nodeterminismo que ocorre em quase todos os estados.
Quando a cadeia de entrada possuir um elemento que faa
parte do conjunto de smbolos de entrada Xc(i), a transio
indicada por esse conjunto estar habilitada. Os conjuntos
Xc(i) so alterados dinamicamente atravs das aes
adaptativas Bx e Ux, isto , essas aes inserem e removem
transies ao colocar (ou retirar) um smbolo de Xc. Por
exemplo, se o smbolo (0,...,0) estiver em Xc(0) ento h uma
transio do estado 0 para si mesmo, a partir dessa entrada; e
ao retirar o smbolo do conjunto Xc(0) essa transio deixa de
existir e passa a existir uma do estado 0 para o estado T, com a
mesma entrada, caracterizando a adaptatividade (NETO,
1994).
L e R representam o movimento do cursor das fitas para a
esquerda e para a direita, respectivamente, baseando-se no fato
de que a primeira nota da parte analisada da msica est
sempre na extremidade esquerda da fita e sempre a primeira
a ser apontada. Transies sem essas indicaes no movem o
cursor. A figura-2 a seguir mostra um esquema do autmato
utilizado pelo algoritmo.

41

WTA 2008 Segundo Workshop de Tecnologia Adaptativa

Figura-2: Esquema do autmato

VI. LGICA DO AUTMATO


O autmato procura manter-se em uma mesma corda pelo
maior nmero possvel de notas, realizando uma busca em
profundidade na rvore implcita nas possibilidades de
combinao de cordas. Um exemplo de execuo do autmato
pode ser imaginado, a partir dos estados, como sendo:
T 0 0 T 1 1 T 4 T T 5 T 2 2 Aceitao
Esse processo indica que o autmato iniciou no estado
T (sempre utilizado como estado inicial) e j partiu para o
estado 0, deixando a nota inicial sobre a corda 0, deixou a nota
seguinte na mesma corda e verificou que a nota seguinte no
podia estar nessa corda. A partir disso foi ao estado de troca e
percebeu que poderia utilizar a corda 1 para essa nota que no
podia estar na corda 0, e logo a utilizou, indo ao estado 1. A
nota seguinte no apresentou problemas em estar nessa mesma
corda, porm seguiu-se uma nota que no podia estar na corda
1, mas podia estar na corda 4 e 5. A escolha inicial foi a corda
4 e o autmato descobre que essa corda invlida (a transio
de T para T a nica que volta o cursor). Escolhendo a corda
5 o autmato continuou a busca normalmente at a aceitao.
Logo Xc(i) representa o conjunto de smbolos que so
vlidos para o autmato continuar a busca, se aprofundando na
i-sima corda. Para simplificar a visualizao, no
necessrio visualizar sempre cada n-upla (ou smbolo) de
Xc(i) por completo, apenas o i-simo elemento da n-upla, ou
seja, o nmero que representa a posio da nota na i-sima
corda. O conjunto Xc(i) conter esse smbolo se, e somente se,
esse nmero estiver na faixa [MinX;MaxX]. Dessa forma com
apenas dois nmeros inteiros possvel definir todos os
conjuntos Xc(i).
Seja a funo X(i) que retorna um valor booleano para a isima corda. O significado de X(i) : se Xc(i) contm a
entrada apontada pelo cursor, ento retorna verdadeiro, caso
contrrio retorna falso. Dessa forma X(i) serve como teste

para verificar qual o prximo estado de maneira mais gil


que a verificao individual com cada smbolo de Xc(i). Para
realizar isso, X(i) apenas verifica se o valor da posio na isima corda est na faixa [MinX;MaxX].
Os valores iniciais de MinX e MaxX a cada execuo do
autmato devem ser, obviamente, o limite inferior e superior
da faixa de posies permitida na tablatura, respectivamente.
H uma indeterminao no estado T, pois X(i) pode ser
vlido para mais de um valor de i. Nesse caso a varredura
feita do menor valor de i at o maior valor de i, conforme
exemplificado. Isso justifica que sempre o segundo estado o
0.
As aes adaptativas Ux (Update X) e Bx (Backup X)
servem basicamente para atualizar os valores de MinX e MaxX.
Dessa forma os conjuntos Xc(i) sero alterados, e
conseqentemente a funo X(i). A maneira como MinX e MaxX
so alterados descrita adiante.
Cada transio com R atribui o nmero da corda como
sada, mas cada transio com L indica que essa sada era
incorreta, retirando esse nmero da sada. Isso pode ser feito
imaginando-se uma fita adicional de sada, com nmeros
que indicam a fita escolhida para aquela nota. A tabela-2
abaixo apresenta os nmeros na fita de sada.
Tabela-2: Nmeros da fita de sada

Afinao Melodia A3 C4 D4 E4

F4

E4 D4

G3 (Fita 0)

10

D3 (Fita 1)

10

12

14

15

14

12

A2 (Fita 2)

12

15

17

19

20

19

17

E2 (Fita 3)

17

20

22

24

25

24

22

Sada

VII. ALGORITMO
Todo o ncleo do funcionamento desse algoritmo est nas
aes adaptativas que atualizam o MinX e o MaxX. Essas aes

WTA 2008 Segundo Workshop de Tecnologia Adaptativa


visam a obedecer ao critrio previamente estabelecido de que
as distncias entre as posies devem ser as menores
possveis.
Diferenas de trs posies na tablatura em um trecho de
poucas notas sero consideradas sempre possveis de serem
executadas, pois supondo que o msico tenha quatro dedos,
todas as notas so possveis de serem mapeadas em um dedo a
partir do nmero da posio, e, portanto, esse um bom
nmero inicial para o algoritmo.
O algoritmo basicamente repete a execuo do autmato
iterativamente para cada valor de faixa de distncias (ou
diferena de posies). O valor incrementado a cada
iterao. O algoritmo, visto em alto nvel, em uma pseudolinguagem:
Repetir para cada melodia
Faixa de distncias := 3
Enquanto (Executa autmato) no retorna aceitao
Faixa de distncias := Faixa de distncias + 1
Impe fita sada: cordas utilizadas para a melodia
At acabar a msica

Essa faixa de distncias importante para o autmato, pois


o menor valor que MaxX MinX pode assumir, ou seja, o
menor tamanho do intervalo [MinX;MaxX].
VIII. AES ADAPTATIVAS
Nem sempre necessrio fazer a melodia inteira ficar na
faixa de distncias descrita. Por exemplo, se h uma melodia
com vinte notas, a primeira nota no precisa estar na mesma
regio que a vigsima, ou seja, no interessante forar que a
melodia inteira esteja sempre dentro da faixa de distncias.
Seja W a janela que contm o conjunto de valores
numricos das ltimas posies utilizadas como sada (e.g. no
exemplo da Greensleaves seria 12, 10, 12, 9, 10, 9, 12). O
tamanho dessa janela indica quantos nmeros sero utilizados.
Para isso necessrio uma pilha que armazene todos os
valores j utilizados. Seja fretStack essa pilha. A janela
sempre se resume a indicar os elementos do topo dessa pilha.
O tamanho da janela no pode ser demasiado pequeno, pois
tornaria irrelevante a importncia da faixa de distncias. Se o
tamanho da janela for menor do que 4, praticamente qualquer
entrada tornar-se- vlida, em particular a escala cromtica
ficaria toda na mesma corda (0,1,2,3,4,5,6,...). Se o tamanho
da janela for quatro, esse valor continua pequeno demais para
garantir que a digitao ser boa caso haja repetio de
nmeros, como a seqncia (0,1,1,2,3,3,4,5,5). No caso em
que h uma repetio de todas notas, comum na presena do
chamado tremolo picking(TURNER and WHITE, 1988), o
primeiro valor a garantir a separao para outra corda 7, pois
(0,0,1,1,2,2,3,3) tem oito elementos (portanto o primeiro zero
descartado) e o elemento seguinte no poder ser 4 caso a
faixa de distncia seja a inicial, 3. Valores maiores so um
exagero na maior parte dos casos, pois essa janela de tamanho
N obriga que qualquer conjunto de N notas adjacentes esteja
dentro da faixa de distncias. Sete notas o suficiente para
haver uma mudana de contexto e um pequeno deslocamento
na regio da melodia. Dentro da janela h um valor mximo e
mnimo, sejam esses MaxW e MinW, respectivamente.
A ao Ux inicialmente empilha o novo valor de posio
em fretStack para garantir que esse valor no ser perdido e

42

esteja na janela quando necessrio. A ao Bx faz o inverso,


descartando o valor do topo dessa pilha.
As aes Ux e Bx atualizam as variveis MinX e MaxX e,
conseqentemente, a funo X(i), indicando nova a faixa de
valores permitidos para a posio da nota. Essa faixa pode ser
facilmente calculada tendo todos os valores da janela de
posies usadas, bastando possuir o valor mximo e mnimo
dentro da janela. O valor de MinX e MaxX passam a ser os
limites da janela, acrescidos de quanto falta para completar a
faixa de distncia em ambos os sentidos (diminuir MinW e
aumentar MaxW), de forma que garanta que o prximo valor,
estando nessa faixa, incapaz de tornar a nova amplitude da
janela (MaxW - MinW) maior que a faixa de distncias:
MinX = MinW FaixaDistncias + (MaxW MinW)
MaxX = MaxW + FaixaDistncias (MaxW MinW)

Obviamente para uma janela vazia, MinX e MaxX


sero iguais aos limites da faixa de valores permitidos para as
posies, e aps a aplicao das frmula acima deve-se
sempre saturar os valores de tais variveis nessa faixa de
valores permitidos.
IX. CONCLUSO
O algoritmo funciona bem para melodias, conjunto de notas
sucessivas e totalmente sem simultaneidade sonora, sem
pausas muito curtas (pausas so consideradas curtas quando
tm durao inferior a uma colcheia). Entretanto, se houver
grandes discrepncias de altura (trs oitavas, por exemplo) o
algoritmo lento. interessante limit-lo a poucos trastes
quando isso for possvel.
Embora no haja ganhos considerveis de performance ou
at mesmo de resultado utilizando o algoritmo aqui descrito na
verso inicial em relao aos algoritmos convencionais, outros
pontos podem ser explorados para melhor-lo, como por
exemplo o tratamento de notas mltiplas (bicordes e acordes)
ou o tratamento de ornamentos existentes. Com tais melhorias,
esperamos obter resultados melhores e mais abrangentes.
REFERNCIAS
[1]

J. Junior, O bsico de guitarra, Guitar X. Acesso em 17/12/2007.


Disponvel em:
http://www.guitarx.com.br/index.asp?url=library_html/
basico_guitarra/basico_da_guitarra%206_10.htm.
[2] R. Bennett, Uma breve histria da msica, Ed. Jorge Zahar Editor Ltda,
1996, 80p.
[3] F. Azevedo, Mtodo para Guitarra, Ed. Bruno Quaino Editores, 1978,
16p.
[4] J. J. Neto, Adaptive Automata for Context -Sensitive Language.
SIGPLAN NOTICES, Vol. 29, n. 9, pp. 115-124, September, 1994.
[5] M. D. Fagundes, Teoria da Msica, Ed. Keyboard, 2004, 183p.
[6] W. Leavitt, Mtodo Moderno para Guitarra, 1a Ed., Vol. 1, Ed. Irmos
Vitale, 2007, 128p.
[7] B. Med, Teoria da Msica, 4a ed.,
Ed. Musimed, 2001, 420p.
[8] G. Turner, B. White, Progressive Lead Guitar, USA, Ed. Koala
Publications, 1988, 94p.
[9] H. Pistori. Tecnologia Adaptativa em Engenharia de Computaco:
Estad. da Arte e Aplicaes. Tese (Doutorado) Universidade de
So Paulo.