Back

Fundamentals of Music Processing

Autor: Meinard Müller


Sumário


1. Representações Musicais


2. Análise de Sinais com Fourier

A análise de Fourier busca decompor um sinal complexo, como é o caso do sinal musical, em blocos de componentes senoidais, que tem uma interpretação interessante e explícita por conta das frequências. Ou seja, passamos a analisar um sinal não mais em função de seu tempo, mas em função das suas frequências.

2.1 Fourier Transform in a Nutshell

A ideia principal da análise de Fourier é comparar o sinal com senoides de frequência $\omega$ Hz variadas. Para cada comparação é calculado o coeficiente de magnitude $d_{\omega}$, que representa a similaridade entre o sinal e a senoide de frequência $\omega$, e uma fase $\phi_{\omega}$.

A transformada de Fourier permite a reconstrução perfeita do sinal original a partir de $d_{\omega}$ e $\phi_{\omega}$.

2.1.1 Transformada de Fourier para Sinais Analógicos

2.1.1.1 O papel da fase

2.1.1.2 Calculando Similaridade com Integrais

2.1.1.3 Primeira Definição da Transformada de Fourier

2.1.1.4 Números Complexos N/A

2.1.1.5 Definição Complexa da Transformada de Fourier


3. Sincronização de Música

Música pode ser descrita e representada de diferentes formas, como partituras, representações simbólicas e gravações, que abrem espaço para diferentes interpretações. A ideia intuitiva da sincronização é conseguir encontrar, dada uma posição em uma representação musical, a posição correspondente em outra representação.

3.1 Atributos de áudio

3.1.1 Espectrograma de Frequência-Logarítmica

3.1.2 Atributos de Chroma

3.1.2.1 Compressão logarítmica


4. Análise de Estrutura Musical


5. Reconhecimento de Acordes


6. Tempo e Marcação de Beat

Intuitivamente, a batida da música (o beat) corresponde a um pulso que um humano dá enquanto escuta uma música, às vezes até de maneira inconsciente. A batida é geralmente descrita como uma sequência de pulsos percebidos, que tipicamente são igualmente espaçados no tempo e especificados pela fase e pelo período.

Tem esse vídeo perfeito do próprio Müller sobre tempo e beat tracking. :top:

6.1 Detecção de onsets

Definições:

Para detectar onsets em um sinal a ideia é capturarmos os momentos de mudanças repentinas, que indicam o início de regiões transientes. No caso de notas que tem um ataque bastante pronunciado, o onset pode ser determinado ao localizar as posições em que a amplitude começa a crescer. Contudo, a tarefa pode ficar mais difícil quando temos notas mais suaves que apresentam um aumento lento em sua energia. Ainda mais complexo quando há música polifônica. Esses casos requerem métodos mais refinados.

6.1.1 Métodos baseados em energia

6.1.2 Métodos baseados em espectro

6.1.3 Métodos baseados em fase

6.1.4 Métodos de domínio complexo

6.2 Análise de Tempo

A análise de tempo e de beat pode ser um desafio quando os onsets são fracos e há mudanças locais no tempo (rubato) ou quando o fluxo rítmico é interrompido ou perturbado como é o caso da síncope. Assumimos que os onsets estão geralmente nos começos dos beats e que, para pelo menos algum período de tempo, os beats são igualmente espaçados. Embora isso seja violado algumas vezes, funciona pra maior parte das músicas comerciais, como pop e rock.

6.2.1 Representações de Tempograma

O tempograma indica para cada instante t uma relevância de um tempo específico de uma gravação. O tempo t é medido em segundos, enquanto o parâmetro de tempo $\tau$ é medido em BPM.

O tempograma é calculado no domínio do tempo, com o sinal discretizado. Assumindo que os pulsos têm a mesma posição que os onsets, o primeiro passo é usar uma função novidade para determinar as posições dos onsets.

Considerando a frequência $\omega$ Hz e um espaçamento entre as amostras de $T$, o tempo $\tau$ em BPM (beats per minute) é dado por $\tau = 60\omega$.

O tempo pode ter harmônicos e subharmônicos, uma vez que há algumas maneiras diferentes nas quais podemos perceber o beat e o tempo. Essas maneiras diferentes de percepção envolvem níveis de pulso maiores e menores.

6.2.2 Tempograma de Fourier

Para estimar a periodicidade, usamos a DTFT para calcular o coeficiente complexo de Fourier $F(n,\omega)$. Buscamos aqui a correlação entre o coeficiente de Fourier e uma seção (vizinhança) da função novidade, ou seja, a posição do tempograma é dada pela correlação entre esses dois termos.

Definido por

$T^F(n, \tau) = F(n, \tau/60) $,

onde F é o coeficiente de Fourier.

Essa categoria de tempograma geralmente indica os harmônicos do tempo, mas suprime os subharmônicos. Em aplicações práticas, só o intervalo entre 30 e 600 BPM (extremos inclusos é coberto), devido à nossa percepção de tempo.

6.2.3 Tempograma de autocorrelação

A autocorrelação é uma ferramente pra indicar a similaridade de um sinal com ele mesmo com um deslocamento (shift) no eixo do tempo. Também é conhecido como produto interno deslizante.

É definido por

$R_{xx}(l) = \sum_{m \in Z} x(m)x(m-l)$,

onde l é o deslocamento no tempo, conhecido também por lag.

Aplicar apenas um valor de lag na autocorrelação faz com que só saibamos a semelhança do sinal com ele mesmo para aquele valor, por isso existe a short-time autocorrelation, que é calculada para um número variável de lags

$A(n, l) = \sum_{m \in Z} \Delta(m)w(m-n)\Delta(m-l)w(m-n-l)$

Essa representação é uma representação tempo-lag e precisa ser convertia para tempo-bpm pra conseguirmos estimar o tempo.

6.2.4 Tempograma cíclico

6.3 Beat and Pulse Tracking

6.3.1 Predominant Local Pulse

PLP é uma melhoria da função novidade, que consegue recuperar os valores de onsets mais suaves, também se comportando bem em relação às mudanças locais de tempo ao escolher o nível de pulso predominante do trecho do sinal. A amplitude da curva do PLP representa a confiança naquela taxa de beats.

6.3.2 Beat Tracking by Dynamic Programming

6.3.3 Adaptative Windowing

6.4 Further Notes


7. Content-Based Audio Retrieval


8. Musically Informed Audio Decomposition