universidade federal de pernambuco centro de … jr,m.pdf · universidade federal de pernambuco...
TRANSCRIPT
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE TECNOLOGIA E GEOCIÊNCIAS
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
DISSERTAÇÃO DE MESTRADO
Projeto de banco de filtros digitais por janelas Ka iser
para identificação de notas e acordes usando imagen s
binarizadas por limiar de Otsu.
MAURÍCIO DE MIRANDA CORDEIRO JÚNIOR
RECIFE 2011
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE TECNOLOGIA E GEOCIÊNCIAS
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
Projeto de banco de filtros digitais por janelas Ka iser
para identificação de notas e acordes usando imagen s
binarizadas por limiar de Otsu.
POR
MAURICIO DE MIRANDA CORDEIRO JÚNIOR
Dissertação submetida ao Programa de Pós-Graduação em
Engenharia Elétrica da Universidade Federal de Pernambuco como
parte dos requisitos para obtenção do grau de Mestre em Engenharia
Elétrica.
ORIENTADOR: PROF. DR. HÉLIO MAGALHÃES DE OLIVEIRA
Recife, Julho de 2011.
FICHA CATALOGRÁFICA
Cordeiro Júnior, Mauricio de Miranda. Projeto de banco de filtros digitais por janelas Kaiser para identificação de notas e acordes
usando imagens binarizadas por limiar de Otsu. Recife – 2011.
Nº de páginas: 139 Área de concentração: Telecomunicações/ Processamento de Sinais de Áudio e Imagens. Orientador: Prof. Dr. Hélio Magalhães de Oliveira. Dissertação de Mestrado – Universidade Federal de Pernambuco – UFPE Palavras-Chaves: Reconhecimento, Notas, Acordes, Processamento de Áudio, Processamento de Imagem, Limiar de Otsu, Filtros FIR, Janelas Kaiser.
A minha família, por toda compreensão e pelo tempo que deixamos de estar juntos, dedico.
AGRADECIMENTOS
Agradeço a Deus, por todo mérito alcançado e por ter me possibilitado condições
de ter concluído esse trabalho com êxito. Agradeço especialmente à minha família, aos
amigos, professores, colegas de trabalho e a minha noiva, por toda compreensão e apoio
dado.
Gostaria de agradecer também aos colegas do grupo de comunicações da UFPE que
propiciaram um importante ambiente de pesquisa auxiliando no cumprimento deste
trabalho.
De uma forma especial agradeço ao professor Dr. Hélio Magalhães de Oliveira, por
sua orientação neste trabalho e nas atividades acadêmicas.
Finalmente, agradeço o apoio financeiro prestado pela CAPES.
Resumo da Dissertação apresentada à UFPE como parte dos requisitos necessários
para obtenção do grau de Mestre em Engenharia Elétrica.
Projeto de banco de filtros digitais por janelas Ka iser
para identificação de notas e acordes usando imagen s
binarizadas por limiar de Otsu
Maurício de Miranda Cordeiro Júnior
Julho/2011
Orientador: Hélio Magalhães de Oliveira
Área de Concentração: Comunicações / Processamento de Sinais de Áudio e Imagem.
Palavras-chave: Processamento Digital de Sinais, Processamento de Áudio, Processamento
de Imagens, Reconhecimento de Notas e Acordes, Kaiser, Otsu.
Número de Páginas: 139
Neste trabalho é proposto um novo procedimento para identificação de notas e
acordes em registros de violão e piano. O método apresentado utiliza técnicas de
processamento de sinais de áudio e de imagem e pode ser dividido em cinco etapas, a
saber: decomposição em componentes de energia utilizando banco de filtros digitais por
janelas Kaiser; conversão matriz-imagem seguida de binarização por limiar de Otsu; ajuste
a partir de técnicas de conectividade entre os pixels; sobreposição temporal e composição
dos resultados.
Testes de funcionamento usando registros de violão (gravados via sintetizador)
foram realizados, obtendo taxas de acerto superiores a 88 %.
A presente dissertação busca desenvolver um sistema capaz de realizar a detecção e
reconhecimento de padrões musicais, tais como: notas e acordes de trechos de áudio
utilizando técnicas de fundamental importância da engenharia na área de processamento de
áudio e imagem.
O programa consiste em um algoritmo desenvolvido no Matlab®, capaz de ler um
arquivo no formato“.wav” e fazer uma análise espectral do mesmo, extraindo parâmetros,
para possível obtenção dos resultados.
Abstract of Dissertation presented to UFPE as a partial fulfillment of the
requirements for the degree of Master in Electrical Engineering.
Project of database digital filters by Kaiser windo ws for
identification of notes and chords using binary ima ges
by Otsu threshold.
Maurício de Miranda Cordeiro Júnior
July/2011
Advisor: Prof. Dr. Hélio Magalhães de Oliveira
Area of Concentration: Communications / Digital Signal Processing.
Keywords: Digital Signal Processing, Audio Processing, Image Processing, Recognition of
Notes and Chords, Kaiser, Otsu.
Number of Pages: 139
This paper it proposed a new procedure for identifying notes and chords on guitar
and piano records. The method presented uses techniques of audio and images signal
processing, and can be shared into five steps, namely: decomposition in energy
components using digital filter bank by Kaiser Windows; array - image conversion
binarization followed by Otsu threshold; adjustment from technical connectivity between
pixels; overlap in time and composition of the results.
Functional testing using records of guitar and piano (recorded via synthesizer) were
performed, getting hit rates exceeding 88%.
This dissertation seeks to develop a system able to perform the detection and
recognition of musical patterns, such as: notes and chords audio snippets using techniques
of fundamental importance of engineering in the area of audio and image processing.
The program consists of an algorithm developed in Matlab ®, able to read a file in
the format ".wav" and make a spectral analysis of the same file, extracting parameters, for
possible achievement of results.
“A leitura após certa idade distrai excessivamente o espírito humano das suas reflexões criadoras.
Todo o homem que lê demais e usa o cérebro de menos adquire a preguiça de pensar.”
Albert Einstein.
SUMÁRIO
LISTA DE FIGURAS X
LISTA DE TABELAS XII
1. INTRODUÇÃO 14
1.1. VISÃO GLOBAL DO SISTEMA 14
1.1. OBJETIVO 15
1.2. LIMITAÇÕES 15
2. TRATO AUDITIVO E MÚSICA 17
2.1. PROPRIEDADES DO SOM 17
2.1.1. INTENSIDADE 17
2.1.2. FREQUÊNCIA 18
2.1.3. TIMBRE 19
2.1.4. RUÍDO 20
2.1.5. POTÊNCIA SONORA 20
2.1.6. ALTURA 20
2.2. ESCALA DE AFINAÇÃO TEMPERADA 20
2.3. FORMAÇÃO DE ACORDES 21
2.3.1. ACORDES MAIORES 22
2.3.2. ACORDES MENORES 22
2.3.3. ACORDES DIMINUTOS 23
2.3.4. ACORDES AUMENTADOS 23
2.3.5. ACORDES DISSONANTES 24
3. TÉCNICAS PARA RECONHECIMENTO DE PADRÕES MUSICAIS 27
3.1. VISÃO GERAL 27
3.2. PROCESSAMENTO DE SINAIS 28
3.2.1. PROCESSAMENTO DE IMAGENS 28
3.2.2. PROCESSAMENTO DE SONS 29
3.2.3. ANÁLISE DE FOURIER 30
3.3. UMA TÉCNICA ALTERNATIVA PARA DETECÇÃO E IDENTIFICAÇÃO DE NOTAS E ACORDES MUSICAIS 32
3.3.1. APRESENTAÇÃO 32
3.3.2. MÉTODO DE JANELAMENTO PARA DETECÇÃO NOTA A NOTA 32
3.3.3. IDENTIFICAÇÃO DE NOTAS E ACORDES PELA TRANSFORMADA DE FOURIER 36
3.3.4. CRITÉRIO DE DETECÇÃO DO ACORDE 39
3.4. ANÁLISE POR BANCO DE FILTROS DIGITAIS 39
3.4.1. UTILIZAÇÃO DA JANELA DE KAISER PARA O PROJETO DE UM FILTRO PASSA-FAIXA 41
3.5. REPRESENTANDO AS COMPONENTES DO SOM COMO UMA IMAGEM 44
3.5.1. REPRESENTAÇÃO POR UMA IMAGEM BINÁRIA 46
4. MÉTODO DE IDENTIFICAÇÃO DE NOTAS E ACORDES 49
4.1. A ETAPA DE PRÉ-PROCESSAMENTO DO SINAL DE ÁUDIO 52
4.2. DECOMPOSIÇÃO 53
4.2.1. IMPLEMENTAÇÃO DO FILTRO DIGITAL USANDO JANELA DE KAISER 53
4.2.2. CONSTRUÇÃO DE UMA MATRIZ UTILIZANDO FILTROS DE KAISER 59
4.3. CONVERSÃO MATRIZ - IMAGEM BINÁRIA 60
4.3.1. CONVERSÃO DA MATRIZ DE ÁUDIO PARA IMAGEM MONOCROMÁTICA 60
4.3.2. APLICANDO O MÉTODO DE OTSU PARA BINARIZAÇÃO DA IMAGEM 61
4.4. AJUSTES E REPRESENTAÇÃO DA IMAGEM BINÁRIA 63
4.4.1. CONEXÃO ENTRE OS PIXELS 63
4.4.2. CONDIÇÃO DE ELEGIBILIDADE 66
4.5. SOBREPOSIÇÃO TEMPORAL 68
4.5.1. O MÉTODO DE VARREDURA COMBINADA 69
4.5.2. O MÉTODO DE EMPACOTAMENTO DOS CONJUNTOS 71
4.6. COMPOSIÇÃO DOS RESULTADOS 74
4.6.1. REPRESENTAÇÃO FINAL 77
5. SIMULAÇÕES E RESULTADOS 79
5.1. SIMULAÇÕES OBTIDAS ATRAVÉS DE PIANO VIRTUAL 79
5.2. ANÁLISE ESTATÍSTICA 90
5.2.1. TAXAS DE ACERTOS 90
5.2.2. TEMPO DE PROCESSAMENTO 91
5.2.3. TEMPO DE EXECUÇÃO 93
6. CONCLUSÕES E TRABALHOS FUTUROS 95
APÊNDICE A: TEORIA MUSICAL 98
PROPRIEDADES DA MÚSICA 98
TEORIA MUSICAL 99
APÊNDICE B: PROJETOS DE FILTROS FIR POR JANELAS 103
PROJETO DE FILTROS DIGITAIS DE RESPOSTA FINITA (FIR) 103
IMPLEMENTAÇÃO DE FILTROS FIR COM FUNÇÕES-JANELA 104
APÊNDICE C: O MÉTODO DE LIMIARIZAÇÃO POR OTSU 113
BINARIZAÇÃO POR LIMIAR DE OTSU 113
ANEXO I: ARTIGOS PUBLICADOS 120
32º CONGRESSO NACIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL (CNMAC 2009) 120
9º CONGRESSO DE ENGENHARIA E ÁUDIO (AES 2011) 120
ANEXO II: CÓDIGO FONTE 123
REFERÊNCIAS 136
SOFTWARES E APLICATIVOS UTILIZADOS 139
LISTA DE FIGURAS
FIGURA 2.1: ONDA SENOIDAL. ............................................................................................................. 17
FIGURA 2.2: ONDA SENOIDAL, EM DESTAQUE, SEU PERÍODO. .......................................................... 18
FIGURA 2.3: ESPECTRO DE UM SINAL NO DOMÍNIO DA FREQUÊNCIA. ............................................. 18
FIGURA 2.4: FORMA GERAL DA ENVOLTÓRIA DE UM SINAL DE ÁUDIO. ........................................... 19
FIGURA 2.5: ACORDES BÁSICOS (DE IGARATINGA, 2006). ................................................................... 21
FIGURA 2.6: ALGUNS ACORDES DISSONANTES (DE IGARATINGA, 2006). ........................................... 25
FIGURA 3.1: REPRESENTAÇÃO DE UMA IMAGEM MONOCROMÁTICA. .............................................. 28
FIGURA 3.2: REPRESENTAÇÃO DE UM SINAL DE ÁUDIO. ................................................................... 29
. FIGURA 3.3: CÁLCULO DO ESPECTRO DE UM SINAL DE ÁUDIO COMPLETO. ................................. 31
. FIGURA 3.4.1: CÁLCULO DO ESPECTRO DE UM SINAL DE ÁUDIO, TRECHO 1. ................................ 31
FIGURA 3.5: ESTRUTURA DA JANELA DE 50MS PARA O MÉTODO DE DETECÇÃO NOTA A NOTA (BORDA INICIAL, PARTE CENTRAL, BORDA DE DESCIDA). A IDEIA É EXPLORAR O “ATAQUE”, “PLATÔ” E “DECRESCENDO”. ........................................... 33
FIGURA 3.6: ILUSTRAÇÃO DO AVANÇO DA JANELA DESLIZANTE. ..................................................... 33
FIGURA 3.7: DIAGRAMA DE ESTADOS PARA AS CONDIÇÕES DE IDENTIFICAÇÃO DO TRECHO. O ESTADO A CORRESPONDE AO “ATAQUE” (INÍCIO DE UMA NOTA). O ESTADO B CORRESPONDE AO “PLATÔ” (PARTE DE ESTADO PERMANENTE EM QUE A NOTA SOA) E O ESTADO C CORRESPONDE AO “DECRESCENDO” (FINAL DE UMA NOTA). A DURAÇÃO DA NOTA PARTICULAR, ORIUNDA DE UM INSTRUMENTO ESPECÍFICO, TEM TEMPOS DE ESTADA DIFERENTES EM CADA ESTADO. A MANEIRA DE CONTROLAR O TAMANHO CORRESPONDE AO TEMPO DE VISITAÇÃO EM UM ESTADO DA CADEIA. ................................................................ 34
FIGURA 3.8: EXEMPLO DE SINAL DE ÁUDIO DECOMPOSTO EM 8 COMPONENTES. ......................... 40
FIGURA 3.9: EXEMPLO DE UMA FUNÇÃO JANELA DE KAISER MOSTRADA NO DOMÍNIO DO TEMPO E DA FREQUÊNCIA COM M=1222 E COM PARÂMETRO Β=6,2043. .................. 43
FIGURA 3.10: RESPOSTA AO IMPULSO DO FILTRO RESULTANTE SEGUIDA DE SUA RESPOSTA EM FREQUÊNCIA. .......................................................................................................... 44
FIGURA 3.11: IMAGEM ILUSTRATIVA DA MATRIZ-IMAGEM. ............................................................... 46
FIGURA 3.12: IMAGEM OBTIDA A PARTIR DA MATRIZ DA FIGURA 3.11 (COMPONENTES DE MAIOR ENERGIA SÃO REPRESENTADAS POR CORES MAIS PRÓXIMAS DO BRANCO, AO PASSO QUE AS COMPONENTES DE MENOR ENERGIA POR CORES MAIS PRÓXIMAS DO PRETO). ........................................................................................ 46
FIGURA 3.13: IMAGEM OBTIDA A PARTIR DA BINARIZAÇÃO DA IMAGEM DA FIGURA 3.12 (O MÉTODO DE BINARIZAÇÃO UTILIZADO FOI O DE OTSU ). .......................................... 47
FIGURA 4.1: DIAGRAMA DE BLOCOS DO PROCESSO DE RECONHECIMENTO. .................................. 52
FIGURA 4.2: MODELO DO FILTRO ....................................................................................................... 54
FIGURA 4.3: IMAGEM ILUSTRATIVA DA JANELA KAISER COM SEUS PARÂMETROS EM DESTAQUE. .................................................................................................................... 55
FIGURA 4.4: GRÁFICO DA JANELA DE KAISER COM M = 1588 E Β = 6,20426 ...................................... 56
FIGURA 4.5: DESCRIÇÃO GRÁFICA DE ALGUNS FILTROS PROJETADOS CONFORME ESPECIFICAÇÃO. ........................................................................................................... 59
FIGURA 4.6: ESPECTRO DE ENERGIA DE UM SINAL DE ÁUDIO CONSTITUÍDO DE TRÊS NOTAS MUSICAIS. ...................................................................................................................... 60
FIGURA 4.7: IMAGEM MONOCROMÁTICA DE UMA MATRIZ CONSTITUÍDA POR TRÊS NOTAS MUSICAIS. A IMAGEM POSSUI RESOLUÇÃO DE OITO BITS POR PIXEL EQUIVALENTE A UM TAMANHO DE 84×N BYTES. ....................................................... 61
FIGURA 4.8: IMAGEM BINÁRIA DE UMA MATRIZ CONSTITUÍDA POR TRÊS NOTAS MUSICAIS. A IMAGEM POSSUI RESOLUÇÃO DE UM BIT POR PIXEL, EQUIVALENTE A UM TAMANHO DE 84×N BITS. (CADA SEGMENTO BRANCO REPRESENTA A
PRESENÇA DE UMA NOTA NAQUELE DADO INSTANTE E CADA COLUNA ONDE ELES APARECEM DENOTA O CÓDIGO DA NOTA ALI PRESENTE). ............................... 62
FIGURA 4.9: MATRIZ REPRESENTANDO A IMAGEM BINÁRIA DA FIGURA 3.11. .................................. 64
FIGURA 4.10: MATRIZ DE FREQUÊNCIAS RELATIVAS PRESENTES EM INSTANTES CONTÍNUOS DE TEMPO. .................................................................................................................... 64
FIGURA 4.11: MATRIZ REPRESENTANDO A IMAGEM BINÁRIA APÓS APLICAÇÃO DO ALGORITMO DE CONECTIVIDADE ENTRE OS PIXELS. ................................................. 64
FIGURA 4.12: TRECHO DA MATRIZ DE FREQUÊNCIAS RELATIVAS PRESENTES EM INSTANTES CONTÍNUOS DE TEMPO. A FIGURA MOSTRA APENAS ALGUNS BANCOS (45 A 52). ................................................................................................................................. 65
FIGURA 4.13: PROCESSO DE CONEXÃO ENTRE PIXELS, APLICADO À IMAGEM DA FIGURA 4.8. UM ZOOM DIGITAL DEMONSTRA COM CLAREZA A PRESENÇA DE INFORMAÇÕES NAS LINHAS QUE CARACTERIZAM CADA NOTA. ................................ 66
FIGURA 4.14: EXEMPLO DE OCORRÊNCIAS DE NOTAS MUSICAIS. ..................................................... 67
FIGURA 4.15: EXEMPLO DE OCORRÊNCIAS DE NOTAS MUSICAIS APÓS APLICAÇÃO DA CONDIÇÃO DE ELEGIBILIDADE. .................................................................................. 68
FIGURA 4.16: EXEMPLO ILUSTRATIVO DE IDENTIFICAÇÃO DE NOTAS/ACORDES EM TRECHO DE UM SINAL QUALQUER. ............................................................................................ 69
FIGURA 4.17: EXEMPLO DO SINAL DA FIGURA 4.16 SINCRONIZADO E AJUSTADO............................ 70
FIGURA 4.18: POSSIBILIDADES ENTRE DUAS NOTAS SELECIONADAS AO ACASO. ............................. 72
FIGURA 4.19: IMAGEM DO SOFTWARE EM FUNCIONAMENTO. .......................................................... 77
FIGURA 5.1: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P01.WAV ........................................ 80
FIGURA 5.2: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P02.WAV ........................................ 81
FIGURA 5.3: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P03.WAV ........................................ 82
FIGURA 5.4: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P04.WAV ........................................ 83
FIGURA 5.5: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P05.WAV ........................................ 84
FIGURA 5.6: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P06.WAV ........................................ 85
FIGURA 5.7: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P07.WAV ........................................ 86
FIGURA 5.8: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO P08.WAV ........................................ 87
FIGURA 5.9: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO SEQNOTAS.WAV ............................ 88
FIGURA 5.10: IMAGEM BINÁRIA INVERTIDA DE OCORRÊNCIAS, INCLUINDO HARMÔNICOS E NOTAS ADJACENTES, RESULTANTE DO ARQUIVO SEQACORDES.WAV ....................... 89
LISTA DE TABELAS
TABELA 2.1: MELODIA; GRAUS DOS ACORDES A PARTIR DA ESCALA NATURAL. .............................. 21
TABELA 2.2: NOTAS PERTENCENTES À ESCALA CROMÁTICA ............................................................. 22
TABELA 2.3: ACORDES MAIORES ......................................................................................................... 22
TABELA 2.4: ACORDES MENORES ........................................................................................................ 23
TABELA 2.5: ACORDES COM DIMINUTA .............................................................................................. 23
TABELA 2.6: ACORDES AUMENTADOS ................................................................................................ 24
TABELA 3.1: PSEUDOCÓDIGO PARA DETECÇÃO DE NOTAS ISOLADAS. ............................................ 35
TABELA 3.2: TABELA REPRESENTANDO AS FREQUÊNCIAS SONORAS EM ESCALA TEMPERADA (7 CASAS) ....................................................................................................................... 36
TABELA 3.3: TABELA REPRESENTANDO AS LARGURAS FREQUENCIAIS SONORAS DE CADA JANELA EM ESCALA TEMPERADA (07 CASAS). OBSERVA-SE QUE AS JANELAS APRESENTAM LARGURAS VARIÁVEIS À MEDIDA QUE CAMINHA SOBRE AS DIVERSAS POSSÍVEIS NOTAS. ........................................................................................ 38
TABELA 3.4: TABELA COM AS 83 JANELAS; MARCA O INÍCIO E O FINAL DA FREQUÊNCIA DE CADA UMA. .................................................................................................................... 39
TABELA 3.5: AMOSTRAS DO SINAL 3.12 COM TAXA DE AMOSTRAGEM DE 100 HZ (INTERVALO 120MS) ............................................................................................................................ 45
TABELA 3.6: AMOSTRAS DO SINAL 3.12.X COM TAXA DE AMOSTRAGEM DE 100 HZ (INTERVALO 120MS) ...................................................................................................... 45
TABELA 3.7: AMOSTRAS DE ENERGIA OBTIDAS A PARTIR DA TABELA 3.6. ........................................ 45
TABELA 4.1: FREQUÊNCIAS SONORAS: OBSERVA-SE QUE AO PASSAR DE UMA NOTA PARA OUTRA SUA FREQUÊNCIA FUNDAMENTAL É MULTIPLICADA POR 122. .................... 49
TABELA 4.2: FUNÇÃO IDENTIFICADORA DE NOTAS MUSICAIS EM FUNÇÃO DAS SUAS RESPECTIVAS CIFRAS, COM CÓDIGO REPRESENTATIVO DE CADA UMA DELAS. ...... 50
TABELA 4.3: EXEMPLOS DE ACORDES DISSONANTES BÁSICOS FORMADOS POR MAIS DE TRÊS NOTAS. .................................................................................................................. 50
TABELA 4.4: ACORDES BÁSICOS FORMADOS DE TÔNICA, TERÇA E QUINTA. ................................... 51
TABELA 4.5: TABELA DE FREQUÊNCIAS EM HZ (INICIAL E FINAL) DE CADA FILTRO. ...................... 57
TABELA 4.6: TABELA DE FREQUÊNCIAS EM RADIANO (INICIAL E FINAL) DE CADA FILTRO. (FS = 8 KHZ). .................................................................................................................. 57
TABELA 4.7: MODELO FINAL DE DISPOSIÇÃO DOS RESULTADOS ..................................................... 71
TABELA 4.8: INFORMAÇÕES CONTIDAS NA GRAVAÇÃO (“ARQ1.WAV” )............................................ 73
TABELA 4.9: REGRA DE COMPOSIÇÃO DOS ACORDES. ...................................................................... 75
TABELA 4.10: INTERVALO DE FORMAÇÃO DE ALGUNS ACORDES. .................................................... 76
TABELA 5.1: CONTEÚDO DOS ARQUIVOS GRAVADOS POR PIANO .................................................... 79
TABELA 5.2: ELEMENTOS IDENTIFICADOS PARA P01.WAV ................................................................ 81
TABELA 5.3: ELEMENTOS IDENTIFICADOS PARA P02.WAV ................................................................ 81
TABELA 5.4: ELEMENTOS IDENTIFICADOS PARA P03.WAV ................................................................ 82
TABELA 5.5: ELEMENTOS IDENTIFICADOS PARA P04.WAV ................................................................ 83
TABELA 5.6: ELEMENTOS IDENTIFICADOS PARA P05.WAV ................................................................ 84
TABELA 5.7: ELEMENTOS IDENTIFICADOS PARA P06.WAV ................................................................ 85
TABELA 5.8: ELEMENTOS IDENTIFICADOS PARA P07.WAV ................................................................ 86
TABELA 5.9: ELEMENTOS IDENTIFICADOS PARA P08.WAV ................................................................ 87
TABELA 5.10: ELEMENTOS IDENTIFICADOS PARA SEQNOTAS.WAV .................................................. 88
TABELA 5.11: ELEMENTOS IDENTIFICADOS PARA SEQACORDES.WAV ............................................. 89
TABELA 5.12: RESULTADOS FINAIS. .................................................................................................... 90
TABELA 5.13: TABELA DE TEMPO DE PROCESSAMENTO.................................................................... 92
INTRODUÇINTRODUÇINTRODUÇINTRODUÇÃÃÃÃOOOO
“Pouco importam as notas na música, o que conta são as sensações produzidas por elas.”
Leonid Pervomaisky.
Introdução
14
1. INTRODUÇÃO
1.1. VISÃO GLOBAL DO SISTEMA
Neste trabalho é proposta uma nova abordagem para a identificação de notas e
acordes em registros de violão e piano gerados a partir da gravação em um sintetizador
digital, software, ou por meio do próprio instrumento. O método apresentado combina
técnicas de processamento de sinais de áudio e de imagem e pode ser dividido em cinco
etapas. Na primeira, o arquivo de áudio é processado em um banco de filtros digitais por
janelas Kaiser (Oppenheim, Schafer, & with Buck, 1999), compostos por 84 filtros passa-
faixas cujas frequências centrais são as próprias frequências das notas musicais em escala
temperada (a passagem pelo banco de filtros decompõe o sinal de áudio em componentes
de energia e os armazenam em uma matriz); na segunda etapa, a matriz gerada é convertida
em uma imagem em tons de cinza com 256 níveis, sendo então binarizada por limiar de
Otsu (Gonzales & Woods, 2010); na terceira, são realizados ajustes na imagem binária
utilizando técnicas de conectividade entre os pixels (Gonzales & Woods, 2010) a fim de
remover todas as oscilações presentes e manter apenas os intervalos nos quais as
notas/acordes permanecem fixas; na quarta, analisa-se sua sobreposição temporal, com o
objetivo de distinguir entre nota isolada, notas sobrepostas ou um acorde; finalmente, na
última etapa, é feita uma análise na saída expressa da etapa anterior a fim de compor em
tela os acordes ou notas reconhecidas pelo sistema. Vale mencionar que o sistema foi
projetado para escala temperada.
Introdução
15
1.1. OBJETIVO
Desenvolver um software em plataforma Matlab1 capaz de ler um arquivo de áudio
gravado no formato wav, o qual contém notas e/ou acordes musicais (com ou sem
sobreposição temporal) e identificá-las.
A proposta é introduzir uma técnica que seja eficaz tanto no tempo quanto na
frequência, sem utilização de nenhuma rede neuronal, e também sem trabalhar diretamente
com a transformada de Fourier (de Oliveira, 2007, pp. 89-166), pois esta limita a análise
ao domínio frequencial, perdendo informações temporais.
A ideia consiste em projetar um banco de filtros digitais passa-faixas que opere em
toda faixa de frequência a qual o sistema estará projetado para reconhecer. Cada filtro é um
“filtro passa-faixa” com largura de banda de passagem proporcional à escala temperada e
com frequência central na “nota alvo”.
O banco de filtros se baseia no mesmo princípio da transformada de Wavelets (de
Oliveira, 2007, pp. 171-194), que, ao contrário da transformada de Fourier, faz uma análise
com resolução adequada no domínio tempo–frequência do sinal analisado.
1.2. LIMITAÇÕES
Este sistema limita-se a detectar notas e acordes musicais gravados em arquivos wav
que contenham frequências de interesse numa faixa de 32 Hz a 4 kHz, devido à alta
complexidade computacional para síntese dos diversos filtros digitais. Entretanto, o
sistema é facilmente estendido para toda faixa audível, 0 a 20 kHz.
Limita-se a reconhecer apenas Notas/Acordes de um instrumento tocado por vez,
com duração mínima de 50 milissegundos e cujas notas de formação possam ser
representadas por sua fundamental.
Muito embora os testes tenham sido realizados para piano e violão e a análise
estatística feita com base em piano, a técnica poderá ser estendida para os diversos
instrumentos que soam em frequências pertencentes à escala temperada.
1 Registered Trademarks of the MathWorks.TM
CAPÍTULO CAPÍTULO CAPÍTULO CAPÍTULO 2222
TRATO AUDITIVO E MÚSTRATO AUDITIVO E MÚSTRATO AUDITIVO E MÚSTRATO AUDITIVO E MÚSICAICAICAICA
“Na vibração de cada uma de nossas músicas teremos acessos indeterminados a vários de
nossos universos, cada um vivenciando, particularmente, sua constante expansão.”
Edu Hessen
2. TRATO AUDITIVO E MÚS
Os sons que ouvimos são produzidos por
que por sua vez se propagam pelo espaço até que cheguem aos nossos ouvidos
chegarem aos nossos ouvidos, essas ondas de vibração são levadas ao sistema nervoso
central, onde são processadas e aí então as percebe
tipos de sons produzidos pela natureza e audíveis ao ser humano, a música é então a
expressão máxima de sensibilidade, devido
Quando um objeto vibra de forma
produzido por esta vibração
um trovão. Logo, o ruído é o resultado da soma de um número muito grande de
frequências, tornando muito difícil exprimi
de forma ordenada e constante, produzindo uma onda mais pura, pode ser conceituada
como uma nota. As notas musicais possuem poucas
análise detalhada destes sons
nos itens subsequentes.
2.1. PROPRIEDADES DO SOM
2.1.1. Intensidade
A amplitude das oscilações de pressão do ar, chamada de intensidade, é o
afastamento da forma de onda a partir da origem, na direção vertical
verificado na Figura 2.1.
A potência do som pode ser definida como a percepção dessa intensidade. Quanto
maior a amplitude da onda, maior é a quantidade de energia que ela carrega e,
consequentemente, maior é o seu volume sonoro
Trato Auditivo e Música
TRATO AUDITIVO E MÚSICA
sons que ouvimos são produzidos por vibrações que excitam as moléculas de ar
que por sua vez se propagam pelo espaço até que cheguem aos nossos ouvidos
chegarem aos nossos ouvidos, essas ondas de vibração são levadas ao sistema nervoso
central, onde são processadas e aí então as percebemos como sons. Dentre os diferentes
tipos de sons produzidos pela natureza e audíveis ao ser humano, a música é então a
sensibilidade, devido à forma agradável que soa.
Quando um objeto vibra de forma completamente desordenada, diz
produzido por esta vibração é um ruído, como por exemplo, o barulho de uma explosão ou
o ruído é o resultado da soma de um número muito grande de
, tornando muito difícil exprimi-lo matematicamente; por outro lado, a v
de forma ordenada e constante, produzindo uma onda mais pura, pode ser conceituada
como uma nota. As notas musicais possuem poucas frequências, o que nos permite uma
análise detalhada destes sons, como intensidade, altura, entre outros, melhores de
PROPRIEDADES DO SOM
A amplitude das oscilações de pressão do ar, chamada de intensidade, é o
afastamento da forma de onda a partir da origem, na direção vertical
A potência do som pode ser definida como a percepção dessa intensidade. Quanto
maior a amplitude da onda, maior é a quantidade de energia que ela carrega e,
te, maior é o seu volume sonoro (Backus, 1997).
FIGURA 2.1: Onda senoidal.
Trato Auditivo e Música 17
vibrações que excitam as moléculas de ar,
que por sua vez se propagam pelo espaço até que cheguem aos nossos ouvidos. Ao
chegarem aos nossos ouvidos, essas ondas de vibração são levadas ao sistema nervoso
mos como sons. Dentre os diferentes
tipos de sons produzidos pela natureza e audíveis ao ser humano, a música é então a
completamente desordenada, diz-se que o som
o barulho de uma explosão ou
o ruído é o resultado da soma de um número muito grande de
por outro lado, a vibração
de forma ordenada e constante, produzindo uma onda mais pura, pode ser conceituada
, o que nos permite uma
, entre outros, melhores detalhados
A amplitude das oscilações de pressão do ar, chamada de intensidade, é o
afastamento da forma de onda a partir da origem, na direção vertical, como pode ser
A potência do som pode ser definida como a percepção dessa intensidade. Quanto
maior a amplitude da onda, maior é a quantidade de energia que ela carrega e,
2.1.2. Frequência
O número de vezes que as oscilações ocorrem, ou seja, quantos ciclos
acontecem por unidade de tempo, é chamado de frequência e a sua percepção é co
por tom. Quanto maior é
quando mais baixa é a frequência, mais grave o som será. Para descrever a fre
utilizada a unidade Hertz (Hz), onde
segundo. Ao observar a Figura
unidades, o segundo em 8 e assim por diante
FIGURA
O som pode ser representado por uma
de componentes de Fourier e cada uma corresponde a uma determinada frequência
múltipla da componente inicial. Essas componentes formam uma série conhecida como
série harmônica, onde o harmônico de ordem zero é ch
fundamental, o segundo é denominado harmônico de primeira ordem ou primeiro
harmônico, o terceiro é chamado segundo harmônico e assim sucessivamente
Figura 2.3. (Lacerda, 1996)
FIGURA 2
Diferentes tipos de instrumentos
específicos, dependentes da frequência. As características espectrais de um instrumento
Trato Auditivo e Música
O número de vezes que as oscilações ocorrem, ou seja, quantos ciclos
acontecem por unidade de tempo, é chamado de frequência e a sua percepção é co
a frequência de um som, mais agudo ele será
a frequência, mais grave o som será. Para descrever a fre
utilizada a unidade Hertz (Hz), onde um Hz corresponde a um ciclo de vibração por
Figura 2.2 é possível ver que o primeiro ciclo termina em 4
em 8 e assim por diante (Backus, 1997).
FIGURA 2.2: Onda senoidal, em destaque, seu período.
O som pode ser representado por uma soma de diversas ondas individuais chamadas
de componentes de Fourier e cada uma corresponde a uma determinada frequência
múltipla da componente inicial. Essas componentes formam uma série conhecida como
série harmônica, onde o harmônico de ordem zero é chamado de frequência natural ou
fundamental, o segundo é denominado harmônico de primeira ordem ou primeiro
harmônico, o terceiro é chamado segundo harmônico e assim sucessivamente
(Lacerda, 1996).
2.3: Espectro de um sinal no domínio da frequência
Diferentes tipos de instrumentos musicais têm número de harmônicos diferentes e
específicos, dependentes da frequência. As características espectrais de um instrumento
Trato Auditivo e Música 18
O número de vezes que as oscilações ocorrem, ou seja, quantos ciclos completos
acontecem por unidade de tempo, é chamado de frequência e a sua percepção é conhecida
a frequência de um som, mais agudo ele será, do contrário,
a frequência, mais grave o som será. Para descrever a frequência é
Hz corresponde a um ciclo de vibração por
eiro ciclo termina em 4
soma de diversas ondas individuais chamadas
de componentes de Fourier e cada uma corresponde a uma determinada frequência
múltipla da componente inicial. Essas componentes formam uma série conhecida como
amado de frequência natural ou
fundamental, o segundo é denominado harmônico de primeira ordem ou primeiro
harmônico, o terceiro é chamado segundo harmônico e assim sucessivamente, conforme
domínio da frequência.
número de harmônicos diferentes e
específicos, dependentes da frequência. As características espectrais de um instrumento
também dependem da intensidade desta frequência. Um instrumento musical conhecido
por Fagote, por exemplo, chega a apres
fundamental 523 Hz, enquanto que apresenta dez harmônicos quando soa 82
1996). Esses harmônicos são combinados para formar uma onda complexa através de um
processo conhecido como síntese de Fourier. O processo inverso, que é determinar os
harmônicos que compõem essas ondas complexas, é chamado de análise de Fourier.
Em uma amostra de som onde a frequência fundamental não esteja presente por
algum motivo, então o val
detectados nessa amostra determina a frequência fundamental
2001).
2.1.3. Timbre
Cada tipo de instrumento musical tem uma espécie de assinatura, um conjunto d
características sonoras associadas a ele. Embora possam parecer subjetivas, elas tem uma
descrição matemática extremamente precisa que torna cada tipo de instrumento único. A
mesma frequência emitida por um violão soa diferente quando produzida por um pi
Isto acontece porque embora a frequência fundamental seja a mesma em ambos os
instrumentos, o som de instrumentos musicais não é perfeitamente periódico. Portanto, as
amplitudes e o tempo de duração de cada um dos harmônicos presentes no som resultant
podem variar independentemente. A combinação dessas duas propriedades tem o nome de
timbre (Dodge & Jerse, 1997)
A síntese sonora de timbres de instrumentos musicais depende, basicamente, do
conjunto de harmônicos utilizado
Atack, Decay, Sustain, Release (ataque, decaimento, nível de sustentação e término
ADSR). Cada instrumento musical possui um envelope sonoro característico não só nos
transientes de ADSR, como tamb
2.4. (Dovicchi, 1999).
FIGURA 2
Trato Auditivo e Música
também dependem da intensidade desta frequência. Um instrumento musical conhecido
por Fagote, por exemplo, chega a apresentar apenas dois harmônicos ao soar a
Hz, enquanto que apresenta dez harmônicos quando soa 82
Esses harmônicos são combinados para formar uma onda complexa através de um
conhecido como síntese de Fourier. O processo inverso, que é determinar os
harmônicos que compõem essas ondas complexas, é chamado de análise de Fourier.
Em uma amostra de som onde a frequência fundamental não esteja presente por
algum motivo, então o valor da diferença absoluta de dois harmônicos adjacentes
detectados nessa amostra determina a frequência fundamental (Haykin & Van Veen,
Cada tipo de instrumento musical tem uma espécie de assinatura, um conjunto d
características sonoras associadas a ele. Embora possam parecer subjetivas, elas tem uma
descrição matemática extremamente precisa que torna cada tipo de instrumento único. A
mesma frequência emitida por um violão soa diferente quando produzida por um pi
Isto acontece porque embora a frequência fundamental seja a mesma em ambos os
instrumentos, o som de instrumentos musicais não é perfeitamente periódico. Portanto, as
amplitudes e o tempo de duração de cada um dos harmônicos presentes no som resultant
podem variar independentemente. A combinação dessas duas propriedades tem o nome de
(Dodge & Jerse, 1997).
A síntese sonora de timbres de instrumentos musicais depende, basicamente, do
conjunto de harmônicos utilizados e do envelope sonoro, que é formado por transientes de
Atack, Decay, Sustain, Release (ataque, decaimento, nível de sustentação e término
ADSR). Cada instrumento musical possui um envelope sonoro característico não só nos
transientes de ADSR, como também na altura do som emitido, como mostrado na
2.4: Forma geral da envoltória de um sinal de áudio.
Trato Auditivo e Música 19
também dependem da intensidade desta frequência. Um instrumento musical conhecido
entar apenas dois harmônicos ao soar a frequência
Hz, enquanto que apresenta dez harmônicos quando soa 82 Hz (Lacerda,
Esses harmônicos são combinados para formar uma onda complexa através de um
conhecido como síntese de Fourier. O processo inverso, que é determinar os
harmônicos que compõem essas ondas complexas, é chamado de análise de Fourier.
Em uma amostra de som onde a frequência fundamental não esteja presente por
or da diferença absoluta de dois harmônicos adjacentes
(Haykin & Van Veen,
Cada tipo de instrumento musical tem uma espécie de assinatura, um conjunto de
características sonoras associadas a ele. Embora possam parecer subjetivas, elas tem uma
descrição matemática extremamente precisa que torna cada tipo de instrumento único. A
mesma frequência emitida por um violão soa diferente quando produzida por um piano.
Isto acontece porque embora a frequência fundamental seja a mesma em ambos os
instrumentos, o som de instrumentos musicais não é perfeitamente periódico. Portanto, as
amplitudes e o tempo de duração de cada um dos harmônicos presentes no som resultante
podem variar independentemente. A combinação dessas duas propriedades tem o nome de
A síntese sonora de timbres de instrumentos musicais depende, basicamente, do
s e do envelope sonoro, que é formado por transientes de
Atack, Decay, Sustain, Release (ataque, decaimento, nível de sustentação e término -
ADSR). Cada instrumento musical possui um envelope sonoro característico não só nos
como mostrado na Figura
áudio.
Trato Auditivo e Música
20
A envoltória indica como a energia do som se distribui no tempo; ela depende de
como o som é produzido no instrumento, logo, existe uma envoltória para cada parcial.
Alguns instrumentos têm rápido ataque e decaimento e não tem sustentação. A
duração (forma da envoltória) pode também se alterar segundo a maneira de tocar.
2.1.4. Ruído
O ruído é um sinal indesejado com espectro de frequência pouco harmônico. Eles são
inerentes aos equipamentos de áudio ou outros equipamentos externos. Em geral, há dois
tipos de ruídos mais comuns em sinais de áudio; o ruído rosa predominante na faixa
musical de baixas frequências, e o ruído branco que está presente em todas as faixas,
porém ambos apresentam baixa variância como característica.
2.1.5. Potência Sonora
A potência sonora é caracterizada como sendo o nível de intensidade, ou volume do
áudio, e pode ser designada em decibéis (dB). Um decibel (dB) é igual à menor mudança
de volume perceptível e é uma medida relativa entre tensões, correntes, potências ou
pressões acústicas.
2.1.6. Altura
A altura corresponde à frequência musical presente em um trecho da melodia. Na
música, cada intervalo da altura é conceituado com um nome denominado nota musical
(exemplo: Lá = 220 Hz).
2.2. ESCALA DE AFINAÇÃO TEMPERADA
Instrumentos “não temperados” como o violino e o violoncelo são aqueles que não
têm uma afinação fixa utilizando a escala natural, enquanto que o violão, guitarra,
cavaquinho, piano e teclado, entre outros, são os de afinação fixa ou “temperada”. A mais
recente música ocidental usa uma escala de 12 intervalos, chamada de escala cromática,
onde todos os intervalos são rigorosamente iguais.
Assim, uma oitava é dividida em 12 intervalos com razões de frequências idên
1 2 3 4 5 6 7 8 9 10 11 12 12 1, , , , , , , , , , , ; 2f f f f f f f f f f f f onde f f
Desta forma, a distância entre duas frequências adjacentes é dada por:
12
1 2i if f+ =
2.3. FORMAÇÃO DE ACORDES
Acordes são conjuntos de notas musicais tocadas de forma simultânea. Eles
formados pela parte melódica e pelo baixo.
• Melodia é a parte do acorde formada pela união de graus
• Baixo é a parte do acorde cuja função é de dar "peso" na música.
TABELA 2.1: Notas C Graus 1ª
Sendo assim, montaremos o acorde de Dó como exemplo. Todo acorde é formado
pelos 1°, 3° e 5° graus, ou seja, Dó é formado por C, E e G, e todas os outros acordes são
formados da mesma maneira
FIGURA
Trato Auditivo e Música
Assim, uma oitava é dividida em 12 intervalos com razões de frequências idên
1 2 3 4 5 6 7 8 9 10 11 12 12 1, , , , , , , , , , , ; 2f f f f f f f f f f f f onde f f=
Desta forma, a distância entre duas frequências adjacentes é dada por:
CORDES
Acordes são conjuntos de notas musicais tocadas de forma simultânea. Eles
formados pela parte melódica e pelo baixo.
Melodia é a parte do acorde formada pela união de graus, Tabela 2
Baixo é a parte do acorde cuja função é de dar "peso" na música.
: Melodia; graus dos acordes a partir da escala natural. D E F G 2ª 3ª 4ª 5ª
Sendo assim, montaremos o acorde de Dó como exemplo. Todo acorde é formado
graus, ou seja, Dó é formado por C, E e G, e todas os outros acordes são
formados da mesma maneira, Figura 2.5.
FIGURA 2.5: Acordes básicos (de Igaratinga, 2006).
Trato Auditivo e Música 21
Assim, uma oitava é dividida em 12 intervalos com razões de frequências idênticas.
1 2 3 4 5 6 7 8 9 10 11 12 12 1, , , , , , , , , , , ; 2f f f f f f f f f f f f onde f f=
Desta forma, a distância entre duas frequências adjacentes é dada por:
(2.1)
Acordes são conjuntos de notas musicais tocadas de forma simultânea. Eles são
2.1;
elodia; graus dos acordes a partir da escala natural. A B 6ª 7ª
Sendo assim, montaremos o acorde de Dó como exemplo. Todo acorde é formado
graus, ou seja, Dó é formado por C, E e G, e todas os outros acordes são
Trato Auditivo e Música
22
As nomenclaturas dos acordes são dadas a partir de sua lei de formação que se
baseia na escala cromática, Tabela 2.2, e são subdivididas em diversos grupos.
TABELA 2.2: Notas pertencentes à escala cromática Notas C C# D D# E F F# G G# A A# B C Semitom 0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 5,5 6 Distância 1 1 0,5 1 1 1 0,5
2.3.1. Acordes Maiores
Os acordes maiores, constituídos de três notas, são os mais comuns de todos e são
formados a partir da primeira nota que dá nome ao acorde mais as notas afastadas dela de
dois e três tons e meio, respectivamente. Sua nomenclatura é representada pela letra “M”
maiúscula, opcionalmente, após a letra que representa a cifra da nota conforme Tabela 2.3.
TABELA 2.3: Acordes maiores Nome do Acorde Nomenclatura Composição
Dó Maior CM ou C 2 1,5C E G←→ ←→ Ré Maior DM ou D 2 1,5#D F A←→ ←→ Mi Maior EM ou E 2 1,5#E G B←→ ←→ Fá Maior FM ou F 2 1,5F A C←→ ←→ Sol Maior GM ou G 2 1,5G B D←→ ←→ Lá Maior AM ou A 2 1,5#A C E←→ ←→ Si Maior BM ou B 2 1,5# #B D F←→ ←→
2.3.2. Acordes Menores
Os acordes menores constituídos de três notas são formados a partir da primeira nota
que dá nome ao acorde mais as notas afastadas dela de um e meio e três e meio tons,
respectivamente. Sua nomenclatura é representada pela letra “m” minúscula após a letra
que representa a cifra da nota conforme Tabela 2.4.
Trato Auditivo e Música
23
TABELA 2.4: Acordes menores Nome do Acorde Nomenclatura Composição
Dó Menor Cm 1,5 2#C D G←→ ←→ Ré Menor Dm 1,5 2D F A←→ ←→ Mi Menor Em 1,5 2E G B←→ ←→ Fá Menor Fm 1,5 2#F G C←→ ←→ Sol Menor Gm 1,5 2#G A D←→ ←→ Lá Menor Am 1,5 2A C E←→ ←→ Si Menor Bm 1,5 2 #B D F←→ ←→
2.3.3. Acordes Diminutos
Os acordes diminutos constituídos de três notas são formados a partir da primeira
nota que dá nome ao acorde mais as notas afastadas dela de um e meio e três tons,
respectivamente. Sua nomenclatura é representada pelo acrônimo “dim” após a letra que
representa a cifra da nota conforme Tabela 2.5.
TABELA 2.5: Acordes com diminuta Nome do Acorde Nomenclatura Composição
Dó com diminuta Cdim 1,5 1,5# #C D F←→ ←→ Ré com diminuta Ddim 1,5 1,5 #D F G←→ ←→ Mi com diminuta Edim 1,5 1,5 #E G A←→ ←→ Fá com diminuta Fdim 1,5 1,5#F G B←→ ←→ Sol com diminuta Gdim 1,5 1,5# #G A C←→ ←→ Lá com diminuta Adim 1,5 1,5 #A C D←→ ←→ Si com diminuta Bdim 1,5 1,5B D F←→ ←→
2.3.4. Acordes Aumentados
Os acordes aumentados constituídos de três notas são formados a partir da primeira
nota que dá nome ao acorde mais as notas afastadas dela de dois e quatro tons,
respectivamente. Sua nomenclatura é representada pelo acrônimo “aum” após a letra que
representa a cifra da nota conforme Tabela 2.6.
Trato Auditivo e Música
24
TABELA 2.6: Acordes aumentados Nome do Acorde Nomenclatura Composição
Dó aumentado Caum 2 2 #C E G←→ ←→ Ré aumentado Daum 2 2# #D F A←→ ←→ Mi aumentado Eaum 2 2#E G C←→ ←→ Fá aumentado Faum 2 2 #F A C←→ ←→ Sol aumentado Gaum 2 2 #G B D←→ ←→ Lá aumentado Aaum 2 2#A C F←→ ←→ Si aumentado Baum 2 2#B D G←→ ←→
2.3.5. Acordes Dissonantes
Dissonantes são acordes formados por mais de três notas, assim, para formar um
acorde dissonante, deve-se tomar um acorde básico e inserir uma ou mais notas da escala
cromática.
Existem diversos acordes dissonantes, dentre eles:
• Acordes com sétima;
• Acordes menores com sétima;
• Acorde maior com sétima e quinta aumentada;
• Acorde maior com nona;
• Acorde maior com décima primeira;
• Acorde maior com décima terceira;
• Acorde menor com quinta;
• Acorde menor com sexta;
• Dentre outros, Figura 2.6.
FIGURA 2.6
Trato Auditivo e Música
6: Alguns acordes dissonantes (de Igaratinga, 2006)
Trato Auditivo e Música 25
Igaratinga, 2006).
CAPÍTULO 3CAPÍTULO 3CAPÍTULO 3CAPÍTULO 3
TÉCNICASTÉCNICASTÉCNICASTÉCNICAS PARA PARA PARA PARA
RECONHECIMENTO DE RECONHECIMENTO DE RECONHECIMENTO DE RECONHECIMENTO DE PADRÕESPADRÕESPADRÕESPADRÕES
MUSICAIS MUSICAIS MUSICAIS MUSICAIS
“Apenas sete notas musicais são necessárias para se compor a mais bela sinfonia. No entanto,
basta um gênio para colocá-las no lugar certo.”
Antonio Luiz Macêdo
Técnicas para Reconhecimento de Padrões Musicais
27
3. TÉCNICAS PARA RECONHECIMENTO DE PADRÕES MUSICAIS
3.1. VISÃO GERAL
O estudo na área de análise e reconhecimento de padrões musicais vem se
intensificando nas últimas décadas, devido ao avanço tecnológico em processamento de
sinais. Dispositivos DSP (Digital Signal Processor) apresentam cada vez maior capacidade
de execução de cálculos computacionais complexos, efetuando grande número de
instruções em curtos intervalos de tempo. Considera-se natural, portanto, desenvolver
softwares que emulem o comportamento do homem, capazes de interpretar estímulos
sonoros. Estudos envolvendo processamento de sinais de áudio investigam a possibilidade
de descrever sons gerados a partir de instrumentos musicais utilizando modelos
matemáticos, desta forma tornando possível analisá-los e identificá-los.
Na literatura existe uma vasta quantidade de pesquisas realizadas com este propósito,
cada qual, utilizando técnicas distintas, algumas das quais são enunciadas: em (Szczupack
& Biscainho, 2009), o autor propõe uma estratégia de classificação baseada em redes
neuronais feed-forward de múltiplas camadas, treinadas com representações frequenciais
com transformadas com Q-constante (CQT); A técnica desenvolvida por (Ogasawara,
2008) também é baseada no treinamento de uma rede que extrai um vetor característico
contendo as energias da nota (fundamental e seus primeiros harmônicos), sendo a rede
constituída por duas camadas – a camada de segmentação e a camada de reconhecimento;
em (Ferreira, 2006), com objetivo similar, aborda-se o uso da transformada rápida de
Fourier para localização dos picos de frequência do sinal; em 2009, o autor deste trabalho
enunciou outra técnica utilizada para reconhecimento de notas musicais isoladas no tempo,
utilizando um diagrama de estados para segmentação das mesmas e a transformada rápida
de Fourier para o reconhecimento (Cordeiro Jr & de Oliveira, 2009). Em 2006, K. Lee
propôs um método de reconhecimento de acordes o qual denominou de EPCP – Enhanced
Pitch Class Profile – (Lee, 2006). Em (Lee & Slaney, 2006), os autores propuseram outro
método com base em cadeias de Markov ocultas. Em (Harte & Sandler, 2005), usou-se um
diagrama cromático de 36 bits para encontrar o valor de ajuste de entrada de áudio, usando
a distribuição das posições dos picos. Em (Fujishima, 1999), também foi descrito um
método para reconhecimento de acordes, baseado no mesmo principio seguido por Harte e
Sandler. O reconhecimento de acordes pode ser usado como uma ferramenta na elaboração
de aplicativos para transcrição automática de música (Tavares, Barbedo, & Lopes, 2008).
Técnicas para Reconhecimento de Padrões Musicais
28
3.2. PROCESSAMENTO DE SINAIS
A área de processamento de sinais é de extrema importância para o desenvolvimento
de aplicações que tratem sinais digitais, dentre elas: Processamento de imagens,
Processamento de sons, Processamento de sinais biomédicos, além da síntese e
representação dos mesmos.
Atualmente, com o avanço tecnológico, o aumento da capacidade computacional em
processar sinais digitais em curtos intervalos de tempo vem-se intensificando de forma a
permitir o desenvolvimento de diversas técnicas que demandam alta complexidade
computacional na área de processamento de sinais.
De uma forma geral, fontes externas realizam a aquisição de componentes do meio e
as representam como um sinal digital, como exemplo tem-se uma imagem adquirida
através de uma câmera fotográfica digital que por sua vez poderá ser representada
matematicamente como uma matriz, da mesma forma tem-se o som adquirido por um
microfone analógico, mas armazenado digitalmente, utilizando uma taxa de amostragem
especifica, podendo este ser representado matematicamente como um vetor de amostras.
3.2.1. Processamento de Imagens
Consiste em representar uma imagem digitalmente como uma função bidimensional
f(x, y), em que x e y são coordenadas espaciais (plano), e a amplitude de f em qualquer par
de coordenadas (x, y) é chamada de intensidade ou nível de cinza da imagem nesse ponto,
para imagens monocromáticas. O campo do processamento digital de imagens se refere ao
processamento de imagens por um computador digital. O tamanho da imagem é denotado
pelo número de pixels nela presente, ordem da matriz, e resolução, pela quantidade de bits
que representam cada um destes pixels, Figura 3.1.
FIGURA 3.1: Representação de uma imagem monocromática.
11 1
1
n
m mn
a a
a a
…
⋮ ⋱ ⋮
⋯
Técnicas para Reconhecimento de Padrões Musicais
29
A área de processamento de imagens é uma das áreas que apresenta maior número de
aplicações atualmente na engenharia, tais como: processamento de imagens radiográficas,
identificação de objetos e pessoas, reconhecimento de textos a partir de imagens
capturadas por um scanner, tratamento e melhoramento de imagens fotográficas, dentre
outras.
As técnicas utilizadas para tais fins são inúmeras e vão desde a aquisição, passando
pela filtragem espacial, segmentação, binarização e representação até a utilização de
técnicas de reconhecimento.
Neste trabalho, mais adiante, é apresentado uma técnica utilizando processamento de
imagens para reconhecimento de padrões musicais.
3.2.2. Processamento de Sons
Consiste em representar um som armazenado digitalmente em um computador digital
como uma função f(x), em que x é uma coordenada temporal e a amplitude de f em
qualquer um dos pontos x denota a intensidade do som naquele ponto. O número de pontos
presentes em um arquivo de áudio irá depender exclusivamente de sua duração e da taxa
em que foi amostrado tal sinal. A resolução ou qualidade do som está relacionada com a
quantidade de bits que representa cada ponto amostral, Figura 3.2.
FIGURA 3.2: Representação de um sinal de áudio.
Assim como na área de processamento de imagens, a área de processamento de sons
apresenta diversas aplicações, na quais temos: tratamento e edição para melhoramento do
áudio, masterização, mixagem, síntese de voz, reconhecimento e simulação de locutor,
identificação de sílabas vocálicas e não vocálicas, reconhecimento de padrões e gêneros
musicais, dentre outras.
1 2 1[ ]n na a a a−…
Técnicas para Reconhecimento de Padrões Musicais
30
As técnicas utilizadas para tais fins são inúmeras e vai desde a amostragem do sinal,
passando pela análise no domínio da frequência, utilização de filtros digitais, extração de
descritores até a utilização de técnicas de reconhecimento.
Um dos objetivos deste trabalho é utilizar técnicas de processamento de sinais de
áudio para realizar a análise de sinais de música através de filtros digitais de resposta finita
(FIR).
3.2.3. Análise de Fourier
Uma das ferramentas mais utilizadas no campo da Engenharia, sem dúvida, está
relacionada à análise de sinais no domínio de Fourier que visa computar as componentes
frequenciais presentes no mesmo. A transformada de Fourier, assim mais conhecida, é uma
ferramenta muito poderosa e suas aplicações são de deveras importância na análise de
sinais, sejam eles analógicos ou digitais.
Comumente, no campo de aplicações para computadores digitais é utilizado à
transformada rápida de Fourier de tempo discreto que utiliza algoritmos otimizados para
realização de cálculos matemáticos com maior rapidez e eficiência.
A densidade espectral nada mais é que as componentes de energia do sinal obtida
pela transformada de Fourier, ou seja, é o valor quadrático do mesmo e serve para
representar o quão de energia está presente em cada componente de frequência discreta,
para o caso de sinais digitais.
Quando aplicado a um sinal qualquer, a transformada de Fourier mostrará a
somatória de todas as componentes existentes em todo sinal, no entanto, todas as
informações temporais serão perdidas, o que é uma grande desvantagem para alguns tipos
de análises que necessitem da preservação desta informação, .
Figura 3.3. Uma alternativa bastante utilizada é a análise realizada por trechos específicos
do sinal, fazendo com que sejam apresentadas apenas componentes parciais do mesmo,
desta forma, obtêm-se informações mais detalhadas sobre o sinal, Figuras (3.4.1), (3.4.2) e
(3.4.3).
Técnicas para Reconhecimento de Padrões Musicais
31
.
FIGURA 3.3: Cálculo do espectro de um sinal de áudio completo.
.
FIGURA 3.4.1: Cálculo do espectro de um sinal de áudio, trecho 1.
FIGURA 3.4.2: Cálculo do espectro de um sinal de áudio, trecho 2.
F→
F→
F→
Técnicas para Reconhecimento de Padrões Musicais
32
FIGURA 3.4.3: Cálculo do espectro de um sinal de áudio, trecho 3.
3.3. UMA TÉCNICA ALTERNATIVA PARA DETECÇÃO E IDENTIFICAÇÃO DE NOTAS E ACORDES MUSICAIS
3.3.1. Apresentação
Como já foi apresentado nesta dissertação, o intuito deste trabalho é tratar a possível
detecção e identificação de notas e acordes musicais em escala temperada.
O método de reconhecimento de notas e acordes musicais visa expandir o sistema a
maiores possibilidades no campo de aplicação da música, pois através dele, é possível
montar cifras de sequências musicais, ou ainda, ter uma boa precisão no afinamento de
alguns instrumentos musicais.
A técnica explicada aqui foi desenvolvida anteriormente como uma primeira
abordagem, no entanto, apresenta restrições relativas a sobreposições temporais de notas,
sendo então ineficaz para o caso real.
O método explora a estrutura “ataque”, “platô” e “decrescendo” para construir um
diagrama de estados e emprega janelas temporais de tamanho fixo. A técnica proposta aqui
consiste em janelas frequenciais de tamanho variável do espectro, percorrendo uma faixa
de valores específicos da escala temperada.
3.3.2. Método de Janelamento para detecção nota a nota
O primeiro passo para identificação de uma nota contida em um sinal de áudio é
localizar em que momento esta ocorre. Já é sabido que a técnica da transformada de
F→
Técnicas para Reconhecimento de Padrões Musicais
33
Fourier perde todas as informações temporais. Uma primeira abordagem foi realizada
definindo-se uma janela com comprimento de 50ms que foi subdividida em três partes
iguais de 16,67ms denotadas por Borda de Subida, Parte Central e Borda de Descida,
Figura 3.5.
FIGURA 3.5: Estrutura da janela de 50ms para o método de detecção nota a nota (borda inicial, parte central, borda de descida). A ideia é explorar o “ataque”, “platô” e
“decrescendo”.
Cada janela é analisada individualmente calculando-se alguns parâmetros como
média da amplitude das amostras de toda janela, média da borda de subida e média da
borda de descida, a fim de extrair os resultados, Figura 3.6.
FIGURA 3.6: Ilustração do avanço da janela deslizante.
Para selecionar uma nota musical, baseou-se no diagrama de estados ilustrado na
Figura 3.7.
FIGURA 3.7: Diagrama de estados corresponde ao “ataque” (início de uma nota). O estado b corresponde ao “platô” (parte de
estado permanente em que a nota soa) e o estado c corresponde ao “decrescendo” (final de uma nota). A duração da nota particular, oriunda de um instrumento especdiferentes em cada estado. A maneira de controlar o tamanho corresponde ao tempo de visitação
A ideia principal é percorre
amostral de cada janela é menor ou igual 0,1
considerado que a janela está percorrendo uma região de silêncio ou baixo ruído, caso
contrário, o processo avança para o
No Estado B é testado se a média amostral é maior ou igual a 0,1 e a razão da média da
borda de descida sobre a da borda de subida é menor ou igual a 2, permanecendo neste
estado enquanto esta condição for satis
fim de testar se a média amostral é maior ou igual a 0,05 e a razão da média da borda de
descida sobre a da borda de subida é menor ou igual a 1,25. O sistema permanece no
Estado C enquanto a condição a
Estado A, marcando agora o final da nota.
Os valores apresentados foram escolhidos a partir de testes realizados em arquivos
gravados no formato wav
temporal na marcação do ponto inicial e final de cada nota detectada.
Em seguida, Tabela 3
Técnicas para Reconhecimento de Padrões Musicais
iagrama de estados para as condições de identificação do trecho. O estado a corresponde ao “ataque” (início de uma nota). O estado b corresponde ao “platô” (parte de
estado permanente em que a nota soa) e o estado c corresponde ao “decrescendo” (final de uma o da nota particular, oriunda de um instrumento específico, tem tempos de estada
diferentes em cada estado. A maneira de controlar o tamanho corresponde ao tempo de visitação em um estado da cadeia.
percorrer o sinal de áudio janela a janela testando se a média
amostral de cada janela é menor ou igual 0,1; ou seja, valores menores
considerado que a janela está percorrendo uma região de silêncio ou baixo ruído, caso
avança para o Estado B e neste momento é marcado o início da nota.
se a média amostral é maior ou igual a 0,1 e a razão da média da
borda de descida sobre a da borda de subida é menor ou igual a 2, permanecendo neste
estado enquanto esta condição for satisfeita, pois do contrário, avança-se para o
fim de testar se a média amostral é maior ou igual a 0,05 e a razão da média da borda de
descida sobre a da borda de subida é menor ou igual a 1,25. O sistema permanece no
enquanto a condição anterior for satisfeita, caso contrário, o sistema retorna ao
, marcando agora o final da nota.
Os valores apresentados foram escolhidos a partir de testes realizados em arquivos
e que ofereceram melhores resultados em termos
temporal na marcação do ponto inicial e final de cada nota detectada.
3.1, é mostrado um pseudocódigo referente à Figura
Técnicas para Reconhecimento de Padrões Musicais 34
para as condições de identificação do trecho. O estado a corresponde ao “ataque” (início de uma nota). O estado b corresponde ao “platô” (parte de
estado permanente em que a nota soa) e o estado c corresponde ao “decrescendo” (final de uma fico, tem tempos de estada
diferentes em cada estado. A maneira de controlar o tamanho corresponde ao tempo de visitação
janela testando se a média
es que este valor, é
considerado que a janela está percorrendo uma região de silêncio ou baixo ruído, caso
e neste momento é marcado o início da nota.
se a média amostral é maior ou igual a 0,1 e a razão da média da
borda de descida sobre a da borda de subida é menor ou igual a 2, permanecendo neste
se para o Estado C a
fim de testar se a média amostral é maior ou igual a 0,05 e a razão da média da borda de
descida sobre a da borda de subida é menor ou igual a 1,25. O sistema permanece no
nterior for satisfeita, caso contrário, o sistema retorna ao
Os valores apresentados foram escolhidos a partir de testes realizados em arquivos
e que ofereceram melhores resultados em termos de precisão
Figura 3.7.
Técnicas para Reconhecimento de Padrões Musicais
35
TABELA 3.1: Pseudocódigo para detecção de notas isoladas.
(EstadoAtual = A)
se médiaJanela < 0,10 então
PróximoEstado = A, senão
PróximoEstado = B; Marca Início;
fim;
(EstadoAtual = B)
se (mediaJanela > 0,10) e (médiaBD / médiaBS < 2) então
PróximoEstado = B, senão
PróximoEstado = C;
fim;
(EstadoAtual = C)
se (médiaJanela > 0,05) e (médiaBD/médiaBS < 1.25) então
PróximoEstado = C, senão
PróximoEstado = A; Marca Final;
fim;
A variação da duração dos tons produzidos constitui um dos obstáculos no sucesso
do reconhecimento dos tons. Para a identificação do Estado A (silêncio ou ausência de
notas), o qual corresponde à concatenação de notas sucessivas isoladas, propões-se uma
nova abordagem. Esta sequência não é usada na análise espectral, mas apenas na
identificação de estado. Arbitra-se um limiar de discriminação. Valores pequenos neste
nível conduzem a pouca sensibilidade, possibilitando não discriminar notas sucessivas. Por
outro lado, valores muito grandes do limiar podem conduzir à perda de algumas notas,
cujas formas de onda apresentem menor amplitude. Assim, por intermédio de ensaios,
atribuiu-se o nível 0,1 (lembrando que os arquivos considerados têm amostras
normalizadas no intervalo ±1). A escolha foi realizada como um compromisso (balanço),
através de vários testes, com dezenas de arquivos de áudio gerados com diversos
instrumentos e sequências distintas de solos.
Vale salientar que esta técnica visa detectar apenas notas ou acordes isolados no
tempo, ou seja, notas ou acordes que possuam um intervalo de silêncio entre eles, ficando
restrito a situações reais onde as melodias são tocadas de forma continuada, sem intervalos;
Técnicas para Reconhecimento de Padrões Musicais
36
isto ocorre devido a não representação temporal do espectro de frequências representado
pela transformada de Fourier.
3.3.3. Identificação de notas e acordes pela transformada de Fourier
Dentre todas as características já mencionadas, uma das principais vantagens deste
sistema é a facilidade de implementação para identificação de notas e acordes musicais.
Para se poder fazer a detecção de uma nota musical pura, basta simplesmente, com as
amostras armazenadas da densidade espectral do sinal (energia do sinal obtida a partir da
transformada de Fourier), calcular o máximo global (maior energia) de cada trecho do sinal
(nota ou acorde detectado pelo método apresentado na seção 3.3.2) e verificar em que
frequência a nota se encontra. Daí então se pode inferir sobre a nota através de uma
simples fórmula de recorrência sintetizada a partir da Tabela 3.2.
TABELA 3.2: Tabela representando as frequências sonoras em escala temperada (7 casas)
Notas 1 2 3 4 5 6 7
0 C ƒ0,1 ƒ0,2 ƒ0,3 ƒ0,4 ƒ0,5 ƒ0,6 ƒ0,7
1 C# ƒ1,1 ƒ1,2 ƒ1,3 ƒ1,4 ƒ1,5 ƒ1,6 ƒ1,7
2 D ƒ2,1 ƒ2,2 ƒ2,3 ƒ2,4 ƒ2,5 ƒ2,6 ƒ2,7
3 D# ƒ3,1 ƒ3,2 ƒ3,3 ƒ3,4 ƒ3,5 ƒ3,6 ƒ3,7
4 E ƒ4,1 ƒ4,2 ƒ4,3 ƒ4,4 ƒ4,5 ƒ4,6 ƒ4,7
5 F ƒ5,1 ƒ5,2 ƒ5,3 ƒ5,4 ƒ5,5 ƒ5,6 ƒ5,7
6 F# ƒ6,1 ƒ6,2 ƒ6,3 ƒ6,4 ƒ6,5 ƒ6,6 ƒ6,7
7 G ƒ7,1 ƒ7,2 ƒ7,3 ƒ7,4 ƒ7,5 ƒ7,6 ƒ7,7
8 G# ƒ8,1 ƒ8,2 ƒ8,3 ƒ8,4 ƒ8,5 ƒ8,6 ƒ8,7
9 A ƒ9,1 ƒ9,2 ƒ9,3 ƒ9,4 ƒ9,5 ƒ9,6 ƒ9,7
10 A# ƒ10,1 ƒ10,2 ƒ10,3 ƒ10,4 ƒ10,5 ƒ10,6 ƒ10,7
11 B ƒ11,1 ƒ11,2 ƒ11,3 ƒ11,4 ƒ11,5 ƒ11,6 ƒ11,7
O primeiro valor (ƒ0,1) denota a frequência fundamental do primeiro Dó (C) e vale
32,703196 Hz. As demais notas poderão ser obtidas a partir da primeira, fazendo-se uma
generalização da equação 2.1, como segue.
Técnicas para Reconhecimento de Padrões Musicais
37
Definindo:
ƒi,j � Frequência correspondente ao i-ésimo código musical da j-ésima casa do
instrumento.
Onde,
i � Assume valores entre 00 e 11.
j �Assume valores entre 01 e 07 para o presente caso, podendo se estender
dependendo do comprimento total da escala. (Número de casas presentes em toda escala).
Tem-se, então:
( )[ ] ( )[ ]( 1) 12 ( 1) 1212 12
, 0,12 32,703196 2i j i j
i jf f Hz+ − × + − ×
= × = × (3.1)
Desta forma, pode-se simplificar a equação 3.1 utilizando apenas um único índice;
( ) ( )12 1202 32,703196 2
x x
xf f Hz= × = × (3.2)
Onde:
12;i x Mod= (3.3)
1;12
xj floor
= +
(3.4)
x �Assume valores entre 0 e 83 para o mesmo caso, podendo seus valores se
estender, dependendo do comprimento total da escala.
Das equações acima, é possível facilmente criar janelas frequenciais de comprimento
variável centradas na frequência fundamental de cada nota a ser avaliada, desta forma,
partindo do valor de ƒ0, a primeira janela inicia em:
( )121 0,0 0 0 1 0
3 1 1( ) 3 2
2 2 2 2inicial
f fV f f f f
−= − = − = − × (3.5)
Técnicas para Reconhecimento de Padrões Musicais
38
( )12,0
13 2 32,703196 31,7308794
2inicialV Hz= − × =
E termina onde a próxima inicia:
( )12,0 ,1 ,02 33,617696final inicial inicialV V V Hz= = × =
Assim, pode-se percorrer toda a Tabela 3.2 com apenas 83 janelas de comprimento
variável, a fim de atacar todas as possíveis notas musicais existentes dentro daquele
acorde, fazendo então sua classificação.
Tomando uma janela ao acaso, seu comprimento espectral é dado por:
12, , , , 1 , , ( 2 1)x final x inicial x inicial x inicial x inicial xJ V V V V V+∆ = − = − = − (3.6)
( ) ( )12 12 12, ,02 ( 2 1) 1,944633 2
x x
x inicialJ V Hz∆ = − = × (3.7)
Da equação 3.7, pode-se inferir a Tabela 3.3:
TABELA 3.3: Tabela representando as larguras frequenciais sonoras de cada janela em escala temperada (07 casas). Observa-se que as janelas apresentam larguras variáveis à medida que
caminha sobre as diversas possíveis notas. Notas 1 2 3 4 5 6 7
0 C 1,9446 3,8893 7,7785 15,5571 31,1141 62,2283 124,4565
1 C# 2,0603 4,1205 8,2411 16,4821 32,9643 65,9285 131,8571
2 D 2,1828 4,3656 8,7311 17,4622 34,9244 69,8489 139,6977
3 D# 2,3126 4,6251 9,2503 18,5006 37,0011 74,0023 148,0046
4 E 2,4501 4,9002 9,8003 19,6007 39,2013 78,4027 156,8054
5 F 2,5958 5,1915 10,3831 20,7662 41,5324 83,0648 166,1295
6 F# 2,7501 5,5003 11,0005 22,0010 44,0020 88,0040 176,0081
7 G 2,9137 5,8273 11,6546 23,3093 46,6185 93,2370 186,4741
8 G# 3,0869 6,1738 12,3476 24,6953 49,3906 98,7812 197,5624
9 A 3,2705 6,5409 13,0819 26,1638 52,3275 104,6550 209,3101
10 A# 3,4649 6,9299 13,8598 27,7195 55,4391 110,8781 221,7563
11 B 3,6710 7,3420 14,6839 29,3678 58,7357 117,4713 234,9426
Desta forma, como dito, monta-se uma nova tabela com todas as 83 janelas:
Técnicas para Reconhecimento de Padrões Musicais
39
TABELA 3.4: Tabela com as 83 janelas; marca o início e o final da frequência de cada uma.
3.3.4. Critério de detecção do acorde
Janelas deslizantes de comprimento variável (de acordo com a Tabela 3.4) percorrem
o espectro normalizado do acorde obtido pelo cálculo de sua FFT; cada janela retém seu
máximo local e admite como sendo um máximo candidato se este possuir energia superior
a 40% do máximo global normalizado (100% de energia). Serão eleitos todos aqueles
máximos, cujo código musical ainda não tenha ocorrido, assim como, dado a ocorrência de
um pico, a próxima janela não será analisada.
3.4. ANÁLISE POR BANCO DE FILTROS DIGITAIS
Em sinais de música, contendo notas e acordes musicais, seria bastante interessante
dispor de uma ferramenta que pudesse analisar todo sinal de som mostrando todos os picos
de frequências decorrentes, assim como em que momento eles ocorrem, desta forma, se
conseguíssemos decompor o sinal de áudio em diversas componentes de frequências,
conforme Figura 3.8, a fim de representar cada componente em uma camada diferente, em
função do tempo, teríamos uma maneira de analisar o sinal no conjunto tempo – frequência
de forma simultânea.
Notas 1 2 3 4 5 6 7
Cód. Cifra Inicio Final Inicio Final Inicio Final Inicio Final Inicio Final Inicio Final Inicio Final
0 C 31,73 33,62 63,46 67,24 126,92 134,47 253,85 268,94 507,69 537,88 1015,39 1075,77 2030,78 2151,53
1 C# 33,62 35,62 67,24 71,23 134,47 142,47 268,94 284,93 537,88 569,87 1075,77 1139,73 2151,53 2279,47
2 D 35,62 37,73 71,23 75,47 142,47 150,94 284,93 301,88 569,87 603,75 1139,73 1207,51 2279,47 2415,01
3 D# 37,73 39,98 75,47 79,96 150,94 159,91 301,88 319,83 603,75 639,65 1207,51 1279,31 2415,01 2558,62
4 E 39,98 42,36 79,96 84,71 159,91 169,42 319,83 338,85 639,65 677,69 1279,31 1355,38 2558,62 2710,76
5 F 42,36 44,87 84,71 89,75 169,42 179,50 338,85 358,99 677,69 717,99 1355,38 1435,98 2710,76 2871,95
6 F# 44,87 47,54 89,75 95,09 179,50 190,17 358,99 380,34 717,99 760,68 1435,98 1521,36 2871,95 3042,73
7 G 47,54 50,37 95,09 100,74 190,17 201,48 380,34 402,96 760,68 805,91 1521,36 1611,83 3042,73 3223,66
8 G# 50,37 53,36 100,74 106,73 201,48 213,46 402,96 426,92 805,91 853,84 1611,83 1707,67 3223,66 3415,34
9 A 53,36 56,54 106,73 113,08 213,46 226,15 426,92 452,30 853,84 904,61 1707,67 1809,22 3415,34 3618,43
10 A# 56,54 59,90 113,08 119,80 226,15 239,60 452,30 479,20 904,61 958,40 1809,22 1916,80 3618,43 3833,60
11 B 59,90 63,46 119,80 126,92 239,60 253,85 479,20 507,69 958,40 1015,39 1916,80 2030,78 3833,60 4061,55
Técnicas para Reconhecimento de Padrões Musicais
40
FIGURA 3.8: Exemplo de sinal de áudio decomposto em 8 componentes.
Assim como ocorre na transformada wavelets, o uso de bancos de filtros digitais
permite a visualização do sinal com maior nível de detalhamento no domínio tempo –
frequência, sendo este nível tão bom conforme a quantidade e seletividade dos filtros
projetados.
Filtros bastante seletivos são representados por funções de transferência de alto grau
polinomial, ou seja, filtros digitais seletivos apresentam grande quantidade de coeficientes
para representá-los, o que torna seu processamento de elevada complexidade
computacional devido a milhares de multiplicações realizadas para sua síntese.
Por outro lado, uma representação matricial do sinal de áudio é uma forma simples e
eficiente de representar o conjunto como um todo de maneira bastante detalhada. Se cada
linha da matriz denotar as componentes de energia do sinal presentes naquele dado instante
de tempo discreto (amostra), e cada coluna indicar o nível de frequência relativo ao
intervalo constituinte de cada nota musical, logo poderemos formar um plano de par de
coordenadas (x,y) onde a coordenada x denota o tempo discreto e a coordenada y denota a
nota musical pertencente ao conjunto de frequências que a representa.
Como foi visto na seção 3.2.1, uma função f(x,y) pode ser representada como uma
imagem digital de forma matricial e a amplitude de f representa o nível de energia
pertencente àquele ponto, assim, seria bastante conveniente a utilização de uma imagem
como forma representativa do som de modo a poder-se dispor de técnicas de
processamento de imagens para auxiliar na etapa de reconhecimento.
Técnicas para Reconhecimento de Padrões Musicais
41
3.4.1. Utilização da janela de Kaiser para o projeto de um filtro passa-faixa
De acordo com apêndice B, um ponto bem interessante na janela de Kaiser é a
possibilidade de se poderem projetar filtros digitais de resposta finita conhecendo-se suas
especificações, tais como: a frequência de amostragem (Fs), a atenuação ou ganho do filtro
em dB (A), a frequência de corte (fc) e a largura da região de transição (∆f). Desta forma,
podem-se calcular os parâmetros do filtro a partir das seguintes fórmulas abaixo:
0.4
0.1102( 8.7), 50
0.5842( 21) 0.07886( 21), 21 50
0.0, 21
A A
A A A
A
β− >
= − + − ≤ ≤ <
(3.8)
8, 21
2.285 Normalizado
AM A
ω−= ≥
∆ (3.9)
Com,
2Normalizados
f
Fω π ∆∆ =
Como objetivo maior desse trabalho, analisaremos a implementação prática de um
filtro digital de resposta finita passa-faixa que deverá estar centrado na frequência de 440
Hz, correspondente a nota Lá, e que possua banda característica de 26 Hz com atenuação
de 65dB, supondo-se que o sinal digital foi amostrado a uma taxa de 8 kHz.
A resposta ao impulso de um filtro passa-faixa é dada por:
2 1
2 1
( ), 0
[ ]1
( ) ( ) , 0
c c
pf
c c
para nh n
sen n sen n para nn
ω ωπ
ω ωπ
−==
− ≠
(3.10)
Técnicas para Reconhecimento de Padrões Musicais
42
Aplicando-se a função janela de Kaiser, tem-se:
'[ ] [ ] [ ]pf kh n h n w n=
( )
( )
2 1
2 1
2
0
0
2
0
0
21
( ), 0
21
1( ) ( ) ,
2
0,2
c c
c c
nI
Mpara n
I
nI
M Msen n sen n para n
n I
Mpara n
βω ω
π β
β
ω ωπ β
− − × =
− = − × ≤
>
(3.11)
Mais detalhes vide apêndice B,
Assim, calculando numericamente os dados de entrada:
2
1
2 1
262 (440 ) 9062
262 (440 ) 8542
906 8540,0204
8000
c
c
c cNormalizado
s
rad
rad
F
ω π π
ω π π
ω ω π πω
= + =
= − =
− −∆ = = ≃
Os valores de β e M podem ser obtidos utilizando as fórmulas (3.8) e (3.9),
respectivamente:
0.1102(65 8.7) 6,2043
65 81222
2.285 0,0204M
β = − =
−= =×
Técnicas para Reconhecimento de Padrões Musicais
43
Desta forma,
( )
[ ] ( )
2
0
0
2
0
0
6,2043 1611
52 , 06,2043
6,2043 16111
'[ ] (906 ) (854 ) , 6116,2043
0, 611
nI
para nI
nI
h n sen n sen n para nn I
para n
π ππ
− × =
− = − × ≤ >
Utilizando o Matlab, através de funções pré-definidas, são mostradas nas figuras
Figura 3.9 e Figura 3.10 simulações da função janela de Kaiser e do filtro FIR (tempo e
frequência) projetado a partir desta.
FIGURA 3.9: Exemplo de uma função janela de kaiser mostrada no domínio do tempo e da frequência com M=1222 e com parâmetro β=6,2043.
Técnicas para Reconhecimento de Padrões Musicais
44
FIGURA 3.10: Resposta ao impulso do filtro resultante seguida de sua resposta em frequência.
3.5. REPRESENTANDO AS COMPONENTES DO SOM COMO UMA IMAGEM
Como visto na Figura 3.8 todo e qualquer sinal pode ser decomposto em inúmeras
bandas de frequências a fim de se separar as componentes pertencentes aos conjuntos de
classes distintas. Em música é sabido que cada banda de frequência específica representa
uma nota musical, desta forma, a decomposição adequada do sinal de áudio torna-se
bastante atrativa.
Um sinal de áudio constituído de M amostras poderá ser decomposto em K
componentes a ser representado por uma matriz de ordem K M× .
Para exemplificar, suponhamos um arquivo de som constituído de três notas ideais
com amplitude unitária cada, simultâneas no tempo: Dó ( 33Hz≃ ); Mi ( 41Hz≃ ); Sol (
49Hz≃ ). Matematicamente, elas poderão ser representadas da seguinte forma:
( ) cos(66 ) cos(82 ) cos(98 )A t t t tπ π π= + + (3.12)
Fazendo uma amostragem do sinal da equação 3.12 com taxa de 100 Hz e num
intervalo de 120ms, obtém-se o seguinte conjunto de amostras, Tabela 3.5.
0 200 400 600 800 1000 1200 1400-0.01
-0.005
0
0.005
0.01
Amostras
Am
plitu
lde
Resposta ao Impulso
0 0.5 1 1.5 2 2.5 3 3.50
0.2
0.4
0.6
0.8
1
Frequência discreta (rad/amostras)
Mag
nitu
de
Resposta em Frequência
Técnicas para Reconhecimento de Padrões Musicais
45
TABELA 3.5: Amostras do sinal 3.12 com taxa de amostragem de 100 Hz (intervalo 120ms) Amostra 1 2 3 4 5 6 7 8 9 10 11 12
Amplitude -2.32 0.88 0.14 -0.09 -0.58 0.95 -0.59 0.05 -0.23 1.31 -2.45 2.57
Como proposto, utilizando um banco constituído por 3 filtros, o sinal 3.12 pode ser
decomposto da seguinte forma:
1( ) cos(66 )n t tπ= (3.12.1)
2( ) cos(82 )n t tπ= (3.12.2)
3( ) cos(98 )n t tπ= (3.12.3)
Analogamente, realizando a amostragem a 100 Hz dos respectivos sinais acima se
infere a Tabela 3.6.
TABELA 3.6: Amostras do sinal 3.12.x com taxa de amostragem de 100 hz (intervalo 120ms) Amostra 1 2 3 4 5 6 7 8 9 10 11 12 Amp. n1 -0.48 -0.53 1.00 -0.43 -0.59 0.99 -0.37 -0.64 0.98 -0.31 -0.68 0.97 Amp. n2 -0.84 0.43 0.13 -0.64 0.95 -0.97 0.68 -0.19 -0.37 0.81 -1.00 0.88 Amp. n3 -1.00 0.99 -0.98 0.97 -0.95 0.93 -0.90 0.88 -0.84 0.81 -0.77 0.73
A fim de reconhecimento, o interessante é observar as componentes de energia do
sinal, assim, a partir da Tabela 3.6 chega-se à Tabela 3.7.
TABELA 3.7: Amostras de energia obtidas a partir da tabela 3.6.
Amostra 1 2 3 4 5 6 7 8 9 10 11 12 Ener. n1 0.23 0.28 1.00 0.18 0.18 0.98 0.14 0.41 0.96 0.10 0.46 0.94 Ener. n2 0.71 0.19 0.02 0.41 0.90 0.94 0.46 0.04 0.14 0.66 1.00 0.77 Ener. n3 1.00 0.98 0.96 0.94 0.90 0.86 0.81 0.77 0.71 0.66 0.59 0.53
Finalmente, com o objetivo de se obter uma representação das componentes de
energia do som vistas na Tabela 3.7, pode-se fazer um mapeamento linear obedecendo aos
seguintes critérios:
Técnicas para Reconhecimento de Padrões Musicais
46
0.00 � Valor Discreto (‘0’);
1.00 � Valor Discreto (‘255’).
Dessa maneira, o resultado pode ser visto como uma imagem digital a ser
representada por uma matriz de ordem 3 12× , Figura 3.11 e Figura 3.12.
58 71 255 46 46 250 36 105 245 25 117 240
181 48 5 105 229 240 117 10 36 168 255 196
255 250 245 240 229 219 207 196 181 168 150 135
I
=
FIGURA 3.11: Imagem ilustrativa da matriz-imagem.
FIGURA 3.12: Imagem obtida a partir da matriz da figura 3.11 (componentes de maior energia são representadas por cores mais próximas do branco, ao passo que as componentes de menor
energia por cores mais próximas do preto).
3.5.1. Representação por uma imagem binária
De acordo com o que foi visto na seção 3.5, um arquivo de som pode facilmente ser
representado por uma imagem monocromática, onde suas linhas denotam as notas musicais
(frequências musicais discretizadas) e suas colunas, suas amostras digitais (tempo
discretizado).
Um sistema identificador de nota musical visa encontrá-la no espaço tempo –
frequência, sendo assim, é interessante observar que a única informação pertinente está
associada à presença ou não de tal informação, ou seja, notas musicais poderão ser
identificadas por imagens binárias, desde que o critério de separação das componentes
frequenciais pertença ao intervalo de frequências que elas constituem, de outra forma, cada
Técnicas para Reconhecimento de Padrões Musicais
47
pixel da imagem binária representará a presença (nível lógico um, cor branca) ou ausência
(nível lógico zero, cor preta) de uma nota.
A nomenclatura da nota está associada ao filtro digital que a capturou (coordenada y
da imagem) e o momento de ocorrência a amostra temporal (coordenada x da imagem),
Figura 3.13.
O método de binarização de uma imagem digital consiste em encontrar um valor
limiar a fim de segmentá-la em apenas dois grupos de informações (Preto e Branco). De
uma forma geral, o método faz uma varredura pixel a pixel na imagem analisando os
pontos por similaridade com o propósito de encontrar um valor numérico que separe as
duas regiões de interesse.
No estudo de processamento de imagens existem vários métodos de segmentação,
tais como:
• Limiarização global baseada na entropia;
• Limiarização local adaptativa;
• Limiarização global ótima;
• Segmentação por crescimento de região;
• Segmentação usando o algoritmo k-Means;
• O método de Niblack;
• O método de Otsu.
Neste trabalho foi utilizado o método de Otsu para binarização de uma imagem
monocromática devido à sua alta eficiência neste tipo de aplicação.
FIGURA 3.13: Imagem obtida a partir da binarização da imagem da figura 3.12 (o método de binarização utilizado foi o de otsu ).
Mais detalhes sobre o método de Otsu, consultar no apêndice C.
CAPÍTULO 4CAPÍTULO 4CAPÍTULO 4CAPÍTULO 4
MÉTODO DE MÉTODO DE MÉTODO DE MÉTODO DE IDENTIFICAÇÃO DE IDENTIFICAÇÃO DE IDENTIFICAÇÃO DE IDENTIFICAÇÃO DE
NOTAS E ACORDES NOTAS E ACORDES NOTAS E ACORDES NOTAS E ACORDES
“Aquilo que guia e arrasta o mundo não são as máquinas, mas as ideias."
Victor Hugo
Método de Identificação de Notas e Acordes
49
4. MÉTODO DE IDENTIFICAÇÃO DE NOTAS E ACORDES
O sistema para reconhecimento de notas e acordes musicais consiste em uma técnica
desenvolvida utilizando um banco de filtros digitais projetados usando janelas de Kaiser
capaz de identificar uma nota musical pura (DÓ-RÉ-MI-FÁ-SOL-LÁ-SI), assim como
seus acidentes musicais (sustenidos ou bemóis), sendo um total de 12 notas em qualquer
escala que se repetem à medida que se altera a escala. Subir uma escala implica duplicar a
frequência das notas. Também esta mesma técnica permite a identificação de notas
musicais compostas (acordes musicais), que de acordo com suas combinações, podem
formar uma gama deles. A técnica é vantajosa, pois faz simultaneamente uma análise nos
domínios tempo–frequência, sendo análoga ao princípio da transformada que utiliza banco
de filtros wavelets (de Oliveira, 2007).
Na escala temperada, como visto em capítulos anteriores, tem-se a seguinte
classificação, conforme ilustrado na Tabela 4.1:
TABELA 4.1: Frequências sonoras: observa-se que ao passar de uma nota para outra sua frequência fundamental é multiplicada por √2�� .
A Tabela 4.1 mostra um conjunto constituído de 7 escalas musicais cujas frequências
podem ser obtidas a partir da primeira frequência fundamental da nota Dó (32,70Hz≃ ),
utilizando a equação 2.1 para obtenção das demais. Nota-se que o conjunto de 7 escalas
musicais pertence a um intervalo cuja banda de frequência é de aproximadamente 4 kHz.
Método de Identificação de Notas e Acordes
50
Desta forma, em nível de implementação computacional, optou-se explorar o sistema
numa banda de aproximadamente 32 a 4000 Hz. A extensão do mesmo pode ser
conseguida facilmente seguindo o mesmo critério de desenvolvimento, bastando para isso
apenas aumentar a taxa de amostragem e a quantidade de filtros projetados.
Neste caso, para implementação deste sistema foram utilizados arquivos no formato
wav do tipo monofônico e gravados a uma taxa de amostragem superior a 8 kHz, adequada
para registros produzidos por violão e piano.
Embora outros instrumentos possam ser usados, os testes de validação foram
conduzidos exclusivamente usando gravações de violão e piano. A identificação das
notas/acordes se faz em escala temperada (incluindo # e β), através de um mapeamento de
identificação tonal, como apresentado nas Tabelas 4.2, 4.3 e 4.4.
TABELA 4.2: Função identificadora de notas musicais em função das suas respectivas cifras, com código representativo de cada uma delas.
Cifras C D E F G A B Notas Dó Ré Mi Fá Sol Lá Si
CodMusical 0 2 4 5 7 9 11 Cifras# C# ou Dβ D# ou Eβ F# ou Gβ G# ou Aβ A# ou Bβ
Acidentes Dó# ou Dóβ Ré# ou Miβ Fá# ou Solβ Sol# ou Láβ Lá# ou Siβ CodMusical 1 3 6 8 10
TABELA 4.3: Exemplos de acordes dissonantes básicos formados por mais de três notas. Nome do Acorde Dissonante Nomenclatura Composição
Dó com 7ª maior e 9ª C7M/9 2 1,5 2 1,5C E G B D←→ ←→ ←→ ←→ Ré com 7ª menor e 9ª Dm7/9 1,5 2 1,5 2D F A C E←→ ←→ ←→ ←→
Mi com 7ª menor Em7 1,5 2 1,5E G B D←→ ←→ ←→ Fá com 7ª maior e 9ª F7M/9 2 1,5 2 1,5F A C E G←→ ←→ ←→ ←→
Sol com 7ª e 9ª G7/9 2 1,5 1,5 2G B D F A←→ ←→ ←→ ←→ Lá com 7ª menor Am7 1,5 2 1,5A C E G←→ ←→ ←→
Si com 7ª diminuto Bdim7 1,5 1,5 2B D F A←→ ←→ ←→
Método de Identificação de Notas e Acordes
51
TABELA 4.4: Acordes básicos formados de tônica, terça e quinta. Nome do Acorde Básico Nomenclatura Composição
Dó Maior CM ou C 2 1,5C E G←→ ←→ Ré Maior DM ou D 2 1,5#D F A←→ ←→ Mi Maior EM ou E 2 1,5#E G B←→ ←→ Fá Maior FM ou F 2 1,5F A C←→ ←→ Sol Maior GM ou G 2 1,5G B D←→ ←→ Lá Maior AM ou A 2 1,5#A C E←→ ←→ Si Maior BM ou B 2 1,5# #B D F←→ ←→
Dó Menor Cm 1,5 2#C D G←→ ←→ Ré Menor Dm 1,5 2D F A←→ ←→ Mi Menor Em 1,5 2E G B←→ ←→ Fá Menor Fm 1,5 2#F G C←→ ←→ Sol Menor Gm 1,5 2#G A D←→ ←→ Lá Menor Am 1,5 2A C E←→ ←→ Si Menor Bm 1,5 2 #B D F←→ ←→
Dó com diminuta Cdim 1,5 1,5# #C D F←→ ←→ Ré com diminuta Ddim 1,5 1,5 #D F G←→ ←→ Mi com diminuta Edim 1,5 1,5 #E G A←→ ←→ Fá com diminuta Fdim 1,5 1,5#F G B←→ ←→ Sol com diminuta Gdim 1,5 1,5# #G A C←→ ←→ Lá com diminuta Adim 1,5 1,5 #A C D←→ ←→ Si com diminuta Bdim 1,5 1,5B D F←→ ←→ Dó aumentado C#5 2 2 #C E G←→ ←→ Ré aumentado D#5 2 2# #D F A←→ ←→ Mi aumentado E#5 2 2#E G C←→ ←→ Fá aumentado F#5 2 2 #F A C←→ ←→ Sol aumentado G#5 2 2 #G B D←→ ←→ Lá aumentado A#5 2 2#A C F←→ ←→ Si aumentado B#5 2 2#B D G←→ ←→
A ideia do sistema de identificação de notas e acordes é inovadora, pois combina
técnicas de processamento de áudio e imagem para o reconhecimento musical. O sistema
propõe identificar notas puras e acordes formados por até sete notas simultâneas, desta
forma, o objetivo essencial deste trabalho é desenvolver um software em MATLAB® a fim
de analisar, identificar e representar as cifras (notas/acordes) em uma melodia.
Método de Identificação de Notas e Acordes
52
O processo de identificação pode ser dividido em cinco etapas, conforme diagrama
de bloco mostrado na Figura 4.1.
FIGURA 4.1: Diagrama de blocos do processo de reconhecimento.
4.1. A ETAPA DE PRÉ-PROCESSAMENTO DO SINAL DE ÁUDIO
A Figura 4.1 mostrou o diagrama de blocos de todo processo de reconhecimento, no
entanto, é bastante natural preparar o sinal de entrada antes de entregá-lo ao sistema; isto é
conseguido pela etapa de pré-processamento do sinal, omitida no diagrama.
A etapa de pré-processamento visa reorganizar as amostras do sinal a fim de torná-lo
compatível com as especificações do projeto, com base nisso, ela é baseada em três
subetapas:
• Filtragem passa-baixa;
• Reamostragem a 8 kHz;
• Redução de ruídos.
A filtragem passa-baixa tem como objetivo eliminar todas as componentes de
frequências superiores a 4 kHz; isto é conseguido pela passagem do sinal por um filtro
digital passa-baixas implementado com frequência de corte em 4 kHz.
A etapa de reamostragem a 8 kHz é necessária devido a possíveis existências de
gravações realizadas em taxas superiores a esta. Ela é realizada pela dizimação do sinal por
um fator k, onde k é definido como:
Método de Identificação de Notas e Acordes
53
8000
s
kF
= (4.1)
Sendo Fs a taxa de amostragem original (de gravação) do sinal.
Finalmente, a etapa de redução de ruídos consiste em utilizar técnicas de
processamento de áudio para eliminar parasitas recorrentes de interferências externas
durante o processo de gravação ou até mesmo pela existência de ruído branco no canal.
4.2. DECOMPOSIÇÃO
A primeira etapa de processamento do sinal consiste em decompor o sinal digital que
foi previamente reamostrado com taxa de 8 kHz em 84 componentes, a serem dispostas em
uma matriz de tamanho 84×N, em que N denota o número de amostras armazenadas.
No primeiro passo desta etapa (1° bloco da Figura 4.1) é inicializado um banco de
filtros digitais por janelas de Kaiser, vide seção 3.4, tal como explanado a seguir:
4.2.1. Implementação do filtro digital usando janela de Kaiser
As magnitudes mais expressivas, no domínio frequencial, concentram-se em torno da
condição ω = 0. A atenuação (diferença entre as alturas dos lóbulos principal e secundário)
é um importante fator para a escolha da janela. A solução adotada envolveria funções de
ondas dificilmente computáveis; portanto, não é uma ideia atrativa para ser implementada.
Kaiser (Oppenheim, Schafer, & with Buck, 1999) descobriu que uma janela quase ótima
poderia ser formada usando a função de Bessel de ordem zero, conforme apêndice B, uma
função facilmente computável. A janela de Kaiser é definida como:
( )
2
0
0
21
,[ ] 2
0,2
k
nI
M Mpara nw n I
Mpara n
β
β
− ≤
>
≜ (4.2)
Método de Identificação de Notas e Acordes
54
Em que I0(.) representa a função de Bessel de ordem zero do primeiro tipo.
A janela de Kaiser possui dois parâmetros: O comprimento (M+1) e o parâmetro de
forma β. Variando-se (M+1) e β, tanto o comprimento da janela como sua forma pode ser
ajustada.
Assim, conhecendo as especificações do filtro, seja Fs (frequência de amostragem), A
(Atenuação/Ganho), fc (frequência de corte) e ∆f (largura da região de transição), podem-
se ajustar os parâmetros do filtro a partir das fórmulas 3.8 e 3.9, já vistas;
0.4
0.1102( 8.7), 50
0.5842( 21) 0.07886( 21), 21 50
0.0, 21
A A
A A A
A
β− >
= − + − ≤ ≤ <
8, 21
2.285 Normalizado
AM A
ω−= ≥
∆
Com
2Normalizados
f
Fω π ∆∆ =
A proposta consiste em projetar um banco de filtros digital passa-faixas a 8 kHz, de
atenuação igual a 65 dB, utilizando janelas de Kaiser. Cada janela espectral deverá estar
centrada numa frequência correspondente à frequência característica de uma nota musical
(Dó, Dó#, Ré, ..., Si), repetindo-se até um total de sete escalas musicais, conforme Tabela
4.1.
A largura espectral de cada janela não é fixa; esta deverá crescer à medida que a
frequência aumenta (filtros com fatores de qualidade constantes), tendo largura
correspondente a um semitom. A faixa da região de transição deverá ser assumida
constante, com largura de 20 Hz. O modelo do filtro segue:
FIGURA 4.2: Modelo do filtro
Especificações do filtro:
Fs = 8 kHz (Frequência de Amostragem)
A = 65 dB (Atenuação)
fc = x kHz (Frequência de corte)
∆f = 20 Hz (Largura da região de transição)
• Cálculo dos parâmetros
o Utilizando a taxa de amostragem
� ∆f’ = ∆f/Fs = 20/8k = 2,5mHz
� ∆ω = 2π∆f’ = 5
o Como A = 65dB > 50, logo
� β = 0,1102(A
� β ���� 6,20426
o Com ∆ω = 5π mRad
� M = (A – 8) / (2,285
� M ���� 1588
FIGURA 4.3: Imagem ilustrativa da janela kaiser com seus parâmetros em destaque.
Método de Identificação de Notas e Acordes
lculo dos parâmetros β e M.
Utilizando a taxa de amostragem Fs dada, temos que:
= 20/8k = 2,5mHz (Região de transição normalizada )
= 5π mRad (Região de transição normalizada
65dB > 50, logo
A – 8,7) = 0,1102(65 – 8,7) = 6,20426
6,20426
π mRad
8) / (2,285∆ω) = (65 – 8 ) / (2,285*0,005π) = 1588
magem ilustrativa da janela kaiser com seus parâmetros em destaque.
Método de Identificação de Notas e Acordes 55
normalizada )
Região de transição normalizada em radianos)
) = 1588
magem ilustrativa da janela kaiser com seus parâmetros em destaque.
Método de Identificação de Notas e Acordes
56
FIGURA 4.4: Gráfico da janela de kaiser com m = 1588 e β = 6,20426
Como as frequências indicadas na Tabela 4.1 crescem em razão de uma P.G.
(Progressão Geométrica) à medida que se avança um semitom, é possível definir:
( ) 1232,703196 ( 2) .iNf i Hz×≜ (4.3)
Sendo a frequência fN(0) = 32,703196 Hz correspondente ao primeiro Dó (Escala 1).
Na seção 3.3.3 foi visto que uma janela pode ser identificada com base em seus
valores de frequências correspondentes, conforme foi mostrado na equação 3.5, e que a
partir dela podem-se chegar às equações generalizadas que representam os valores de
frequência inicial e final de cada janela decorrente, equação 4.4 e 4.5, respectivamente.
( )12,
13 2 ( )
2inicial i NV f i= − × (4.4)
Método de Identificação de Notas e Acordes
57
( )12, , 1
13 2 ( 1)
2final i inicial i NV V f i+= = − × + (4.5)
A Tabela 4.5 a seguir, inferida pelas equações 4.4 e 4.5, faz referência à Tabela 4.1 e
mostra todas as frequências em Hz decorrentes de cada nota musical, incluindo a escala a
que pertence. O símbolo “[x” representa o rótulo da coluna referente à frequência inicial do
filtro, correspondente às notas da escala x, assim como “x]” faz referência à frequência
final.
TABELA 4.5: Tabela de frequências em Hz (inicial e final) de cada filtro. Notas [1 1] [2 2] [3 3] [4 4] [5 5] [6 6] [7 7]
C 31,7 33,6 63,5 67,2 126,9 134,5 253,8 268,9 507,7 537,9 1015,4 1075,8 2030,8 2151,5
C# 33,6 35,6 67,2 71,2 134,5 142,5 268,9 284,9 537,9 569,9 1075,8 1139,7 2151,5 2279,5
D 35,6 37,7 71,2 75,5 142,5 150,9 284,9 301,9 569,9 603,8 1139,7 1207,5 2279,5 2415,0
D# 37,7 40,0 75,5 80,0 150,9 159,9 301,9 319,8 603,8 639,7 1207,5 1279,3 2415,0 2558,6
E 40,0 42,4 80,0 84,7 159,9 169,4 319,8 338,8 639,7 677,7 1279,3 1355,4 2558,6 2710,8
F 42,4 44,9 84,7 89,7 169,4 179,5 338,8 359,0 677,7 718,0 1355,4 1436,0 2710,8 2872,0
F# 44,9 47,5 89,7 95,1 179,5 190,2 359,0 380,3 718,0 760,7 1436,0 1521,4 2872,0 3042,7
G 47,5 50,4 95,1 100,7 190,2 201,5 380,3 403,0 760,7 805,9 1521,4 1611,8 3042,7 3223,7
G# 50,4 53,4 100,7 106,7 201,5 213,5 403,0 426,9 805,9 853,8 1611,8 1707,7 3223,7 3415,3
A 53,4 56,5 106,7 113,1 213,5 226,2 426,9 452,3 853,8 904,6 1707,7 1809,2 3415,3 3618,4
A# 56,5 59,9 113,1 119,8 226,2 239,6 452,3 479,2 904,6 958,4 1809,2 1916,8 3618,4 3833,6
B 59,9 63,5 119,8 126,9 239,6 253,8 479,2 507,7 958,4 1015,4 1916,8 2030,8 3833,6 4061,6
A Tabela 4.6 representa as frequências discretas obtidas através da Tabela 4.5 com
taxa de amostragem de 8 kHz.
TABELA 4.6: Tabela de frequências em radiano (inicial e final) de cada filtro. (Fs = 8 kHz). Notas [1 1] [2 2] [3 3] [4 4] [5 5] [6 6] [7 7]
C 0,025 0,026 0,050 0,053 0,100 0,106 0,199 0,211 0,399 0,422 0,797 0,845 1,595 1,690
C# 0,026 0,028 0,053 0,056 0,106 0,112 0,211 0,224 0,422 0,448 0,845 0,895 1,690 1,790
D 0,028 0,030 0,056 0,059 0,112 0,119 0,224 0,237 0,448 0,474 0,895 0,948 1,790 1,897
D# 0,030 0,031 0,059 0,063 0,119 0,126 0,237 0,251 0,474 0,502 0,948 1,005 1,897 2,010
E 0,031 0,033 0,063 0,067 0,126 0,133 0,251 0,266 0,502 0,532 1,005 1,065 2,010 2,129
F 0,033 0,035 0,067 0,070 0,133 0,141 0,266 0,282 0,532 0,564 1,065 1,128 2,129 2,256
F# 0,035 0,037 0,070 0,075 0,141 0,149 0,282 0,299 0,564 0,597 1,128 1,195 2,256 2,390
G 0,037 0,040 0,075 0,079 0,149 0,158 0,299 0,316 0,597 0,633 1,195 1,266 2,390 2,532
G# 0,040 0,042 0,079 0,084 0,158 0,168 0,316 0,335 0,633 0,671 1,266 1,341 2,532 2,682
A 0,042 0,044 0,084 0,089 0,168 0,178 0,335 0,355 0,671 0,710 1,341 1,421 2,682 2,842
A# 0,044 0,047 0,089 0,094 0,178 0,188 0,355 0,376 0,710 0,753 1,421 1,505 2,842 3,011
B 0,047 0,050 0,094 0,100 0,188 0,199 0,376 0,399 0,753 0,797 1,505 1,595 3,011 3,142
Método de Identificação de Notas e Acordes
58
Finalmente, utilizando a equação 3.11, podem-se projetar todos os filtros digitais
pertencentes ao banco com base nas frequências previamente calculadas e mostradas na
Tabela 4.6.
Substituindo os valores dos parâmetros encontrados anteriormente, assim deixando a
resposta ao impulso do filtro em função de suas frequências características, tem-se:
[ , ] [ , ] [ ]pf kh i n h i n w n= ×
( )
( )
2
0
0
2
0
0
6,204 1794( [ ] [ ])
, 06,204
6,204 17941
( [ ]) ( [ ]) , 7946,204
0, 794
f i
f i
nI
i ipara n
I
nI
sen n i sen n i para nn I
para n
ω ωπ
ω ωπ
− − × =
− = − × ≤ >
Onde a largura espectral de cada janela é dada por:
( 1)12 12[ ] ] ] 24,9214 [( 2) ( 2)[ [ ]if i
ii i i mradδω ω ω += − = × − (4.6)
O código musical (#CM) e sua respectiva escala musical (#EM) podem ser vistos na
Tabela 4.1 e calculados a partir do índice i das equações (4.7) e (4.8), usando a fórmula de
recorrência:
# 1 2CM i mod= (4.7)
# 112
iEM
= + , (4.8)
em que ��� denota o maior inteiro menor do que
A Figura 4.5 ilustra um conjunto de filtros FIR projetado
características descritas anteriormente:
FIGURA 4.5: Descrição gráfica de alguns
4.2.2. Construção de uma matriz utilizando filtros de Kaiser
O sinal digital de áudio pode ser representado como um vetor com
mesmo comprimento, onde
segundos e denota-se o sinal de entrada por
matriz de tamanho 84×N
sinal S[n]. Assim, a matriz gerada assume a forma:
[ ] [ ] [, , * ; 1 84, 0 1.M i n h i n S n i n N= ≤ ≤ ≤ ≤ −
Cada elemento da matriz
coluna, respectivamente, pertence o elemento. As componentes de energia podem ser
obtidas elevando-se cada elemento da matriz ao quadrado:
[ ] 2,, ( ); 1 84, 0 1E i nM i n a i n N= ≤ ≤ ≤ ≤ −
Explicando o exposto anteriormente com mais detalhes,
imagem do espectro de uma matriz
com taxa de 8 kHz constituído de três notas musicais sobrepostas no tempo (Lá=440 Hz;
Dó=523 Hz; Mi=659 Hz), geradas em um intervalo de 1 segundo.
Método de Identificação de Notas e Acordes
denota o maior inteiro menor do que x.
ilustra um conjunto de filtros FIR projetado
características descritas anteriormente:
Descrição gráfica de alguns filtros projetados conforme especificação.
Construção de uma matriz utilizando filtros de Kaiser
O sinal digital de áudio pode ser representado como um vetor com
onde cada amostra está espaçada por um intervalo de 1/8000
se o sinal de entrada por S[n]. Desta forma, pode
efetuando-se a convolução discreta entre cada filtro
]. Assim, a matriz gerada assume a forma:
], , * ; 1 84, 0 1.M i n h i n S n i n N= ≤ ≤ ≤ ≤ −
ada elemento da matriz é denotado por �, , em que i e n identificam à qual linha e
coluna, respectivamente, pertence o elemento. As componentes de energia podem ser
se cada elemento da matriz ao quadrado:
, ( ); 1 84, 0 1M i n a i n N= ≤ ≤ ≤ ≤ −
Explicando o exposto anteriormente com mais detalhes, mostra-
imagem do espectro de uma matriz obtida a partir de um sinal de áudio g
com taxa de 8 kHz constituído de três notas musicais sobrepostas no tempo (Lá=440 Hz;
geradas em um intervalo de 1 segundo.
Método de Identificação de Notas e Acordes 59
ilustra um conjunto de filtros FIR projetados com todas as
filtros projetados conforme especificação.
O sinal digital de áudio pode ser representado como um vetor com N amostras de
cada amostra está espaçada por um intervalo de 1/8000
]. Desta forma, pode-se construir uma
se a convolução discreta entre cada filtro h[i,n] e o
(4.9)
identificam à qual linha e
coluna, respectivamente, pertence o elemento. As componentes de energia podem ser
(4.10)
-se na Figura 4.6 a
obtida a partir de um sinal de áudio gravado em wav
com taxa de 8 kHz constituído de três notas musicais sobrepostas no tempo (Lá=440 Hz;
Método de Identificação de Notas e Acordes
60
FIGURA 4.6: Espectro de energia de um sinal de áudio constituído de três notas musicais.
4.3. CONVERSÃO MATRIZ - IMAGEM BINÁRIA
A segunda etapa do processo consiste em duas partes: primeiramente, converte-se a
matriz ME[i,n] em uma imagem digital monocromática, com 256 níveis de tons de cinza;
em seguida, faz-se uma binarização desta utilizando o limiar de Otsu (Gonzales & Woods,
2010), fazendo com que as componentes com alto nível de energia assumam nível lógico 1,
enquanto que componentes com baixo nível de energia assumam o nível lógico 0.
Vale ressaltar que notas musicais puras devem apresentar uma grande amplitude na
componente de frequência fundamental na qual elas são definidas. Acordes também devem
apresentar grandes amplitudes nas respectivas frequências de suas notas. A binarização faz
a separação entre as baixas e altas amplitudes.
4.3.1. Conversão da matriz de áudio para imagem monocromática
Para conversão da matriz ME[i,n] em uma imagem digital monocromática com 256
níveis de energia é utilizado um algoritmo de varredura que localiza o valor de maior
energia contido nesta matriz e a partir dele, calcula o fator de conversão de acordo com:
0 10 20 30 40 50 60 70 80 900
0.02
0.04
0.06
0.08
0.1
0.12
Método de Identificação de Notas e Acordes
61
[ ]255
max( , )cov
E
FM i n
= (4.11)
Assim, a matriz que representa a imagem é convertida utilizando a expressão:
2 21,1 1,
2 284,1 84,
N
Gray cov
N
a a
M F
a a
=
⋯
⋮ ⋱ ⋮
⋯
, (4.12)
em que ��� denota o inteiro mais próximo de x (arredondamento). Vale ressaltar que
cada elemento desta matriz é quantizado por um número binário de 8 bits (1
byte/elemento), alocando na memória um espaço equivalente a 84×N bytes.
A imagem da Figura 4.7 denota a representação de uma matriz quantizada com 8 bits
(256 níveis de tons de cinza). O exemplo ilustrado é o mesmo referido na seção 4.2.2.
FIGURA 4.7: Imagem monocromática de uma matriz constituída por três notas musicais. A imagem possui resolução de oito bits por pixel equivalente a um tamanho de 84×N bytes.
4.3.2. Aplicando o método de Otsu para binarização da imagem
O processo de binarização ocorre quando se aplica a limiarização de Otsu na matriz
MGray.
Como detalhado no capítulo anterior, o método de Otsu é um método de limiarização
global para escolher o melhor threshold (limiar). Este método se baseia no histograma
normalizado (da imagem) como uma função de densidade de probabilidade discreta, na
forma, ������ = ��/�, � = 0, 1, 2, … , � − 1; em que m é o número total de pixels na
Método de Identificação de Notas e Acordes
62
imagem, mq é o número de pixels que tem intensidade rq e L representa o número total de
níveis de intensidade na imagem, neste caso, 256.
O método de Otsu constrói duas classes denotadas por C0 e C1 e escolhe como valor
para limiar um k tal que o nível de intensidade para o qual C0=[0,1,....,k-1] e
C1=[k,k+1,(...,L-1]) maximizem a variância entre classes σ2B. O limiar de Otsu é o valor
calculado k, conforme algoritmo descrito no apêndice C. Dessa maneira a matriz gerada
assumirá a forma:
1,1 1,
84,1 84,
N
Bin
N
b b
M
b b
=
⋯
⋮ ⋱ ⋮
⋯
(4.13)
em que
2,
, 2,
0, 1, .
i ni n
i n
se a kb
se a k
≤= > (4.14)
A Figura 4.8 representa a imagem obtida pela binarização da Figura 4.7, aplicando-se
o método de Otsu.
FIGURA 4.8: Imagem binária de uma matriz constituída por três notas musicais. A imagem possui resolução de um bit por pixel, equivalente a um tamanho de 84×N bits. (cada segmento
branco representa a presença de uma nota naquele dado instante e cada coluna onde eles aparecem denota o código da nota ali presente).
Método de Identificação de Notas e Acordes
63
4.4. AJUSTES E REPRESENTAÇÃO DA IMAGEM BINÁRIA
4.4.1. Conexão entre os pixels
É bastante natural esperar que cada linha da matriz binarizada apresente oscilações
(alternâncias entre 0’s e 1’s) devido à natureza da energia instantânea do sinal analisado ser
oscilatória. Uma vez que a energia instantânea do sinal é definida como sendo o módulo
elevado ao quadrado do mesmo, logo a frequência de oscilação da energia deverá ser
estimada em média como sendo o dobro da frequência da nota à qual se deseja analisar.
Analisando “componente a componente” a nota de menor frequência está em torno
dos 32 Hz, ao passo que a maior por volta dos 4 kHz; isto significa que a cada um segundo
podem aparecer de 64 a 8000 oscilações. Assim, sabendo que existem 8000 amostras em
um segundo, pode ocorrer desde 1 nível lógico baixo para cada 1 nível lógico alto até 128
níveis lógico baixo para cada 128 níveis lógicos alto.
Na ausência de nota é assumido nível lógico baixo durante todo o tempo em que esta
ocorrer (cenário de baixo ruído).
A técnica de conectividade entre pixels (Gonzales & Woods, 2010) permite remover
todas as oscilações presentes analisando linha a linha a matriz binária. Ela é baseada numa
máscara de tamanho 1×150; assim, havendo uma conectividade de pixels (nível lógico alto
ou baixo) de comprimento superior a 150, este é caracterizado como presença de silêncio.
Caso contrário, caracteriza-se como presença de informação (nota musical) nas
componentes da linha analisada.
Portanto, todo trecho do sinal que tiver oscilações que satisfaçam o critério
enunciado no parágrafo anterior, assumirá nível lógico alto (presença de informação), caso
contrário, o nível lógico permanecerá inalterado (ausência de informação).
A técnica para análise de oscilações consiste em gerar uma matriz de frequências
relativas que contabiliza o número de ocorrências de repetições do mesmo nível lógico em
um dado intervalo de tempo, ou seja, cada valor mostrado denotará o tempo de sustentação
de um estado fixo (tempo de invariância do sinal). O exemplo da matriz imagem I, vista na
seção 3.5, que quando binarizada por Otsu pode ser representada pela matriz b como
mostra a Figura 4.9.
Método de Identificação de Notas e Acordes
64
0 0 1 0 0 1 0 0 1 0 0 1
1 0 0 0 1 1 0 0 0 1 1 1
1 1 1 1 1 1 1 1 1 1 1 0
b
=
FIGURA 4.9: Matriz representando a imagem binária da figura 3.11.
Aplicando o processo de conectividade entre os pixels por linha na matriz b chega-se
então à matriz R.
2 1 2 1 2 1 2 1
1 2 2 3 3
11 1
R NaN NaN NaN
NaN NaN NaN NaN NaN NaN
=
FIGURA 4.10: Matriz de frequências relativas presentes em instantes contínuos de tempo.
A partir da matriz R e seguindo então o critério baseado na máscara de tamanho 1×150 descrito anteriormente, a nova matriz binária b’ (sem oscilações) será assim
representada:
1 1 1 1 1 1 1 1 1 1 1 1
' 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
b
=
FIGURA 4.11: Matriz representando a imagem binária após aplicação do algoritmo de conectividade entre os pixels.
Voltando ao nosso exemplo de um arquivo de áudio no formado wav constituído de
três notas musicais sobrepostas no tempo (Lá=440 Hz; Dó=523 Hz; Mi=659 Hz) geradas
em um intervalo de 1 segundo, cuja matriz de frequências relativas é mostrada na Figura
4.12, o símbolo “NaN” diz que a partir daquele instante não existe mais informações
(amostras) para serem computadas.
Método de Identificação de Notas e Acordes
65
FIGURA 4.12: Trecho da matriz de frequências relativas presentes em instantes contínuos de
tempo. A figura mostra apenas alguns bancos (45 a 52).
De acordo com o critério proposto, os valores superiores a 150 representam
sustentações longas e logo são considerados como intervalo de silêncio, ao passo que
valores inferiores são considerados como sustentações curtas e logo vistos como intervalos
de oscilações de notas musicais. A soma de todos os valores linha a linha sempre resultará
em N (número total de amostras do sinal), neste caso 8000 (áudio de 1 segundo de
duração), portanto as linhas que apresentam o valor 8000 em sua primeira célula não
apresentam informação útil disponível.
A seguir, a Figura 4.13 ilustra todo processo de aplicação do método apresentado
anteriormente. Percebe-se que as linhas constituídas de informações são exatamente
aquelas cujo código musical representa as notas armazenadas.
FIGURA 4.13: Processo de conexão entredigital demonstra com clareza a presença de informações nas linhas que caracterizam cada nota.
4.4.2. Condição de elegibilidade
Na seção 4.4.1 viu-se um método rápido e eficiente para localizar notas musicais
contidas em um sinal de áudio. Através da imagem binária da
que é possível interpretar todas as informações referentes
em um sinal de áudio; basta olhar a imagem
coordenada x representa o instante de tempo discreto e a coordenada
discreta que classifica a nota;
assumir o valor zero (ausência de informação, representado pela cor preta) ou
de informação, representado pela cor branca).
Devido às impurezas contidas em um sinal qualquer, tais como
filtros adjacentes, aproximações matemáticas nas modelagens dos filtros ou picos curtos de
frequências devido às mudanças abruptas ocorrid
comum se esperar a presença de componentes de energi
que venha a ser classificada como uma nota musical,
natureza instável – ocorrem
isolada – é comum eles aparecerem na imagem como uma nota qualquer,
tempo de ocorrência impraticável.
Método de Identificação de Notas e Acordes
Processo de conexão entre pixels, aplicado à imagem da figura 4.8. Um zoom digital demonstra com clareza a presença de informações nas linhas que caracterizam cada nota.
elegibilidade
se um método rápido e eficiente para localizar notas musicais
contidas em um sinal de áudio. Através da imagem binária da Figura 4
que é possível interpretar todas as informações referentes à ocorrência de notas musicais
basta olhar a imagem como uma função espacial
representa o instante de tempo discreto e a coordenada
lassifica a nota; a amplitude de f é um sinal digital binário que poderá
(ausência de informação, representado pela cor preta) ou
ormação, representado pela cor branca).
impurezas contidas em um sinal qualquer, tais como
filtros adjacentes, aproximações matemáticas nas modelagens dos filtros ou picos curtos de
frequências devido às mudanças abruptas ocorridas na transição do sinal, é
se esperar a presença de componentes de energia suficientemente grande de forma
ser classificada como uma nota musical, no entanto, como esses sinais são de
ocorrem “como surtos” em rápidos intervalos de tempo e de forma
eles aparecerem na imagem como uma nota qualquer,
tempo de ocorrência impraticável.
Método de Identificação de Notas e Acordes 66
à imagem da figura 4.8. Um zoom digital demonstra com clareza a presença de informações nas linhas que caracterizam cada nota.
se um método rápido e eficiente para localizar notas musicais
4.13 demonstrou-se
ocorrência de notas musicais
como uma função espacial f(x,y), onde a
representa o instante de tempo discreto e a coordenada y, a frequência
é um sinal digital binário que poderá
(ausência de informação, representado pela cor preta) ou um (presença
impurezas contidas em um sinal qualquer, tais como interferência de
filtros adjacentes, aproximações matemáticas nas modelagens dos filtros ou picos curtos de
as na transição do sinal, é bastante
a suficientemente grande de forma
no entanto, como esses sinais são de
s de tempo e de forma
eles aparecerem na imagem como uma nota qualquer, sobretudo com
Método de Identificação de Notas e Acordes
67
O critério de classificação por tempo de duração visa analisar todas as ocorrências,
todas as notas encontradas, de acordo com seu tempo de duração (comprimento de cada
linha detectada na imagem binária). A priori todas as linhas brancas contínuas são
candidatas a serem classificadas como nota, no entanto, são elegíveis apenas aquelas que
satisfizerem o critério a seguir:
• Notas musicais são apenas aquelas que possuírem tempo de duração superior a
cinquenta milissegundos (linha branca com comprimento superior a 400 pixels).
Este valor foi escolhido com base nos instrumentos a serem analisados (violão e
piano). Instrumentos deste tipo chegam a produzir notas com tempo de estadia
superior a 50 ms.
• As notas deverão ser analisadas separadamente (linha a linha da imagem binária).
Supondo agora a análise de um sinal de áudio de 1,5 segundos (12000 amostras)
constituído das seguintes informações musicais: nota Sol na 3ª escala e acorde Dó maior na
4ª escala. De acordo com a Tabela 4.4, pode-se consultar a lei de formação para o acorde
Dó maior e os respectivos códigos musicais poderão ser obtidos pela Tabela 4.1.
FIGURA 4.14: Exemplo de ocorrências de notas musicais.
0 2000 4000 6000 8000 10000 120000
0.5
1X: 1374Y: 1
G3
(31) X: 5602
Y: 1
0 2000 4000 6000 8000 10000 120000
0.5
1X: 5407Y: 1
C4
(36) X: 9611
Y: 1
0 2000 4000 6000 8000 10000 120000
0.5
1X: 5429Y: 1
E4
(40) X: 9605
Y: 1
0 2000 4000 6000 8000 10000 120000
0.5
1X: 5442Y: 1
G4
(43) X: 9575
Y: 1
0 2000 4000 6000 8000 10000 120000
0.5
1X: 500Y: 1
G4#
(44
)
X: 1000Y: 1
X: 1e+004Y: 1
X: 1.17e+004Y: 1
Método de Identificação de Notas e Acordes
68
A Figura 4.14 descreve uma análise gráfica de todas as linhas da imagem binária
candidatas à classificação. Na linha 44 percebe-se a existência de duas ocorrências em
intervalos de tempo distintos da nota Sol# na 4ª escala, no entanto, pelo critério descrito
anteriormente, o tempo de duração delas não satisfaz à condição de elegibilidade, ao
contrário das demais linhas apresentadas, desta forma a linha 44 deverá ser desclassificada
do processo.
FIGURA 4.15: Exemplo de ocorrências de notas musicais após aplicação da condição de elegibilidade.
O método para obtenção dos tempos de estadia de cada nota é realizado pelo cálculo
da derivada parcial em função da coordenada x da imagem, desta forma, as fronteiras de
cada linha é obtida, tornando-se então possível a computação de tais intervalos.
4.5. SOBREPOSIÇÃO TEMPORAL
O processo de sobreposição é utilizado como critério para decidir se a sobreposição
temporal entre duas ou mais notas será caracterizada como acorde ou simplesmente como
notas sobrepostas. Caso o critério de decisão decida por acorde musical, este deverá ser
sincronizado, caso contrário, todas as sobreposições deverão ser removidas.
Para melhor entendimento da técnica, supõe-se a ocorrência do acorde Dó maior (de
acordo com a Tabela 4.4) a partir de t1 e das notas isoladas Ré, Mi e Sol a partir de t4,
conforme Figura 4.16.
0 2000 4000 6000 8000 10000 120000
0.5
1X: 1374Y: 1
G3
(31) X: 5602
Y: 1
0 2000 4000 6000 8000 10000 120000
0.5
1X: 5407Y: 1
C4
(36) X: 9611
Y: 1
0 2000 4000 6000 8000 10000 120000
0.5
1X: 5429Y: 1
E4
(40) X: 9605
Y: 1
0 2000 4000 6000 8000 10000 120000
0.5
1X: 5442Y: 1
G4
(43) X: 9575
Y: 1
Método de Identificação de Notas e Acordes
69
FIGURA 4.16: Exemplo ilustrativo de identificação de notas/acordes em trecho de um sinal qualquer.
Para o exemplo, o algoritmo desenvolvido visa analisar as sobreposições ocorridas
entre C2, E2 e G2 e entre D1, E1 e G1 a fim de classificar estas como um acorde musical
ou meramente como um conjunto de notas sobrepostas. A técnica utilizada se baseia em
analisar a largura das notas sobrepostas.
Para análise da sobreposição temporal, são propostos dois métodos, conforme
descritos a seguir:
1. O método de varredura combinada e
2. O método de empacotamento dos conjuntos.
4.5.1. O método de varredura combinada
O método de varredura combinada consiste em varrer todos os sinais elegidos como
notas musicais a fim de combiná-los quando eles apresentam alguma sobreposição no
tempo. Isto é feito efetuando-se um AND lógico entre todos os sinais que aparecem em
trechos comuns.
Prosseguindo o exemplo da Figura 4.16, verifica-se que na escala 1 tem-se:
#1 1 1 1 0, D and E and G t= = ∀ (4.15)
Analogamente, na escala 2 tem-se:
´3 11,
#2 2 2 20, .
se t t tC and E and G
casocontrário
≤ ≤= =
(4.16)
Método de Identificação de Notas e Acordes
70
Desta forma, as três notas presentes na escala 1 formam um conjunto de notas puras
e sobrepostas; estas deverão ter suas sobreposições eliminadas, ao passo que as três notas
presentes na escala 2 apresentam largura de sobreposição igual à diferença t1’–t3, que se for
superior a um determinado limiar e satisfizer o critério de formação dos acordes (Tabela
4.3 e Tabela 4.4), deverá ser classificada como um acorde musical e então sincronizada,
conforme ilustra a Figura 4.17.
FIGURA 4.17: Exemplo do sinal da figura 4.16 sincronizado e ajustado.
De uma forma geral, para m sobreposições encontradas, assumindo que o método
somente identifica acordes formados por até 7 notas, as m sobreposições devem ser
combinadas de acordo com o seguinte critério:
• Caso m > 7 realiza-se a função “and” em todas as combinações m tomadas 7 a 7 até 3
a 3, a fim de identificar algum acorde presente entre elas.
• Caso 3 ≤ m < 7 realiza-se a função “and” em todas as combinações m tomadas k a k,
onde k são todos os valores tomados que sejam menores ou iguais a m.
• Caso m < 3, não há acorde neste trecho de sobreposição, apenas a presença de notas
puras.
Embora este método seja bastante simples, sua execução requer uma alta
complexidade computacional devido às inúmeras combinações que poderão existir caso
haja uma grande quantidade de sinais encontrados, o que torna sua implementação
inviável.
De qualquer forma foi criado um algoritmo a fim de realizar tais análises, mas o
tempo de execução obtido foi impraticável. Além de tudo, o método torna-se ineficiente,
pois o tempo de sustentação do acorde passará a ser representado pelo menor intervalo de
sobreposição ocorrido entre todas as notas envolvidas.
Método de Identificação de Notas e Acordes
71
4.5.2. O método de empacotamento dos conjuntos
O método de empacotamento dos conjuntos foi o modelo implementado e utilizado
para a versão final deste trabalho. Este método tem como objetivo gerar conjuntos de
códigos por intervalos de tempo constituídos de todas as notas presentes naquele pacote de
informação. A ideia central é montar uma tabela que exprima todos os códigos musicais
presentes em função do seu tempo de ocorrência, como se fosse uma legenda sincronizada.
A Tabela 4.7 esclarece tal fato:
TABELA 4.7: Modelo final de disposição dos resultados
Intervalo (em amostras) 1 1f it t− 2 2
f it t− 3 3f it t−
Instante Inicial (em amostras) 1it 2
it 3it
Instante Final (em amostras) 1ft 2
ft 3ft
Nota 1 Código ou NaN Código ou NaN Código ou NaN Nota 2 Código ou NaN Código ou NaN Código ou NaN Nota 3 Código ou NaN Código ou NaN Código ou NaN Nota 4 Código ou NaN Código ou NaN Código ou NaN Nota 5 Código ou NaN Código ou NaN Código ou NaN Nota 6 Código ou NaN Código ou NaN Código ou NaN Nota 7 Código ou NaN Código ou NaN Código ou NaN
As células que apresentam a informação “Código ou NaN” serão constituídas dos
valores dos respectivos códigos musicais quando houver informação ou “NaN” quando
não houver informação.
O processo de separar em pacotes todas as notas pertencentes a intervalos com
grande tempo de sobreposição foi conseguido pela criação de um algoritmo otimizado que
dispõe todas as informações encontradas no sinal de áudio (notas eleitas) em uma matriz
ordenada descendentemente pelo tempo de duração de cada nota musical, daí então uma
função é chamada a fim de verificar quais das demais notas estão inseridas naquele mesmo
intervalo ou ainda se existe um espaço considerável de sobreposição entre elas.
A técnica se baseia na teoria dos conjuntos e de forma análoga pode assim ser
explicada:
Método de Identificação de Notas e Acordes
72
FIGURA 4.18: Possibilidades entre duas notas selecionadas ao acaso.
De acordo com a Figura 4.18, observa-se a existência de cinco possibilidades para
duas notas selecionadas ao acaso. A nota de referência é tomada como sendo aquela que
apresenta maior tempo de duração dentre todas e a nota referenciada é toda aquela que
ainda não foi encapsulada por alguma nota de referência, ou seja, a cada nota elegida como
de referência, todas as demais serão tomadas uma a uma e analisadas conjuntamente a fim
de aplicar o método de empacotamento dos conjuntos.
Assim, duas notas analisadas conjuntamente serão alocadas conforme os seguintes
critérios em acordo com a Figura 4.18:
• Se ambas as notas estiverem dispostas conforme as imagens 1 e 2 da Figura 4.18,
logo a nota referenciada deverá ser alocada no mesmo intervalo da nota de
referência, desde que o intervalo de sobreposição entre elas seja suficientemente
grande (mais de 60% da nota referenciada contida na nota de referência).
• Se ambas as notas estiverem dispostas conforme as imagens 3 e 4 da Figura 4.18,
logo a nota referenciada não deverá ser alocada no mesmo intervalo da nota de
referência e assim então ficará disposta para uma próxima análise.
Método de Identificação de Notas e Acordes
73
• Se ambas as notas estiverem dispostas conforme a imagem 5 da Figura 4.18, a
nota referenciada deverá ser alocada no mesmo intervalo da nota de referência
incondicionalmente.
Para finalizar, seguimos com a aplicação do método no seguinte exemplo:
� Sinal de áudio “arq1.wav” formado pelas notas conforme Tabela 4.8.
TABELA 4.8: Informações contidas na gravação (“arq1.wav” ).
Nomenclatura
Arquivo Inicio Fim Nota1 Nota2 Nota3 Nota4 Nota5 Nota6 Nota7 Acorde
100 600 G3
700 1200 C4 E4 G4 Dó Maior
1200 1700 E5 G5 B5 D6 Em7
1700 2200 B6 D7 F7 A7 Bdim7
TEMPO (ms) Notas Presentes - Quantas Houverem
ARQUIVO GRAVADO PARA TESTE
arq1.wav
Uma análise realizada no arquivo conforme a condição de elegibilidade, vista
anteriormente, produz a seguinte matriz de ocorrências:
4229 4209 4177 4144 4031 4029 4025 4021 4019 40183997 3994
573 4606 4628 4641 8659 12647 12651 12655 8674 12658 8676 8685
4802 8815 8805 8785 12690 16676 16676 16676 12693 16676 12673 12679
31 36 40 43 52 71 74 77 62 81 55 59
N
=
A matriz N apresenta todas as informações suficientes para representar uma nota
musical no tempo devido, a primeira linha da matriz denota o tempo de duração da nota
dada em amostras, a segunda e terceira linha denotam o instante de tempo inicial e final,
respectivamente, e finalmente a quarta linha traz o código da nota que poderá ser
consultado conforme equações 4.7 e 4.8, respectivamente.
A técnica em questão consiste em juntar todos os resultados pertencentes a uma
mesma classe de notas (intervalos comuns). Observa-se que a matriz está ordenada de
forma decrescente, por tempo de duração (primeira linha).
O primeiro intervalo dado pela primeira coluna {573 – 4802} não apresenta
sobreposição suficientemente grande com mais nenhum outro intervalo, logo, trata-se de
uma nota pura, por outro lado o segundo intervalo {4606 – 8815} pode incorporar o
Método de Identificação de Notas e Acordes
74
terceiro {4628 – 8805} e quarto {4641 – 8785} intervalos, constituindo um acorde formado
por estas três notas. Analogamente, o quinto intervalo {8659 – 12690} está relacionado
com o nono, décimo primeiro e o décimo segundo intervalo, da mesma forma estão
correlacionados entre si os intervalos seis, sete, oito e dez.
Após serem encontrados todos os conjuntos, uma nova matriz os representará da
seguinte forma:
4229 4209 4031 4029
573 4606 8659 12647
4802 8815 12690 16676
31 36 52 71
40 62 74
43 55 77
59 81
A
NaN
NaN
NaN NaN
=
Onde mais uma vez, a primeira, segunda e terceira linhas representam a mesma
informação da matriz N e as demais linhas representam os códigos das notas encontradas
nos seus respectivos intervalos.
4.6. COMPOSIÇÃO DOS RESULTADOS
A quinta e última etapa deste processo é a mais simples de todas. Ela se encarrega de
fazer a composição dos resultados obtidos na saída da etapa anterior, a fim de exibir ao
usuário final um resultado mais amigável.
Pela quarta etapa, sabe-se que a matriz final sincronizada apresenta todas as
informações suficientes (tempo× códigos) de cada ocorrência representada pela matriz A
(matriz cifras).
Daí então, a quinta etapa tem como função verificar cada conjunto encontrado –
efetuando-se uma análise através de combinações – a fim de identificar todas as cifras que
poderão ser representadas por ele.
O critério de composição dos resultados é meramente baseado nas leis de formação
dos acordes, de acordo com as tabelas 4.3 e 4.4, além de suas extensões.
Método de Identificação de Notas e Acordes
75
Como visto, há inúmeras possibilidades de formação de acordes, sejam eles básicos,
dissonantes ou consonantes. No entanto, em nível de implementação optou-se por apenas
interpretar acordes básicos e alguns dissonantes – mais comumente usados – ficando os
demais da forma padrão (apresentando na interface gráfica do programa as notas de
formação). Essas, por sua vez, podem ser interpretadas por usuários mais experientes na
área de música, como aqueles que possuem ouvidos absoluto.
Pelo exemplo da matriz A, aqui repetida por mera conveniência e ordenada
ascendentemente por código, pode-se então inferir os seguintes resultados:
4229 4209 4031 4029
573 4606 8659 12647
4802 8815 12690 16676
31 36 52 71
40 55 74
43 59 77
62 81
A
NaN
NaN
NaN NaN
=
TABELA 4.9: Regra de composição dos acordes. Intervalo
(amostras) Formação
(códigos musicais) Análise dos intervalos de semitons (½ por código)
Nomenclatura (cifras)
{573 – 4802} 31 ♪ (nota pura) C {4606 – 8815} 36 40 43↔ ↔ ♪2 ♪1,5♪ (acorde maior) CM {8659 – 12690} 52 55 59 62↔ ↔ ↔ ♪1,5 ♪2♪1,5♪ (menor com 7ª) Em7 {12647 – 16676} 71 74 77 81↔ ↔ ↔ ♪1,5 ♪1,5♪2♪ (diminuta com 7ª) Bdim7
Sabendo-se que a taxa de amostragem apurada foi de 8 kHz, podemos definir como
resultado em função do tempo (em segundos) as seguintes cifras, de acordo com a Tabela
4.9:
, 0,07 0,60 ;
, 0,58 1,10 ;
7 , ;
diminuta 7 ,
D
D
1,08 1,59
a
a
Nota quando t segundos
Maior quando t segundos
Cifras Mi menor com quando t
Si com
ó
ó
segundos
≤ ≤≤ ≤
= ≤ ≤ 1 ,58 2,08 ;
/ , .
quando t segundos
Ausênciadenotas acordes casocontrário
≤ ≤
Método de Identificação de Notas e Acordes
76
Finalmente, conforme as tabelas 4.3, 4.4 e 4.9, os resultados para alguns acordes
poderão ser interpretados de acordo com o seguinte critério, Tabela 4.10:
TABELA 4.10: Intervalo de formação de alguns acordes. Análise dos intervalos de semitons (½ por código)
Nota /Acorde (categoria)
♪ Nota pura ♪2 ♪1,5♪ Maior ♪1,5 ♪2♪ Menor ♪1,5 ♪1,5♪ Diminuta ♪2 ♪2♪ Aumentada
♪1,5 ♪2♪1,5♪ Menor com 7ª ♪1,5 ♪2♪2♪ Menor com 7ª maior ♪2 ♪1,5♪2♪ Maior com 7ª ♪1,5 ♪1,5♪2♪ Diminuta com 7ª ♪2 ♪2♪1,5♪ Aumentada com 7ª ♪2 ♪1,5♪1,5♪2♪ Com 7ª e 9ª ♪2 ♪1,5♪2♪1,5♪ Com 7ª maior e 9ª ♪1,5 ♪2♪1,5♪2♪ Com 7ª menor e 9ª ♪1,5 ♪1,5♪2♪1,5♪ Diminuta com 7ª e 9ª
Assim, um algoritmo de análise para composição dos resultados pode construir a
seguinte matriz S (matriz de semitons) para interpretação final.
4229 4209 4031 4029
573 4606 8659 12647
4802 8815 12690 16676
31 36 52 71
2,0 1,5 1,5
1,5 2,0 1,5
1,5 2,0
S
NaN
NaN
NaN NaN
=
Onde, da mesma forma, a primeira, segunda e terceira linhas representam as mesmas
informações da matriz A; a quarta linha denota o código musical da nota que nomeia o
acorde e as demais linhas abaixo dessas representam os comprimentos dos intervalos dos
semitons (½ por código) ocorridos entre cada nota.
Método de Identificação de Notas e Acordes
77
4.6.1. Representação final
Para representar os resultados na tela do software, basta então consultar a matriz S
adotando o seguinte critério: a priori checam-se os resultados na matriz S observando-se a
lei de formação dos acordes; se a sequência satisfizer um acorde conforme princípio
mostrado na Tabela 4.10, então se nomeia o acorde seguindo tal critério, caso contrário
deve-se remontar a sequência original daquelas colunas e as exibi-las conforme padrão da
matriz A. Um detalhe a se observar é que o algoritmo de representação reorganiza a matriz
S por ordem cronológica de acontecimentos e também elimina códigos imagens (
harmônicos das notas musicais ) e adjacentes (ocasionados por interferências entre filtros
vizinhos), neste caso, o código elegido será aquele com frequência mais grave ou o que
compor melhor o conjunto de resultados. A Figura 4.19 mostra a interface do software em
funcionamento.
FIGURA 4.19: Imagem do software em funcionamento.
CAPÍTULO 5CAPÍTULO 5CAPÍTULO 5CAPÍTULO 5
SIMULAÇÕES E RESULTASIMULAÇÕES E RESULTASIMULAÇÕES E RESULTASIMULAÇÕES E RESULTADOS DOS DOS DOS
“Você nunca sabe que resultados virão da sua ação. Mas se você não fizer nada, não existirão
resultados.”
Mahatma Gandhi
Simulações e Resultados
79
5. SIMULAÇÕES E RESULTADOS
Os resultados foram realizados com base em simuladores virtuais de piano, virtual
piano e virtual keyboard, pelo software desenvolvido através do Matlab, Figura 4.19, e os
testes conduziram aos seguintes dados:
5.1. SIMULAÇÕES OBTIDAS ATRAVÉS DE PIANO VIRTUAL
Para condução destes resultados, foram realizadas gravações em arquivos no formato
wav, utilizando o software Sound Forge 9.0, de notas e acordes musicais, mostrados na
Tabela 5.1:
TABELA 5.1: Conteúdo dos arquivos gravados por piano
Nomenclatura
Arquivo Nota1 Nota2 Nota3 Nota4 Nota5 Nota6 Nota7 Acorde
P01.wav G Dó
P01.wav C E G Dó Maior
P01.wav C E G Dó Maior
P02.wav F Fá
P02.wav D F A Ré Menor
P02.wav D F A Ré Menor
P02.wav D F A Ré Menor
P02.wav E G B Mi Menor
P03.wav C Dó
P03.wav A# Lá#
P03.wav B Si
P03.wav B D F Si Diminuto
P03.wav D Ré
P04.wav C E G B D C7M/9
P04.wav D F A C E Dm7/9
P04.wav E G B D Em7
P04.wav F A C E G F7M/9
P04.wav G B D F A G7/9
P04.wav A C E G Am7
P04.wav B D F A Bdim7
P05.wav
P06.wav
P07.wav
P08.wav
Seqnotas.wav
Seqacorde.wav Sequência (Faum,Gaum,Aaum,FM,GM,AM,FM7,GM7,AM7,Fm,Gm,Am,Fm7,Gm7,Am7}
Sequência de Acordes Diminutos (Dó a Si) {Cdim,Ddim,Edim,Fdim,Gdim,Adim,Bdim}
Sequência de Notas Puras com sobreposição (Dó a Si, Incluindo #) {12 notas}
ARQUIVOS GRAVADOS PARA TESTE - GERADOS POR SINTETIZADORES DE PIANO
Notas Presentes - Quantas Houverem
Sequência de Acordes Maiores (Dó a Si) {CM,DM,EM,FM,GM,AM,BM}
Sequência de Acordes Menores (Dó a Si) {Cm,Dm,Em,Fm,Gm,Am,Bm}
Sequência tocada {D#,D,D#,F,C,A#,G#,G,G#,A#,F,G,A,A#,C,F,A#,D#,D#,D,C,A#}
Simulações e Resultados
80
Nesta, temos um total de 90 ocorrências, dentre elas, notas puras e acordes musicais,
totalizando a presença de 228 notas musicais.
A análise do arquivo P01.wav conduziu ao seguinte resultado:
FIGURA 5.1: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P01.wav
A Figura 5.1 traz todas as informações relevantes encontradas no arquivo, ou seja,
nela também são mostrados harmônicos que apresentam energia suficiente para ser
classificado pelo método, assim como notas ocasionadas devido a não idealidade dos
filtros (interferência intersimbólica). No entanto, no processo de composição, como já
mencionado no capítulo anterior, um algoritmo será responsável pela eliminação destes
códigos nomeados como código imagem e código adjacente, respectivamente.
A Tabela 5.2 apresenta todos os resultados que serão exibidos como resultado final.
O tempo inicial, final e de duração foram convertidos para unidade segundos, bastando
para isso dividir o número da amostra corrente por 8000 (taxa de amostragem utilizada no
projeto). A cifra é nomeada de acordo com o critério visto no capítulo anterior, Tabela
4.10, ou então é mostrada em pacotes como será visto em tabelas posteriores. A coluna
tamanho representa quantas notas compõem aquele acorde.
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P01.wav
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4 4.2 4.4 4.6 4.8 5
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
81
TABELA 5.2: Elementos identificados para P01.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P01], 2011).
Analogamente, do arquivo P02.wav chegou-se:
FIGURA 5.2: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P02.wav
TABELA 5.3: Elementos identificados para P02.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P02], 2011)
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P02.wav
0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4 4.25 4.5 4.75 5 5.25 5.5 5.75 6 6.25 6.5 6.75 7 7.25 7.5 7.75 8 8.25 8.5 8.75 9
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
82
Do arquivo P03.wav tem-se:
FIGURA 5.3: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P03.wav
TABELA 5.4: Elementos identificados para P03.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P03], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P03.wav
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4 4.2 4.4 4.6 4.8 5 5.2 5.4 5.6 5.8 6 6.2 6.4 6.6 6.8 7
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
83
Do arquivo P04.wav tem-se:
FIGURA 5.4: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P04.wav
TABELA 5.5: Elementos identificados para P04.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P04], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P04.wav
0 0.4 0.8 1.2 1.6 2 2.4 2.8 3.2 3.6 4 4.4 4.8 5.2 5.6 6 6.4 6.8 7.2 7.6 8 8.4 8.8 9.2 9.6 10 10.4 10.8 11.2 11.6 12 12.4 12.8 13.2 13.6 14
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
84
Do arquivo P05.wav tem-se:
FIGURA 5.5: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P05.wav
TABELA 5.6: Elementos identificados para P05.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P05], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P05.wav
0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3 3.3 3.6 3.9 4.2 4.5 4.8 5.1 5.4 5.7 6 6.3 6.6 6.9 7.2 7.5 7.8 8.1 8.4 8.7 9
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
85
Do arquivo P06.wav tem-se:
FIGURA 5.6: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P06.wav
TABELA 5.7: Elementos identificados para P06.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P06], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P06.wav
0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3 3.3 3.6 3.9 4.2 4.5 4.8 5.1 5.4 5.7 6 6.3 6.6 6.9 7.2 7.5 7.8 8.1 8.4 8.7 9
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
86
Do arquivo P07.wav tem-se:
FIGURA 5.7: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P07.wav
TABELA 5.8: Elementos identificados para P07.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P07], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P07.wav
0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3 3.3 3.6 3.9 4.2 4.5 4.8 5.1 5.4 5.7 6 6.3 6.6 6.9 7.2 7.5 7.8 8.1 8.4 8.7 9
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
87
Do arquivo P08.wav tem-se:
FIGURA 5.8: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo P08.wav
TABELA 5.9: Elementos identificados para P08.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[P08], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
P08.wav
0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3 3.3 3.6 3.9 4.2 4.5 4.8 5.1 5.4 5.7 6 6.3 6.6 6.9 7.2 7.5 7.8 8.1 8.4 8.7 9
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
88
Do arquivo Seqnotas.wav tem-se:
FIGURA 5.9: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo Seqnotas.wav
TABELA 5.10: Elementos identificados para Seqnotas.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[Seqnotas], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
Seqnotas.wav
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.5 11 11.5 12 12.5 13 13.5 14 14.5 15 15.5 16 16.5 17 17.5 18
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
89
Do arquivo Seqacordes.wav tem-se:
FIGURA 5.10: Imagem binária invertida de ocorrências, incluindo harmônicos e notas adjacentes, resultante do arquivo Seqacordes.wav
TABELA 5.11: Elementos identificados para Seqacordes.wav
Uma amostra pode ser visualizada em (Cordeiro Jr.[Seqacordes], 2011).
Tempo (amostras) [8000/s]
Cód
igo
mus
ical
Seqacordes.wav
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.5 11 11.5 12
x 104
02468
10121416182022242628303234363840424446485052545658606264666870727476788082
Simulações e Resultados
90
5.2. ANÁLISE ESTATÍSTICA
5.2.1. Taxas de acertos
Uma análise estatística foi realizada confrontando as informações da Tabela 5.1 com
todos os resultados obtidos através das simulações realizadas dos dez arquivos no formato
wav (Tabela 2.2 à Tabela 5.11).
A Tabela 5.12 mostra os resultados finais, onde a cor azul denota acerto e a cor
vermelha denota erro, ocasionado por não aparecimento, aparecimento indevido ou troca
de nota.
TABELA 5.12: Resultados finais.
Nomenclatura
Arquivo Nota1 Nota2 Nota3 Nota4 Nota5 Nota6 Nota7 Acorde
P01.wav C Dó
P01.wav C E G Dó Maior
P01.wav C E G Dó Maior
P02.wav F Fá
P02.wav D F A - {} Ré Menor
P02.wav D F A Ré Menor
P02.wav D F A Ré Menor
P02.wav E G B Mi Menor
P03.wav C Dó
P03.wav A# Lá#
P03.wav B Si
P03.wav B D - {} F Si Diminuto
P03.wav D Ré
P04.wav C E G B D C7M/9
P04.wav D F A C E Dm7/9
P04.wav E G B D Em7
P04.wav F - {} A C E G F7M/9
P04.wav G B D F A G7/9
P04.wav A C E G Am7
P04.wav B D F A Bdim7
P05.wav
P06.wav
P07.wav
P08.wav
Seqnotas.wav
ARQUIVOS GRAVADOS PARA TESTE - GERADOS POR SINTETIZADORES DE PIANO
Notas Presentes - Quantas Houverem
Sequência de Acordes Maiores (Dó a Si) {CM,DM,EM,FM{1 nota},GM,AM,BM{1 nota}}
Sequência de Acordes Menores (Dó a Si) {Cm,Dm,Em,Fm,Gm,Am{1 nota},Bm{1 nota}}
Sequência tocada {D#,D,D#,F,C,A#,G#,G,G#,A#,F,G,A,A#,C,F,A#,D#,D#,D,C,A#} {22 acertos}
Fm,Gm,Am,Fm7,Gm7,Am7{apenas inversão de sequência}}Seqacorde.wav
Sequência (Faum,Gaum,Aaum,FM,GM,AM,FM7,GM7,AM7{apenas inversão de sequência},
Sequência de Acordes Diminutos (Dó a Si) {Cdim,Ddim,Edim,Fdim,Gdim,Adim,Bdim}
Sequência de Notas Puras com sobreposição (Dó a Si, Incluindo #) {11 acertos e 1 erro}
Simulações e Resultados
91
Analisando a Tabela 5.12 observa-se que o experimento realizado contém um total
de duzentos e vinte e oito notas (incluindo as que compõem os acordes); apresenta noventa
ocorrências, sendo elas: cinquenta acordes e quarenta notas puras.
Fazendo, portanto, uma análise estatística nos dados obtidos, podemos estimar os
seguintes resultados:
( )
220% 100 96,50%
228total de notasAcertos = × = (5.1)
( )
80% 100 88,88%
90ocorrênciasAcertos = × = (5.2)
( )
39% 100 97,50%
40notas purasAcertos = × = (5.3)
( )
41% 100 82,00%
50acordesAcertos = × = (5.4)
Uma avaliação dos resultados obtidos demonstra que acordes são mais eminentes a
erros, pois apresentam maiores informações, além das possíveis interferências internotas
que podem vir a reduzir o intervalo de permanência de cada componente – nota musical –
suprimindo-a da análise.
5.2.2. Tempo de processamento
O tempo de processamento é o intervalo de tempo necessário para computar todas as
cifras em uma matriz. Depois de decorrido esse tempo a matriz cifras estará pronta para ser
disposta convenientemente a fim de se exibir os resultados.
Embora o Matlab apresente uma grande variedade de funções pré-definidas para
análise e processamento de sinais de áudio e imagens, facilitando a implementação de
alguns algoritmos, por outro lado, o mesmo software tem como desvantagem o longo
tempo de resposta em seus algoritmos comparados àqueles implementados em linguagem
C.
Simulações e Resultados
92
Entretanto, como o foco deste trabalho não é analisar tempo de resposta, mas sim
taxas de acertos e capacidade de reconhecimento de notas e acordes musicais, optou-se por
implementar tal sistema em Matlab.
Para estimativa do valor do tempo de processamento, utilizou-se o próprio software
para apuração dos resultados (dez arquivos de análises) e extraiu-se, então, o valor médio.
TABELA 5.13: Tabela de tempo de processamento.
Nome do Arquivo Tempo total de
processamento (s) Tempo médio por
ocorrência (s) P01.wav 24,9775 8,32582 P02.wav 43,2877 8,65955 P03.wav 36,2613 7,25226 P04.wav 71,9293 10,2756 P05.wav 44,4084 6,34406 P06.wav 45,3466 6,47809 P07.wav 43,7578 6,25112 P08.wav 41,8883 3,49069
Seqnotas.wav 82,5355 3,75161 Seqacordes.wav 56,9898 3,79932
Média 49,1382 6,4629
Logo, o tempo médio por ocorrência é aproximadamente:
6,46Tmo seg≃ (5.5)
Vale salientar que o tempo de processamento depende da capacidade da máquina que
está executando o aplicativo, assim como da quantidade de tarefas que estejam rodando
nela em paralelo. Para análise realizada acima se utilizou a seguinte máquina:
• Notebook Itautec W7655 com processador Pentium dual core T4200 (2.00 GHz).
• Memória RAM de 4 GB DDR3
• Sistema Operacional Windows 7 Ultimate 64 bits.
Simulações e Resultados
93
5.2.3. Tempo de Execução
Tempo de execução é o tempo gasto para compor e exibir todos os resultados em
tela, durante a execução do arquivo em tempo real e seu atraso é muito curto, sendo
imperceptível à visão (tempo de resposta entre exibir o resultado e ouvir o som – atraso da
legenda em relação ao áudio). Visualize demonstração em (Cordeiro Jr.[Sonata8], 2011).
Todas as demonstrações poderão ser visualizadas pelo youtube através do link:
http://www.youtube.com/playlist?list=PL7B212F6D5CF4C988
CAPÍTULO 6CAPÍTULO 6CAPÍTULO 6CAPÍTULO 6
CONCLUSÕES CONCLUSÕES CONCLUSÕES CONCLUSÕES E TRABALHOS E TRABALHOS E TRABALHOS E TRABALHOS
FUTUROSFUTUROSFUTUROSFUTUROS
“É impossível avaliar a força que possuímos sem medir o tamanho do obstáculo que podemos
vencer, nem o valor de uma ação sem sabermos o sacrifício que ela comporta.”
H. W. Beecher
Conclusões e Trabalhos Futuros
95
6. CONCLUSÕES E TRABALHOS FUTUROS
O trabalho introduziu uma nova técnica para a detecção e reconhecimento de notas e
acordes musicais (com ou sem sobreposição temporal) produzidas principalmente por
piano e descreveu a implementação de um método inovador em relação àquele publicado
em (Cordeiro Jr & de Oliveira, 2009), pelo mesmo autor. Vários métodos introduzidos
podem ser adaptados para uso em cenários como classificação de instrumentos e
transcrição automática (Tavares, Barbedo, & Lopes, 2008) e (Barbedo & Lopes, 2008).
Para geração dos arquivos de áudio foram utilizados softwares virtuais tais como:
Virtual Pianoi, Piano Virtual Onlineii, Virtual Keyboard – Pianoiii , Curso de Violão E.T.M
6.3iv e Violão Popular 4.0v. As gravações foram feitas pelo software Sony Sound Forge
9.0vi ativando o Stereo Mix da placa de som e salvas no formato wav. Todos os arquivos
foram gravados em canal mono com taxa de amostragem de 44.100 KHz e 16 bits de
resolução.
A plataforma foi inteiramente implementada e simulada em Matlab®, e realizou-se
vários testes com duração entre 1” a 90”, resultando em taxa de acerto por ocorrências
superior a 88% e precisão temporal em torno de 50 ms.
O sistema apresentou bom desempenho na tarefa de captura de informações sobre
arquivos de áudio constituídos de notas e acordes musicais, principalmente em trechos
constituídos por notas puras, com maior taxa de acerto. A maior quantidade de erros foi
obtida em trechos que apresentaram acordes com grande número de notas constituintes e o
principal tipo de erro encontrado foi por perda de informação (falta de identificação de
alguma nota no acorde). O tempo de processamento ainda é considerado um fator a ser
melhorado e pode ser conseguido por futuras otimizações no código fonte.
O sistema propõe uma alternativa atrativa para aprendizado e serve como base para
afinação de instrumentos. A extensão para outros instrumentos parece ser relativamente
simples. De fato, os testes incluíram acordes produzidos por outros instrumentos (e.g.,
violão, cello) sem degradar a taxa de acerto.
De forma a melhorar o desempenho do sistema algumas estratégias podem ser
implementadas, como:
Conclusões e Trabalhos Futuros
96
• Criação de códigos corretores de erros realizados com base na lei de formação dos
acordes a fim de analisar minuciosamente a matriz cifras e inserir códigos de
notas que supostamente foram perdidas;
• Incorporação de mais acordes ao sistema;
• Aplicação de técnicas auxiliares de processamento de imagens antes da
binarização da imagem monocromática com propósito de aumentar a taxa de
acerto;
• Aumento da faixa de frequência para até 20 kHz (HI-FI) a fim de identificar notas
mais agudas, isto requer aumento da taxa de amostragem, que consequentemente
trará degradação no tempo de processamento e
• Transcrição do algoritmo para linguagem C com otimização do mesmo, assim,
diminuindo o tempo de processamento e possibilitando o aumento da faixa de
frequência, como foi proposto.
APÊNDICE AAPÊNDICE AAPÊNDICE AAPÊNDICE A
TEÓRIA MUSICAL TEÓRIA MUSICAL TEÓRIA MUSICAL TEÓRIA MUSICAL ✟✟✟✟
Teoria Musical
98
APÊNDICE A: TEORIA MUSICAL
PROPRIEDADES DA MÚSICA
I. INTERVALO
É a distância entre duas notas ou a razão de suas frequências.
II. A SÉRIE HARMÔNICA
São os modos de vibrações produzidos por uma corda, que são múltiplos inteiros da
fundamental (harmônicos).
III. ESCALAS MUSICAIS
Séries de sons ordenados ascendentemente com intervalos de frequência definidos a
partir da série harmônica.
Temos as seguintes escalas:
A. ESCALA DE AFINAÇÃO JUSTA
Escala musical que emprega intervalos de frequências representados por razões entre
números provenientes da série harmônica.
• Relações com a Tônica:
TABELA A.1: Tabela que apresenta as relações com a Tônica.
Dó Ré Mi Fá Sol Lá Si Dó 1 9/8 5/4 4/3 3/2 5/3 15/8 2
• Relação dos Intervalos:
TABELA A.2: Tabela que apresenta as relações de intervalos com a Tônica.
Dó Ré Mi Fá Sol Lá Si Dó 9/8 10/9 16/15 9/8 10/9 9/8 16/15
A principal dificuldade de trabalhar-se com esta escala é que o número de
frequências necessárias à execução em todas as tonalidades torna impraticável a construção
e execução de instrumentos musicais que permitam a transposição de tonalidades.
Teoria Musical
99
B. ESCALA DE AFINAÇÃO TEMPERADA
Instrumentos “não temperados” como o violino e o violoncelo são aqueles que não
têm uma afinação fixa utilizando a escala natural, enquanto que o violão, guitarra,
cavaquinho, piano e teclado, entre outros, são os de afinação fixa ou “temperada”. A mais
recente música ocidental usa uma escala de 12 intervalos, chamada de escala cromática,
onde todos os intervalos são rigorosamente iguais, assim, uma oitava é dividida em 12
intervalos com razões de frequências idênticas.
TEORIA MUSICAL
I. NOTAS MUSICAIS
Uma nota musical é um som cuja frequência de vibração encontra-se dentro do
intervalo perceptível pelo ouvido humano e a música é a combinação, sob as mais diversas
formas, de uma sequência de notas em diferentes intervalos. Entretanto, uma mesma nota
emitida por diferentes fontes (ou seja, instrumentos musicais) pode ter a mesma frequência
e ainda assim soar de maneira diferente para quem ouve (Med, 1997).
Define-se nota como sendo a menor divisão de um acorde, ou seja, qualquer
barulho é uma nota. As notas, por sua vez, estão contidas dentro de uma série de oito
notas musicais mais conhecidas como "escala cromática" com intervalos de tom e
semitons entre uma nota e outra, começando e terminando com a mesma nota, Ex.: Dó,
Ré, Mi, Fá, Sol, Lá, Si, Dó.
Sabe-se que o ouvido humano é sensível a sons emitidos com frequência entre 16 e
20.000 vibrações por segundo. A tabela A.3 mostra o número de frequências de notas
musicais audíveis nesse intervalo. É interessante notar que:
• Cada linha da tabela corresponde a uma escala musical. Observa-se que uma nota
qualquer de uma escala se repete oito notas adiante, por esse motivo uma nota de
uma determinada escala é chamada oitava da mesma nota na escala anterior.
• Cada coluna da tabela contém um número de oitavas. Nota-se que as frequências
das oitavas de uma determinada nota musical formam uma progressão geométrica
de razão 2.
Teoria Musical
100
TABELA A.3: Escala de frequências sonoras audíveis.
Dó Ré Mi Fá Sol Lá Si 16 18 20 21,3 24 26,7 30 32 36 40 42,6 48 53,4 60 64 72 80 85,2 96 106,8 120 128 144 160 170,5 192 213,5 240 256 288 320 341 384 427 480 512 576 640 682 768 854 960
1.024 1.152 1.280 1.364 1.536 1.708 1.920 2.048 2.304 2.560 2.728 3.072 3.416 3.840 4.096 4.608 5.120 5.456 6.144 6.832 7.680 8.192 9.216 10.240 10.912 12.288 13.664 15.360 16.384 18.432
II. ACIDENTES MUSICAIS
Os acidentes musicais, bemol (β) e sustenido (#), alteram o valor da nota em um
semitom para baixo e para cima, respectivamente. São denotados por C#, D#, F#, G# e A#
e possuem, respectivamente, a mesma frequência dos acidentes Dβ, Eβ, Gβ, Aβ e Bβ
quando soam na mesma oitava (Kostka & Dorothy, 2000).
III. CIFRA
É a escrita simbólica das notas musicais. Em harmonia, cada um dos algarismos
representativos do acorde ou dos acordes que correspondem verticalmente a um baixo-
cifrado.
IV. PARTITURA
Disposição gráfica, por extenso ou de forma reduzida, de todas as partes vocais e
instrumentais de uma composição, de modo que permita a sua leitura simultânea.
V. TOM E SEMITOM
Corresponde aos doze intervalos que compõem a oitava, chamados de semitons;
portanto, existem doze semitons iguais numa oitava. Dois intervalos (semitons) juntos
formam um tom. Um semitom separa uma nota de um acidente musical ou de outra nota,
figura A.1 (Lacerda, 1996).
FIGURA A
VI. ACORDES MUSICAIS
Três ou mais notas tocadas simultaneamente formam um acorde. Os acordes são
formados por intervalos harmônic
Portanto, definindo, acorde é a união de várias notas, em
um único som. Os acordes podem ser classificados em:
• Maiores � São os acordes formados pela união de três notas puras
quatro e três semitons respectivamente.
• Menores � São os acordes formados pela união de três notas
três e quatro semitons respectivamente.
• Dissonantes � São acordes formados pela união de mais de três notas
simultaneamente, inclusas após as três notas básicas, e que dão mais brilho a
musica.
• Consonantes � São notas que se misturam a o
Para que todo o mundo falasse a mesma linguagem na música, foi desenvolvido um
sistema, que consiste em representar as notas e os acordes pelas letras do nosso alfabeto;
em qualquer parte do mundo a representação será a mesma. A tabela
sua respectiva nomenclatura.
TABELA A
Dó Ré C D
FIGURA A .1: Intervalos que compõem a oitava. [Lac96]
ACORDES MUSICAIS
Três ou mais notas tocadas simultaneamente formam um acorde. Os acordes são
formados por intervalos harmônicos dando um sentido de harmonia.
Portanto, definindo, acorde é a união de várias notas, em harmonia, formando assim
um único som. Os acordes podem ser classificados em:
São os acordes formados pela união de três notas puras
quatro e três semitons respectivamente.
São os acordes formados pela união de três notas puras espaçadas de
três e quatro semitons respectivamente.
São acordes formados pela união de mais de três notas
simultaneamente, inclusas após as três notas básicas, e que dão mais brilho a
São notas que se misturam a outras.
Para que todo o mundo falasse a mesma linguagem na música, foi desenvolvido um
sistema, que consiste em representar as notas e os acordes pelas letras do nosso alfabeto;
em qualquer parte do mundo a representação será a mesma. A tabela A
sua respectiva nomenclatura.
TABELA A .4: Sistema de nomenclatura das notas musicais.
Mi Fá Sol Lá E F G A
Teoria Musical 101
alos que compõem a oitava. [Lac96]
Três ou mais notas tocadas simultaneamente formam um acorde. Os acordes são
harmonia, formando assim
São os acordes formados pela união de três notas puras espaçadas de
puras espaçadas de
São acordes formados pela união de mais de três notas
simultaneamente, inclusas após as três notas básicas, e que dão mais brilho a
Para que todo o mundo falasse a mesma linguagem na música, foi desenvolvido um
sistema, que consiste em representar as notas e os acordes pelas letras do nosso alfabeto;
A.4 mostra a nota e
Sistema de nomenclatura das notas musicais.
Si B
APÊNDICE BAPÊNDICE BAPÊNDICE BAPÊNDICE B
PROJETOS DE FILTROS PROJETOS DE FILTROS PROJETOS DE FILTROS PROJETOS DE FILTROS FIR POR FIR POR FIR POR FIR POR
JANELAS JANELAS JANELAS JANELAS
Projetos de Filtros FIR por Janelas
103
APÊNDICE B: PROJETOS DE FILTROS FIR POR JANELAS
PROJETO DE FILTROS DIGITAIS DE RESPOSTA FINITA (FIR)
Segundo (Diniz, da Silva, & Netto, 2004), em alguns casos, filtros FIR são
considerados ineficientes no sentido de requererem uma função de transferência de ordem
alta para satisfazer as exigências do sistema, quando comparada à ordem requerida por
filtros digitais com resposta ao impulso de duração infinita. Contudo, filtros digitais FIR
apresentam algumas vantagens quanto à implementação, tais como a possibilidade de
terem fase linear exata e o fato de serem intrinsecamente estáveis, quando realizados de
forma não recursiva. Além disso, a complexidade computacional dos filtros FIR pode ser
reduzida se eles são implementados através de algoritmos numéricos rápidos, tais como a
transformada rápida de Fourier.
Na literatura frequentemente são discutidas as características ideais da resposta em
frequência de filtros FIR mais usados, assim como suas respostas ao impulso
correspondentes. Os filtros mais comumente usados são os passa-baixas, passa-altas e
passa-faixa.
As respostas de módulo ideais de alguns filtros digitais padrão são representadas da
seguinte forma:
1, 0
0,
c
c
paraPassa baixas
para
ω ωω ω π
≤ ≤− ≤ ≤
(B.1)
0, 0
1,
c
c
paraPassa altas
para
ω ωω ω π
≤ ≤− ≤ ≤
(B.2)
1
1 2
2
0, 0
1,
0,
c
c c
c
para
Passa faixa para
para
ω ω
ω ω ω
ω ω π
≤ ≤− ≤ ≤ ≤ ≤
(B.3)
E suas respectivas respostas ao impulso:
Projetos de Filtros FIR por Janelas
104
, 0[ ]
1( ), 0
c
pb
c
para nh n
sen n para nn
ωπ
ωπ
== ≠
(B.4)
1 , 0[ ]
1( ), 0
c
pa
c
para nh n
sen n para nn
ωπ
ωπ
− == − ≠
(B.5)
2 1
2 1
( ), 0
[ ]1
( ) ( ) , 0
c c
pf
c c
para nh n
sen n sen n para nn
ω ωπ
ω ωπ
−==
− ≠
(B.6)
IMPLEMENTAÇÃO DE FILTROS FIR COM FUNÇÕES-JANELA
De acordo com (Diniz, da Silva, & Netto, 2004), para todos os filtros ideais vistos
acima, as respostas ao impulso obtidas através das equações B.4, B.5 e B.6 têm duração
infinita, levando a filtros não realizáveis. Uma maneira direta de contornar essa limitação é
definir uma sequência auxiliar '[ ]h n de comprimento finito que resulte num filtro de
ordem M da forma:
'
[ ],2[ ]
0,2
Mh n para n
h nM
para n
≤= ≥
(B.7)
Em geral, uma boa janela é uma sequência de comprimento finito cuja resposta na
frequência, quando convoluída com uma resposta na frequência ideal, produz a menor
distorção possível. Essa mínima distorção ocorreria quando a resposta na frequência da
janela tivesse uma forma próxima à de um impulso concentrado em torno de ω=0.
Contudo, sinais com faixa de frequência limitada não podem ser limitados no tempo,
o que contradiz nosso principal requisito. Isso significa que devemos encontrar uma janela
de comprimento finito cuja resposta na frequência tenha a maior parte de sua energia
concentrada em torno de ω=0. Além disso, a fim de evitar as oscilações na resposta de
Projetos de Filtros FIR por Janelas
105
módulo do filtro, os lobos laterais da resposta na frequência da janela devem decair
rapidamente à medida que |ω| aumenta.
FIGURA B.1: Caso prático de uma função-janela.
Em geral, uma janela prática é como mostra a figura B.1. O efeito do lobo secundário
é introduzir uma ondulação maior próxima às extremidades da faixa. Com base nesses
fatos, uma função-janela prática tem que apresentar uma resposta de módulo caracterizada
por:
• A razão da amplitude do lobo principal para a amplitude do lobo secundário tem
que ser tão grande quanto possível e
• A energia tem que decair rapidamente à medida que |ω| aumenta.
Existem diversos tipos de funções-janelas mais usadas no projeto de filtros FIR,
dentre algumas citamos:
1. Janela retangular
2. Janelas triangulares
3. Janelas de Hamming e de Hanning
4. Janela de Blackman
5. Janela de Kaiser
0 20 40 60 80 100 120 140-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Lobo Secundário 1
Lobo Secundário 2
Lobo Secundário 3
Lobo Principal
Projetos de Filtros FIR por Janelas
106
A janela retangular ocorre fazendo-se o simples truncamento da resposta ao
impulso, desta forma ela pode ser definida como:
1,2[ ]
0,2
r
Mpara n
w nM
para n
≤= >
(B.8)
Assim, sua resposta em frequência será dada por:
2
2
[ ]
M
j nr
Mn
W e ωω −
−=
= ∑
12
2
Msen
sen
ω
ω
+ =
(B.9)
O principal problema associado com a janela retangular é a presença de ondulações
próximas às extremidades de faixa do filtro resultante, que são causadas pela existência de
lóbulos laterais na frequência da janela. Tal problema se deve à descontinuidade inerente à
janela retangular no domínio do tempo.
FIGURA B.2: Exemplo de uma função janela retangular mostrada no domínio do tempo e da
frequência com M=25.
Projetos de Filtros FIR por Janelas
107
A janela triangular aparece no sentido de resolver esses problemas de
descontinuidades no domínio do tempo, de forma a ter-se uma resposta cujos lóbulos
secundários apresentem menores amplitudes, aproximando-se do caso ideal. Ela é definida
como:
21,
2 2[ ]
0,2
t
n Mpara n
Mw nM
para n
−+ ≤ +=
>
(B.10)
E sua resposta em frequência dada por:
2
2
2[ ] 1
2
M
j nt
Mn
nW e
Mωω −
−=
−= + + ∑ (B.11)
FIGURA B.3: Exemplo de uma função janela triangular mostrada no domínio do tempo e da
frequência com M=25.
A janela de Hamming e de Hanning é uma janela generalizada a partir do ajuste de
um fator α que varia de zero à unidade.
Sua representação generalizada no domínio do tempo é dada por:
Projetos de Filtros FIR por Janelas
108
2(1 )cos ,
2[ ]
0,2
H
n Mpara n
Mw n
Mpara n
πα α + − ≤ = >
(B.12)
Quando o valor de α é definido como 0,54 a energia total do lobo principal é
aproximadamente 99,96% da energia total da janela e esta é conhecida como janela de
Hamming, ao passo que quando o valor de α é definido como 0,50 a janela é conhecida
como janela de Hanning.
A resposta em frequência desta janela poderá ser representada em função da janela
retangular, como segue:
[ ]2
2
2[ ] (1 )cos
M
j nH r
Mn
nW w n e
Mωπω α α −
−=
= + −
∑
1 2 1 2( ) ( ) ( )
2 2r r rW W WM M
α π α πα ω ω ω− − = + − + +
(B.13)
FIGURA B.4: Exemplo de uma função janela de Hamming mostrada no domínio do tempo e da
frequência com M=25.
A janela de Blackman introduz um segundo termo cossenoidal, em relação a janela
de Hamming, a fim de reduzir ainda mais os efeitos dos lobos secundários de Wr(ω). Ela é
definida como:
Projetos de Filtros FIR por Janelas
109
2 40,42 0,5cos 0,08cos ,
2[ ]
0,2
B
n n Mpara n
M Mw n
Mpara n
π π + + ≤ = >
(B.14)
A largura do lobo principal é aproximadamente 12
1M
π+
, maior que para as janelas
anteriores e as ondulações na faixa de passagem são menores que nas janelas anteriores.
FIGURA B.5: Exemplo de uma função janela de Blackman mostrada no domínio do tempo e da
frequência com M=25.
A Janela de Kaiser, ao contrário de todas as outras vistas anteriormente, permite ter
controle sobre as ondulações da faixa de passagem a partir da variação de um parâmetro
denotado como β além do controle da faixa de transição que já se tinha antes decorrente da
variação da ordem da janela, parâmetro M. A inserção de um novo parâmetro no projeto da
janela faz com que esta tenha grande utilidade quando se projetam filtros com
especificações prescritas na frequência.
Como visto anteriormente, a janela ideal deve ser uma função de duração finita tal
que a maior parte de sua energia espectral se concentre em torno de |ω| = 0, decaindo
rapidamente com o aumento de |ω|. Há uma família de funções do tempo contínuo,
chamadas funções esferoidais prolatas, que são ótimas no atendimento a essas
propriedades. Tais funções, embora muito difíceis de implementar na prática, podem ser
aproximadas pelas funções seno hiperbólico de Bessel I0(.) da forma:
Projetos de Filtros FIR por Janelas
110
( )
2
0
0
1
( ) ,
0,
tI
w t para tI
para t
βτ
τβ
τ
− = ≤ >
(B.15)
A janela de Kaiser é derivada da equação B.15 por meio da transformação para o
domínio do tempo discreto dada por 2
MTτ → e t nT→ . A janela é, então, descrita por:
( )
2
0
0
21
,[ ] 2
0,2
k
nI
M Mpara nw n I
Mpara n
β
β
− ≤=
>
(B.16)
Onde M denota a ordem do filtro e β controla a forma das ondulações da faixa de
passagem e transição.
FIGURA B.6.1: Exemplo de uma função janela de Kaiser mostrada no domínio do tempo e da
frequência com M=25 e com parâmetro β=1.
Projetos de Filtros FIR por Janelas
111
FIGURA B.6.2: Exemplo de uma função janela de Kaiser mostrada no domínio do tempo e da
frequência com M=25 e com parâmetro β=5.
FIGURA B.6.3: Exemplo de uma função janela de Kaiser mostrada no domínio do tempo e da
frequência com M=25 e com parâmetro β=10.
APÊNDICE CAPÊNDICE CAPÊNDICE CAPÊNDICE C
O MÉTODO DE LIMIARIZO MÉTODO DE LIMIARIZO MÉTODO DE LIMIARIZO MÉTODO DE LIMIARIZAÇÃO POR AÇÃO POR AÇÃO POR AÇÃO POR
OTSU OTSU OTSU OTSU
O Método de Limiarização por Otsu
113
APÊNDICE C: O MÉTODO DE LIMIARIZAÇÃO POR OTSU
BINARIZAÇÃO POR LIMIAR DE OTSU
O método de Otsu, segundo (Gonzales & Woods, 2010), é uma ótima ferramenta
pelo fato que maximiza a variância entre classes, uma medida bem conhecida utilizada na
análise estatística discriminante. A ideia básica é que classes com limiares bem
estabelecidos devem ser distintas em relação aos valores de intensidade de seus pixels e,
inversamente, que um limiar que oferece a melhor separação entre as classes em termos de
valores de intensidade seria o melhor limiar (limiar ótimo). Além do componente ótimo, o
método de Otsu tem a importante peculiaridade de se basear inteiramente em cálculos
realizados no histograma de uma imagem, um arranjo 1-D, obtido facilmente.
Digamos que [0,1,2,...,L-16] denote os L distintos níveis de intensidade em uma
imagem digital de M N× pixels e digamos que ni denote o número de pixels com
intensidade i. O número total (MN) dos pixels da imagem é MN = n0 + n1 + n2 + ... + nL-1.
O histograma normalizado tem componentes Pi = ni / MN, dos quais podemos ver
que
1
0
1, 0L
i ii
p p−
=
= ≥∑ (C.1)
Agora, supondo que selecionemos um limiar T(k) = k, 0 < k < L-1 e que o usemos
para estabelecer o limiar da imagem de entrada em duas classes, C1 e C2, em que C1 está
constituída por todos os pixels da imagem com valores de intensidade no intervalo [0, k] e
C2 consiste dos pixels com valores no intervalo [k + 1, L – 1]. Usando este limiar, a
probabilidade, P1(k), de que um pixel seja atribuído (ou seja, que seu limiar seja
estabelecido) à classe C1, é dada pela soma cumulativa,
10
( )k
ii
p k p=
=∑ (C.2)
Visto de outra maneira, esta é a probabilidade de ocorrência da classe C1. Por
exemplo, se estabelecemos k=0, a probabilidade de a classe C1 ter pixels atribuídos a ela é
zero. Do mesmo modo, a probabilidade de ocorrência da classe C2, é:
O Método de Limiarização por Otsu
114
1
2 11
( ) 1 ( )L
ii k
p k p p k−
= +
= = −∑ (C.3)
Da equação C.3, o valor da intensidade média dos pixels atribuídos à classe C1 é:
1 10
10
( ) ( / )
( / ) ( ) / ( )
k
i
k
ii
m k ip i C
iP C i P i P C
=
=
=
=
∑
∑
01
1
( )
k
ii
ipP k =
= ∑ (C.4)
Na qual P1(k) é dada na equação C.2. O termo P(i / Ci) na primeira linha da equação
C.4 é a probabilidade do valor i, dado que i vem da classe C1. A segunda linha da equação
resulta da fórmula de Bayes:
( / ) ( / ) ( ) / ( )P A B P B A P A P B=
A terceira linha resulta do fato que P(C1 / i), a probabilidade de C1 dado i é 1, pois
estamos lidando apenas com os valores de i da classe C1. Além disso, P(i) é a
probabilidade do i-ésimo valor, que é simplesmente o i-ésimo componente do histograma,
pi. Finalmente, P(C1) é a probabilidade de classe C1, a qual se sabe, a partir da equação
C.2, que é igual a P1(k).
Similarmente, o valor da intensidade média dos pixels atribuídos à classe C2 é:
1
2 21
( ) ( / )L
i k
m k ip i C−
= +
= ∑
1
12
1
( )
L
ii k
ipP k
−
= +
= ∑ (C.5)
O Método de Limiarização por Otsu
115
A média acumulada (intensidade média) até o nível k é dada por:
0
( )k
ii
m k ip=
=∑ (C.6)
E a intensidade média de toda a imagem (ou seja, a média global) é dada por:
1
0
L
G ii
m ip−
=
=∑ (C.7)
A validade das duas equações seguintes pode ser verificada pela substituição dos
resultados anteriores:
1 1 2 2 GPm P m m+ = (C.8)
e
1 2 1P P+ = (C.9)
Sendo que omitimos as ks temporariamente em favor da clareza da notação.
A fim de avaliar a “qualidade” do limiar no nível k, usamos a métrica normalizada
adimensional:
2
2B
G
σησ
= (C.10)
Sendo 2Gσ a variância global, ou seja, a variância de intensidade de todos os pixels
da imagem.
12 2
0
( )L
G G ii
i m pσ−
=
= −∑ (C.11)
O Método de Limiarização por Otsu
116
e 2Bσ é a variância entre classes, definida como:
2 2 21 1 2 2( ) ( )B G GP m m P m mσ = − + − (C.12)
Esta expressão também pode ser escrita como:
2 21 2 1 2( )B PP m mσ = −
21
1 1
( )
(1 )Gm P m
P P
−=−
(C.13)
Em que mG e m apresentam-se conforme mencionado anteriormente. A primeira
linha desta equação é obtida a partir das equações C.8, C.9 e C.10. A segunda linha vem
das equações C.3 até 3.7. Esta forma é um pouco mais eficiente computacionalmente, pois
a média global, mG, é computada apenas uma vez; portanto, apenas dois parâmetros, m e
P1, devem ser computados para qualquer valor de k.
Vemos a partir da primeira linha na equação C.13, que, quanto mais longe as duas
médias m1 e m2 estiverem uma da outra, maior será 2Bσ , indicando que a variância entre
classes é uma medida da separabilidade entre as classes. Já que 2Gσ é uma constante,
entendemos que η também é uma medida de separabilidade e maximizar essa métrica é
equivalente à maximização de 2Bσ . O objetivo é, então, determinar o valor limiar, k, que
maximiza a variância entre classes, tal como referido no início desta seção. Note que a
equação C.10 assume implicitamente que 2 0Gσ > . Esta variação pode ser zero somente
quando todos os níveis de intensidade na imagem forem os mesmos, o que implica a
existência de apenas uma classe de pixels. Isto, por sua vez, significa que 0η = para uma
imagem constante, já que a separabilidade de uma única classe a partir de si mesma é zero.
Retomando k, temos os resultados finais:
2
2
( )( ) B
G
kk
σησ
= (C.14)
O Método de Limiarização por Otsu
117
e
22 1
1 1
[ ( ) ( )]( )
( )[1 ( )]G
B
m P k m kk
P k P kσ −=
− (C.15)
Então, o limiar ótimo é o valor, k*, que maximiza 2 ( )B kσ torna-se:
2 2
0 1
( *) max ( )B Bk L
k kσ σ≤ ≤ −
= (C.16)
Em outras palavras, para encontrar k*, simplesmente avaliamos a equação C.16 para
todos os valores inteiros de k (de forma que a condição 0<P1(k)<1 permaneça) e
selecionamos o valor de k que produz o máximo 2 ( )B kσ . Se o máximo existir para mais de
um valor de k, é habitual calcular a média dos diversos valores de k para os quais 2 ( )B kσ é
máximo. Pode ser comprovado que sempre existe um máximo sujeito à condição de que
0<P1(k)<1. Avaliar as equações C.15 e C.16 para todos os valores de k é um procedimento
relativamente barato em termos computacionais, pois o número máximo de valores inteiros
que k pode ter é L.
Uma vez obtido k*, a imagem de entrada f(x,y) é segmentada como antes:
1, ( , ) *( , )
0, ( , ) *
se f x y kg x y
se f x y k
>= ≤
(C.17)
Para x=0,1,2,...,M-1 e y=0,1,2,...,N-1. Nota-se que todas as quantidades requeridas
para avaliar a equação C.15 são obtidas utilizando apenas o histograma de f(x,y). Além do
limiar global ótimo, outras informações sobre a imagem segmentada podem ser extraídas
do histograma. Por exemplo, P1(k*) e P2(k*), as probabilidades de classes avaliadas no
limiar ótimo indicam as parcelas das áreas ocupadas pelas classes (grupos de pixels) na
imagem limiarizada. Do mesmo modo, as médias m1(k*) e m2(k*) são estimativas da
intensidade média das classes na imagem original.
A métrica normalizada η , avaliada no valor do limiar ótimo ( *)kη , pode ser usada
para obter uma estimativa quantitativa da separabilidade das classes, que, por sua vez, dá
O Método de Limiarização por Otsu
118
uma ideia da facilidade de limiarização de uma determinada imagem. Esta medida tem
valores no intervalo
0 ( *) 1kη≤ ≤ (C.18)
O limite inferior é atingível apenas por imagens com um único e constante nível de
intensidade, como mencionado anteriormente. O limite superior é atingível apenas por
imagens de dois níveis de intensidade: 0 e L-1.
O algoritmo de Otsu pode ser assim resumido:
1. Calcular o histograma normalizado da imagem de entrada. Designar os
componentes do histograma pi, i=0,1,2,...,L-1.
2. Calcular as somas acumuladas, P1(k), para k = 0,1,2,...,L-1, usando a equação
C.2.
3. Calcular as médias acumuladas m(k), para k=0,1,2,...,L-1, usando a equação
C.6.
4. Calcular a intensidade média global, mG, usando C.4.
5. Calcular a variância entre classes, 2 ( )B kσ , para k =0,1,2,...,L-1, usando a
equação C.15.
6. Obter o limiar de Otsu, k*, como o valor k para o qual 2 ( )B kσ é máxima. Se a
máxima não for única, deve-se obter k* pela média dos valores de k que
correspondem aos diversos valores máximos detectados.
7. Obter a medida de separabilidade, *η , avaliando a equação 3.41 em k = k*.
ANEXO IANEXO IANEXO IANEXO I
ARTIGOS PUBLICADOS ARTIGOS PUBLICADOS ARTIGOS PUBLICADOS ARTIGOS PUBLICADOS
Artigos Publicados
120
ANEXO I: ARTIGOS PUBLICADOS
32º Congresso nacional de matemática aplicada e computacional (CNMAC 2009)
9º Congresso de engenharia e áudio (AES 2011)
Artigos Publicados
121
ANEXO IIANEXO IIANEXO IIANEXO II
CÓDIGO FONTE CÓDIGO FONTE CÓDIGO FONTE CÓDIGO FONTE
Código Fonte
123
ANEXO II: CÓDIGO FONTE
function banco = inicializar_banco( ordem )
%Gera um banco de filtros baseado na janela de kais er com larguras
espectrais
%de uma oitava a ser inicializado na seguinte frequ ência de corte: Fn =
%[31,7308794 33,6176957]. Hz e terminado na frequê ncia de corte: Fn =
%[3833,595154 4061,548723] Hz;
%Ordem representa o grau do polinômio de cada filtr o.
M = ordem; %Usar M=1588
beta = 6.2043; %Valor de beta definido para um ganho de 65 dB
r = 2^(1/12); %Razão das frequências;
Acc = [];
for i=0:83
if i == 83
Fn = [31.7308794*(r^i) 3999];
else
Fn = [31.7308794*(r^i) 31.7308794*(r^(i+1)) ];
end
h = fir1(M-1,Fn/4000,kaiser(M,beta));
Acc = [Acc ; h];
end
banco = Acc;
end
function [ componentes_energia ] = filtrar(banco,sinal)
%Filtra o sinal de entrada com o banco de filtros e retorna as energias
de todas as componentes.
[M N] = size(banco);
Acc = [];
for i=1:M
filtrado = filter(banco(i,:),1,sinal);
Acc = [Acc filtrado];
end
componentes_energia = (Acc').^2;
end
Código Fonte
124
function [ matriz_bin matriz_freq ] = binarizar(matriz)
%Binariza a matriz de entrada que contém as compone ntes de energia.
MatGray = Mat2Gray(matriz); %Converte para matriz gray.
Nivel = graythresh(MatGray); %Computa o limiar de OTSU para uma janela
de 3 linhas
Binaria = im2bw(MatGray,Nivel); %Converte para binario com limiar de
otsu.
matriz_bin = Binaria;
%Algoritmo otimizado para criação da matriz de freq uencia relativa.
bin = [Binaria not(Binaria(:,length(Binaria)))]; %Concatena uma coluna
de valores inversos (oscilações)ao final da matriz binarizada.
mat_diff = diff(bin')'; %Calcula as derivadas linha a linha da matriz
binarizada (Obtem pontos de oscilações de energia).
[M N] = size(matriz); %Retorna numero de linhas em M e numero de colunas
em N
mat_produto = []; %Declara matriz vazia
for I = 1:M %laço curto, pois M=84
mat_produto = [mat_produto ; 1:N]; %Preenche a matriz produto
end
mat_freq1 = mat_produto.*abs(mat_diff); %1° Passo para criação da matriz
de frequencia relativa
mat_freq2 = mat_freq1./abs(mat_diff); %2° Passo para criação da matriz
de frequncia relativa (Com NaNs)
Quant_elem = max(sum(abs(mat_diff'))); %Extrai a quantidade de elementos
pertencente a linha que apresenta maior oscilação
mat_final = NaN(84,Quant_elem); %3° Passo: Cria uma matriz com valores
indefinidos de tamanho 84 por Quant_elem
for J = 1:M %laço curto, pois M=84
Quant_elem_por_linha = sum(abs(mat_diff(J,:))); %Extrai a quantidade
de elementos pertencente a J-ésima linha.
temp_anterior = 0;
workspace;
for K = 1:Quant_elem_por_linha %laço curto, pois so contabilizou as
oscilações presentes
temp_proximo = min(mat_freq2(J,:));
mat_final(J,K) = temp_proximo - temp_anteri or;
Código Fonte
125
temp_anterior = temp_proximo;
mat_freq2(J,temp_anterior) = NaN;
end
end
matriz_freq = mat_final;
end
function [ mat_bin_org ] = organizar_bin(mat_bin,mat_freq)
%Organiza matriz binaria a partir da matriz de freq uencias relativas
%removendo as oscilações presentes
[M N]=size(mat_bin); %Extrai o tamanho da matriz binaria de partida.
resultado = zeros(M,N); %Cria uma matriz de zeros a priori para guardar
o resultado independente do tempo de duração.
valores = mat_freq < 150;
for I = 1:M %Laço curto, pois M=84 linhas
inicio = 1;
fim = 0;
K = 0;
while (fim < N)
K = K + 1;
fim = fim + mat_freq(I,K);
resultado(I,inicio:fim) = valores(I,K);
inicio = fim + 1;
end
end
mat_bin_org = resultado;
end
Código Fonte
126
function [mat_notas_aceitaveis mat_tempo_codigo] = analisar (Binaria_Org)
%Algoritmo otimizado para calculo das larguras das notas (Tempo de
Duração) e retorna a matriz contendo apenas notas c onsideráveis (Tempo
de duração superior a 50 milissegundos (400 amostras)).
bin = [Binaria_Org zeros(84,1)]; %Concatena uma coluna de zeros ao final
da matriz binarizada.
mat_diff = diff(bin')'; %Calcula as derivadas linha a linha da matriz
binarizada (Obtem pulsos de subida(+1) e descida(-1 ) das janelas).
[M N] = size(Binaria_Org); %Retorna numero de linhas em M e numero de
colunas em N
Quant_elem = ceil(max(sum(abs(mat_diff')))/2); %Extrai a maior quantidade
de notas ocorrida em um dado banco.
Binaria_Org_Final = Binaria_Org;
mat_tmp_cod = [];
mat_tmp_cod_ordenada_decrescente = [];
for J = 1:M %laço curto, pois M=84
Quant_elem_por_linha = (sum(abs(mat_diff(J,:))) )/2; %Extrai a
quantidade de notas pertencentes a J-ésima linha.
for K = 1:Quant_elem_por_linha %laço curto, pois so contabilizou as
notas existentes
[Ai pos_i]= max(mat_diff(J,:)); %Captura a posição da K-ésima
borda de subida (Pulso +1)
[Af pos_f]= min(mat_diff(J,:)); %Captura a posição da K-ésima
borda de descida (Pulso -1)
duracao = pos_f - pos_i; %Calcula a largura (em amostras) da K-
ésima nota encontrada, se houver.
mat_diff(J,pos_i)=0; %Elimina o pulso de subida da K-ésima nota
para que seja possível localização da próxima.
mat_diff(J,pos_f)=0; %Elimina o pulso de descida da K-ésima nota
para que seja possível localização da próxima.
if duracao < 3000 %Se nota for muito curta
Binaria_Org_Final(J,pos_i:pos_f) = 0; %Elimina nota muito
curta em duração.
else %Guarda informações temporais das notas sobrevivent es
vetorvar = [duracao ; pos_i ; pos_f ; ( J-1)];
mat_tmp_cod = [mat_tmp_cod vetorvar];
mat_tmp_cod_ordenada_decrescente = -sor trows((-
mat_tmp_cod)')'; %Ordena decrescentemente por tempo de duração.
end
end
Código Fonte
127
end
mat_notas_aceitaveis = Binaria_Org_Final;
mat_tempo_codigo = mat_tmp_cod_ordenada_decrescente ;
end
Function [notas_sobreviventes cod_nota] = filtrar_notas(
mat_notas_aceitaveis)
%Filtra da matriz binária organizada apenas as linhas que apresentam
notas musicais com tempo de duração superior a 50 milisse gundos (400
amostras) e guarda em cod_nota seus códigos musicai s.
[M N] = size(mat_notas_aceitaveis);
vetor_duracao_total_por_banco = sum(mat_notas_aceit aveis');
cod = [];
sobreviventes = [];
for i=1:M
if vetor_duracao_total_por_banco(i) > 400
cod = [cod (i-1)];
sobreviventes = [sobreviventes ; mat_notas_a ceitaveis(i,:)];
end
end
notas_sobreviventes = sobreviventes;
cod_nota = cod;
end
Código Fonte
128
function [cod_insercao]=consultar_sobreposicao(arefi,areff, atesi,atesf)
%Verifica sob que condições uma dada nota de teste está em relação a uma
dada nota de referência.
%Como paramêtros são passados os tempos iniciais e finais de cada nota.
vetor_calc = [(arefi-atesi) (areff-atesf) (arefi-at esf) (areff-atesi)];
vetor_respostas = vetor_calc < 0 ;
vetor_bin = vetor_respostas.*[1 2 4 8];
switch sum(vetor_bin)
case 7 %Existe uma Sobreposição pela direita que deve ser analisada
if ((areff-atesi)/(atesf-atesi)) > 0.6
cod_insercao = 1; %Considera- se nota pertencente ao conjunto
maior com pequena evacuação pela direita
else
cod_insercao = 2; %Considera- se nota não pertencente ao
conjunto maior. (+ a direita)
end
case 15 %Não existe sobreposição, nota de teste a direita d a nota de
referência
cod_insercao = 2; %Considera- se nota não pertencente ao
conjunto maior. (Esta a direita dela)
case 5 %A nota de teste esta completa mente contida na nota de
referência
cod_insercao = 0; %Considera- se nota completamente
pertencente ao conjunto maior
case 4 %Existe uma Sobreposição pela esquerda que deve ser analisada
if ((atesf-arefi)/(atesf-atesi)) > 0.6
cod_insercao = -1; %Considera- se nota pertencente ao
conjunto maior com pequena evacuação pela esquerda
else
cod_insercao = -2; %Considera- se nota não pertencente ao
conjunto maior. (+ a esquerda)
end
case 0 %Não existe sobreposição, nota de teste a esquerda da nota de
referência
cod_insercao = -2; %Considera- se nota não pertencente ao
conjunto maior. (Esta a esquerda dela)
otherwise
end
end
Código Fonte
129
function [ matfinal ] = empacotar_notas(mattemp)
%Empacota as notas pertencentes ao mesmo intervalo de tempo, podem ser
acordes
[M N] = size(mattemp); %Captura a dimensão da matriz inicial
mattemporaria = mattemp;
matformacao = NaN(N+M,N);
contadorX = 4; %Inicializa em quatro, pois as notas serão registradas a
partir da 4° linha
contadorXmax = 4;
contadorY = 0;
if N == 1 %Se apenas houver um elemento
contadorY = 1; %Uma única coluna
matformacao(1:4,contadorY) = mattemporaria(1:4, 1); % O coloca na
matriz de formação.
end
while N > 1 %Caso haja mais elementos
contadorY = contadorY + 1;
matformacao(1:4,contadorY) = mattemporaria(1:4, 1);
mattransicao = []; %Declara uma matriz vazia
for j=2:N
cod =
consultar_sobreposicao(mattemporaria(2,1),mattempor aria(3,1),mattemporari
a(2,j),mattemporaria(3,j));
if abs(cod) < 2
contadorX = contadorX + 1;
matformacao(contadorX,contadorY) = mattempo raria(4,j);
else
mattransicao = [mattransicao mattemporaria( :,j)]; %Insere a
coluna que não pertence ao conjunto para próxima an álise.
end
end
mattemporaria = mattransicao;
[M N] = size(mattemporaria); %Armazena o comprimento da matriz
temporaria corrente
if N == 1 %Se sobrou um último elemento isolado
contadorY = contadorY + 1;
matformacao(1:4,contadorY) = mattemporaria(1:4, 1); % O coloca na
matriz de formação.
end
contadorXmax = max(contadorXmax,contadorX); %Captura o maior número de
Código Fonte
130
notas armazenadas num único pacote.
contadorX = 4; %Reinicializa o contador linhas.
end
matfinal = matformacao(1:contadorXmax,1:contadorY );
end
Código Fonte
131
function [ mat_cifras mat_escalas mat_intervalos] = compor_ resultados(
mat_final)
matfinal = mat_final;
[M N] = size(matfinal); %Captura dimensão inicial da matriz
%Organiza a matriz final por ordem cronolôgica
mattemp = NaN(M,N);
mattemp(1:M-1,:) = matfinal(2:M,:);
mattemp(M,:) = matfinal(1,:);
mattemp = sortrows(mattemp')';
matfinal(2:M,:) = mattemp(1:M-1,:);
matfinal(1,:) = mattemp(M,:);
%Fim
%Organiza a matriz por ordem de código
matfinal = [matfinal(1:3,:) ; sort(matfinal(4:M,:)) ];
%Fim
%Algoritmo para eliminação de códigos imagem e adja centes
for I = 1:N
x = 4;
while (1)
if x < M
for J = (x+1):M
if ( ( mod((matfinal(J,I) - matfinal(x,I)),12) == 0 ) ||
(abs(matfinal(J,I) - matfinal(x,I)) == 1) ) %Testa se é harmonicos imagem
ou interferencia adjacente
matfinal(J,I) = NaN;
end
end
matfinal(x+1:M,I) = sort(matfinal(x+1:M,I)) ;
x = x + 1;
else
break ;
end
end
end
%Fim
Código Fonte
132
k = 3;
while (max(matfinal(k+1,:)) < 85 )
k = k + 1;
if k == M
break ;
end
end
mat_escalas = matfinal(1:k,:);
mat_cifras = [ mat_escalas(1:3,:) ; mod(mat_esc alas(4:k,:),12)];
if k > 4
mat_intervalos = [(mod(diff(mat_cifras(4:k, :)),12))/2];
else
mat_intervalos = NaN(1,N);
end
end
Código Fonte
133
function [cifra comprimentoacorde] = texto_cifrado(mat_cifr as,
mat_intervalos,ocorrencia)
vetorcifra = mat_cifras(:,ocorrencia)';
vetorcifra(1:3) = [];
vetorintervalo = mat_intervalos(:,ocorrencia)';
k = 0;
while (vetorintervalo(k+1) < 85) %Retira entradas invalidas (NaN's)
k = k + 1;
if k == length(vetorintervalo)
break ;
end
end
comprimentoacorde = k + 1;
cifra = [ '{ ' nomemclatura_nota(vetorcifra(1))]; %Obtém o símbolo da nota
que nomeia o acorde
cifra_ = cifra; %Guarda informação inicial
if comprimentoacorde > 1
for I = 2:comprimentoacorde
if I == comprimentoacorde
cifra = [cifra '-' nomemclatura_nota(vetorcifra(I)) '
}' ];
else
cifra = [cifra '-' nomemclatura_nota(vetorcifra(I))];
end
end
end
switch comprimentoacorde
case 1, %Nota pura
cifra = [cifra ' }' ]; %Fecha resultado
case 3,
if (vetorintervalo(1)==2 && vetorintervalo(2)==1.5) %Acorde
Maior
cifra = cifra_; %Recupera informação inicial
cifra = [cifra 'M }' ];
end
if (vetorintervalo(1)==1.5 && vetorintervalo(2)==2) %Acorde
Código Fonte
134
Menor
cifra = cifra_;
cifra = [cifra 'm }' ];
end
if (vetorintervalo(1)==1.5 && vetorintervalo(2)==1.5) %Acorde
Diminuta
cifra = cifra_;
cifra = [cifra 'dim }' ];
end
if (vetorintervalo(1)==2 && vetorintervalo(2)==2) %Acorde
Aumentado
cifra = cifra_;
cifra = [cifra 'aum }' ];
end
case 4,
if (vetorintervalo(1)==1.5 && vetorintervalo(2)==2 &&
vetorintervalo(3)==1.5) %Acorde Menor com 7ª
cifra = cifra_;
cifra = [cifra 'm7 }' ];
end
if (vetorintervalo(1)==1.5 && vetorintervalo(2)==2 &&
vetorintervalo(3)==2) %Acorde Menor com 7ª maior
cifra = cifra_;
cifra = [cifra 'm7M }' ];
end
if (vetorintervalo(1)==2 && vetorintervalo(2)==1.5 &&
vetorintervalo(3)==2) %Acorde Maior com 7ª
cifra = cifra_;
cifra = [cifra 'M7 }' ];
end
if (vetorintervalo(1)==1.5 && vetorintervalo(2)==1.5 & &
vetorintervalo(3)==2) %Acorde Diminuta com 7ª
cifra = cifra_;
cifra = [cifra 'dim7 }' ];
Código Fonte
135
end
if (vetorintervalo(1)==2 && vetorintervalo(2)==2 &&
vetorintervalo(3)==1.5) %Acorde Aumentada com 7ª
cifra = cifra_;
cifra = [cifra 'aum7 }' ];
end
case 5,
if (vetorintervalo(1)==2 && vetorintervalo(2)==1.5 &&
vetorintervalo(3)==1.5 && vetorintervalo(4)==2) %Acorde com 7ª e 9ª
cifra = cifra_;
cifra = [cifra '7/9 }' ];
end
if (vetorintervalo(1)==2 && vetorintervalo(2)==1.5 &&
vetorintervalo(3)==2 && vetorintervalo(4)==1.5) %Acorde com 7ª maior e
9ª
cifra = cifra_;
cifra = [cifra '7M/9 }' ];
end
if (vetorintervalo(1)==1.5 && vetorintervalo(2)==2 &&
vetorintervalo(3)==1.5 && vetorintervalo(4)==2) %Acorde com 7ª menor e
9ª
cifra = cifra_;
cifra = [cifra 'm7/9 }' ];
end
if (vetorintervalo(1)==1.5 && vetorintervalo(2)==1.5 & &
vetorintervalo(3)==2 && vetorintervalo(4)==1.5) %Acorde diminuta com 7ª
e 9ª
cifra = cifra_;
cifra = [cifra 'dim7/9 }' ];
end
otherwise ,
cifra = cifra; %Não altera informações
end
REFERÊNCIAS
Backus, J. (1997). The acoustical foundations of music (2ª ed.). New York: W. W.
Norton & Company.
Barbedo, J., & Lopes, A. (2008). Short-Term Classification of Musical Instruments:
A Critical View. 6º Congresso de Engenharia e Áudio (AES Brasil) , pp. 100 - 107.
Cordeiro Jr, M., & de Oliveira, H. (2009). Sistema de Reconhecimento
Automatizado de Notas Musicais Isoladas. XXXII CNMAC , 2, pp. 1038 - 1039.
Cordeiro Jr.[P01], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P01. Fonte: Youtube: http://www.youtube.com/watch?v=p1jZPTaJlGU
Cordeiro Jr.[P02], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P02. Fonte: Youtube: http://www.youtube.com/watch?v=ays-fSGfuJs
Cordeiro Jr.[P03], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P03. Fonte: Youtube: http://www.youtube.com/watch?v=LfgY_u7yy34
Cordeiro Jr.[P04], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P04. Fonte: Youtube: http://www.youtube.com/watch?v=qwUaQuuA1m4
Cordeiro Jr.[P05], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P05. Fonte: Youtube: http://www.youtube.com/watch?v=dfSjXlmGKwo
Cordeiro Jr.[P06], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P06. Fonte: Youtube: http://www.youtube.com/watch?v=mwlPCX44tZQ
Cordeiro Jr.[P07], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P07. Fonte: Youtube: http://www.youtube.com/watch?v=rYLZfF48yws
Cordeiro Jr.[P08], M. (20 de Julho de 2011). Demonstração - Dissertação MMCJ
P08. Fonte: Youtube: http://www.youtube.com/watch?v=cqgCy8KVAxM
Cordeiro Jr.[Seqacordes], M. (20 de Julho de 2011). Demonstração - Dissertação
MMCJ Seqacordes. Fonte: Youtube: http://www.youtube.com/watch?v=9g2airzyuII
Artigos Publicados
137
Cordeiro Jr.[Seqnotas], M. (20 de Julho de 2011). Demonstração - Dissertação
MMCJ Seqnotas. Fonte: Youtube: http://www.youtube.com/watch?v=rLJRFc29_jQ
Cordeiro Jr.[Sonata8], M. (20 de Julho de 2011). Demonstração - Dissertação
MMCJ Sonata8. Fonte: Youtube: http://www.youtube.com/watch?v=Qnzcq0OpvcY
de Igaratinga, A. (2006). Curso de Violão Popular ETM 6.3. Minas Gerais, Brasil.
de Oliveira, H. M. (2007). Análise de Fourier e Wavelets: Sinais Estacionários e
não Estacionários. Recife: Editora Universitária da UFPE.
Diniz, P. R., da Silva, E. B., & Netto, S. L. (2004). Aproximações para filtros FIR.
In: Processamento Digital de Sinais: Projeto e Análise de Sistemas (L. P.
Biscainho, Trad., pp. 209 - 223). Porto Alegre: Bookman.
Dodge, C., & Jerse, T. A. (1997). Computer music synthesis, composition, and
performance (2ª ed.). New York: Schirmer Books.
Dovicchi, J. C. (1999). Novos coeficientes wavelets baseados em intervalos
musicais para análise de timbres de instrumentos acústicos. Uberlândia:
Universidade Federal de Uberlândia.
Ferreira, S. (2006). Sistema especialista para reconhecimento de acordes
musicais em tempo real para violão elétrico utilizando técnicas de DSP.
Dissertação de Mestrado, UFBA.
Fujishima, T. (1999). Realtime chord recognition of musical sound: A system using
Common Lisp Music. Proc. of the Int. Computer Music Conf., Beijing: International
Computer Music Association.
Gonzales, R. P., & Woods, R. C. (2010). Processamento Digital de Imagens (3ª
ed.). São Paulo: Prentice Hall.
Harte, C., & Sandler, M. (2005). Automatic chord identification using a quantised
chromagram. Proceedings of the Audio Engineering Society .
Haykin, S., & Van Veen, B. (2001). Sinais e sistemas (4ª ed.). Porto Alegre:
Bookman.
Artigos Publicados
138
Kostka, S., & Dorothy, P. (2000). Tonal harmony, with a introduction to twentieth-
century music (4ª ed.). McGraw-Hill.
Lacerda, O. (1996). Compêndio de teoria elementar da música (9ª ed.). São
Paulo: Ricordi Brasileira S.A.
Lee, K. (2006). Automatic Chord Recognition from Audio Using Enhanced Pitch
Class Profile. proc. of the International Computer Music Conference, (p. 8p.).
Lee, K., & Slaney, M. (2006). Automatic chord recognition from audio using a
supervised HMM trained with audio-from-symbolic data. proc. of the 1st ACM
workshop on Audio and music computing multimedia, (pp. 11 - 19).
Med, B. (1997). Teoria da música (4ª ed.). Brasília: Musimed.
Ogasawara, A. (2008). Reconhecedor de notas musicais em sons polifônicos.
UFRJ, Departamento de Eletrônica e Computação.
Oppenheim, A. V., Schafer, R. W., & with Buck, J. R. (1999). Filter Design
Techniques. In: Discrete-time Signal Processing (Upper Saddie River 2ª ed., pp.
474 - 477). New Jersey: Prentice Hall.
Szczupack, A., & Biscainho, L. (2009). Identificação de notas musicais em
registros de violão solo. 7ª Congresso de Engenharia e Áudio (AES Brasil) , pp. 26
- 33.
Tavares, T., Barbedo, J., & Lopes, A. (2008). Towards the evaluation of automatic
transcription of music. 6º Congresso de Engenharia e Áudio (AES Brasil) , pp. 96 -
99.
SOFTWARES E APLICATIVOS UTILIZADOS
i The CyberBrothers Virtual Piano 3.0.0 ii Virtual Piano Online ( http://www.virtualpiano.net/ ) iii Virtual Keyboard ( http://www.bgfl.org/bgfl/custom/resources_ftp/client_ftp/ks2/music/piano/ ) iv Curso de Violão ETM 6.3 por Airton Alves Rodrigues. v Curso Interativo de Violão Popular 4.0 por Airton Alves Rodrigues vi Sound Forge 9.0 by Sony Creative Software Inc.