processamento de Áudio digital créditos acetatos do livro de mrinal mandal chapter 10:digital...

53
Processamento de Áudio Digital

Upload: internet

Post on 18-Apr-2015

116 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Processamento de Áudio Digital

Page 2: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Créditos

• Acetatos do livro de Mrinal Mandal

Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer A. Publishers

Page 3: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Aplicações

Filtragem

Equalização

Supressão de ruído

Compressão

Adição de efeitos sonoros

Síntese

Com o aumento dos sistemas multimédia e do WWW, as técnicas deprocessamento de áudio tornaram-se populares.

Page 4: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtragem Áudio

Page 5: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Espectro de sinal áudio

Sinal áudio “bell.wav” Espectro de Frequência

Page 6: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Código MatLab : Exemplo 10.1-I• Reading the input audio data• infile = 'F:\data\audio\bell.wav' ;• % Name of the Input file• [x, Fs, bits]=wavread(infile);• %• %Plotting the input signal• plot([1:length(x)]/1000,128*x) ;• title ('original speech signal')• xlabel('Samples (x1000)'); ylabel('Sample Values');• print -dtiff plot.tiff• %• %Calculating Power spectral density• hann_wind = round(2048*0.8) ;• [Px,F] = psd(x,2048,Fs,[],hann_wind); % power spectral density of the input signal• plot(F/1000,10*log10(Px))• xlabel('Frequency (in KHz)'); ylabel('Power Spectral Density (in dB)');• print -dtiff plot.tiff

Page 7: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtro Passa Baixo (Exemplo 10.1)

filt_low = fir1(64, 4000/11025) ; % filt_low is a 64-tap filter with a normalized cut-off frequency 0.3628 %that corresponds to 4000 Hz for a sampling frequency of 22.05 kHz. %The same filter would have a cut-off frequency of 8 kHz if the% sampling frequency is 44.1 kHz

x_lpf = filter(filt_low,1,x) ; % x_lpf is the lowpass filtered audio signal

Filter Order Cut-off Frequency (in Hz)Folding Frequency (in Hz)

Page 8: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Ganho do Filtro e Saída

Características de Ganho deFrequência do Filtro Passa Baixo

Espectro do sinalfiltrado

Page 9: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Código MatLab : Exemplo 10.1-II• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%• %Lowpass Filtering• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%• lcutoff = 4000 ; % cutoff frequency in Hz• wp = lcutoff/(Fs/2) ; % Normalized cutoff• filt_low = fir1(64,wp) ;• %Plotting the LPF frequency characteristics• [L, w] = freqz(filt_low,1,512);• LdB = 20*log10(abs(L)) ;• plot((w/pi)*(Fs/2000), LdB), grid• xlabel('Frequency (in KHz)')• ylabel('Lowpass Filter Gain (in dB)');• print -dtiff plot.tiff• %Lowpass filtering the audio signal• x_lpf = filter(filt_low,1,x) ;• x_lpf=x_lpf./max(0.1,max(abs(x_lpf))) ; % scale up the output• wavwrite(x_lpf,Fs,8,'f:\bell1_lpf.wav'); % Write the output signal as a wav file• %• %Calculating Power spectral density• hann_wind = round(1024*0.8) ;• [Px_lpf,F] = psd(x_lpf,1024,Fs,[],hann_wind); % power spectral density of the lowpass output• plot(F/1000,10*log10(Px_lpf))• xlabel('Frequency (in KHz)'); ylabel('PSD (in dB)');• print -dtiff plot.tiff• %

Page 10: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtro Passa Banda

filt_bp = fir1(64,[4000 6000]/11025) ;

%Bandpass filtering the audio signal

x_bpf = filter(filt_bp,1,x) ;

Ordem do filtroLower Cut-off Frequency (in Hz)

Upper Cut-off Frequency (in Hz)

Page 11: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Ganho do Filtro e Saída

Características de Ganho deFrequência do Filtro Passa Banda

Espectro do sinalfiltrado

Page 12: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Código MatLab : Exemplo 10.1-III• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%• %Bandpass Filtering• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%• cutoff1 = 4000 ; % Low cutoff frequency• cutoff2 = 7000 ; % Low cutoff frequency• wp =[cutoff1 cutoff2]/(Fs/2) ; % Normalized cutoff• filt_bp = fir1(64,wp) ;• %Plotting the BPF frequency characteristics• [B, w] = freqz(filt_bp,1,512);• BdB = 20*log10(abs(B)) ;• plot((w/pi)*(Fs/2000), BdB), grid• xlabel('Frequency (in KHz)')• ylabel('Bandpass Filter Gain (in dB)');• print -dtiff plot.tiff• %Bandpass filtering the audio signal• x_bpf = filter(filt_bp,1,x) ;• % scale up the output• x_bpf=x_bpf./max(0.1,max(abs(x_bpf))) ;• % Write the output signal as a wav file• wavwrite(x_bpf,Fs,8,'f:\bell1_bpf.wav');• %• %Calculating Power spectral density• hann_wind = round(1024*0.8) ;• %power specttral density of the lowpass output• [Px_bpf,F] = psd(x_bpf,1024,Fs,[],hann_wind); • plot(F/1000,10*log10(Px_bpf))• xlabel('Frequency (in KHz)');• ylabel('PSD (in dB)');• print -dtiff plot.tiff

Page 13: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtro Passa Alto

filt_high = fir1(64,4000/11025,’high’) ;

%Highpass filtering the audio signal

x_hpf = filter(filt_high,1,x) ;

Filter Order Cut-off Frequency (in Hz)

Page 14: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Ganho do Filtro e Saída

Características de Ganho de Frequência do filtro Passa Alto

Espectro do sinal de saída

Page 15: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Código MatLab : Exemplo 10.1-IV• %• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%• %Highpass Filtering• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%• hcutoff = 4000 ; % cutoff frequency in Hz• wp = hcutoff/(Fs/2) ; % Normalized cutoff• filt_high = fir1(64,wp,'high') ;• %Plotting the LPF frequency characteristics• [H, w] = freqz(filt_high,1,512);• HdB = 20*log10(abs(H)) ;• plot((w/pi)*(Fs/2000), HdB), grid• xlabel('Frequency (in KHz)')• ylabel('Filter Gain (in dB)');• print -dtiff plot.tiff• %Highpass filtering the audio signal• x_hpf = filter(filt_high,1,x) ;• % scale up the output• x_hpf=x_hpf./max(0.1,max(abs(x_hpf))) ;• % Write the output signal as a wav file• wavwrite(x_hpf,Fs,8,'f:\bell1_hpf.wav');• %• %Calculating Power spectral density• hann_wind = round(1024*0.8) ;• %power specttral density of the lowpass output• [Px_hpf,F] = psd(x_hpf,1024,Fs,[],hann_wind); • plot(F/1000,10*log10(Px_hpf))• xlabel('Frequency (in KHz)');• ylabel('PSD (in dB)');• print -dtiff plot.tiff• %

Page 16: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Comparação dos sons

• Som original

• Saída de Filtro Passa Baixo

• Saída de Filtro Passa Banda

• Saida de Filtro Passa Alto

Page 17: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Equalização de Áudio

Page 18: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Controlo de Tom

O método do controlo de tom disponibiliza uma maneira

simples e rápida de ajustar o som ao gosto dos ouvintes

Os aparelhos de áudio tem normalmente dois botões de controlo

designados como baixo e agudos (treble).

Cada um desses botões controla um tipo especial de filtro

designado como shelving filter.

O botão de baixo controla um filtro de shelving passa baixo

enquanto o botão de treble controla um filtro de shelving passa

alto.

Page 19: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtros Shelving

Gai

n (i

n d

B)

Gai

n (i

n d

B)

Gai

n (i

n d

B)

Gai

n (i

n d

B)

Passa Baixo Baixo

Passa Alto Treble

Page 20: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtro Peaking

Center frequency

Gai

n (in

dB)

FrequencyCenter frequency

Gai

n (in

dB)

Frequency

•Muitos sistemas de áudio têm um controlo médio (mid), para além do

•baixo e dos agudos

•Este controlo usa basicamente usa um filtro passa banda que aumenta ou

corta na gama média de frequência

Page 21: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Equalizadores Gráficos

Os equalizadores gráficos são mais sofisticados que os de controlo de tom

O sinal de entrada é passado tipicamente através de um banco de 5-7 filtros passa-banda

A saída dos filtros é ponderada pelos factores de ganho correspondentes e adicionados para reconstruir o sinal.

Os filtros são caracterizados pelas frequências de corte normalizadas. Por este facto, os mesmos filtros funcionam com frequências de amostragem diferentes.

Page 22: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Diagrama de um sistema equalizador

BP Filter-1

BP Filter-2

BP Filter-N

DigitalAudio

EqualizedAudioOutput

Equalizer Gains

G-1

G-2

G-N

BP Filter-1BP Filter-1

BP Filter-2BP Filter-2

BP Filter-NBP Filter-N

DigitalAudio

EqualizedAudioOutput

Equalizer Gains

G-1

G-2

G-N

Page 23: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Exemplo de Equalização (Ex-10.2)

Considere um sinal áudio test44k cuja forma de onda é mostrada abaixo.

Sinal de áudio “test44k” Espectro de frequência

Page 24: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Frequências de corte dos Filtros Passa Banda

A frequência de amostragem do sinal de áudio é 44.1 KHz.

Um equalizador de 5 bandas concebido com base num banco de

filtros

As frequências de corte dos 5 filtros passa-banda estão abaixos

Cut-off frequency (in Hz)

Normalized cut-off frequency

Filter# Lower Upper Lower Upper 1 20 1200 0.0009 0.0544 2 1200 2500 0.0544 0.1134 3 2500 5000 0.1134 0.2268 4 5000 10000 0.2268 0.4535 5 10000 20000 0.4535 0.9070

Page 25: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Ganho de resposta dos Filtros Passa Banda

bpf(3,:) = fir1(32, [0.1134 0.2268]);

Os filtros passa-banda podem ser facilmente concebidos com comandos MatLabPor exemplo o terceiro filtro pode ser concretizado com o comando

Page 26: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Energia Média nas diferentes bandas

Band Energy (in dB) Time (in sec) Band-1 Band-2 Band-3 Band-4 Band-5 0-3 37.4610 30.8688 15.7790 10.4556 2.1273 3-6 36.1113 29.4799 15.7305 11.6237 6.9943 6-9 37.2630 30.1553 13.9430 9.2472 3.7286 9-12 34.7644 29.2201 16.6713 15.1690 5.3465 12-15 36.5304 30.2963 14.8195 9.1849 2.1991 15-18 37.3523 30.5949 14.2061 8.9226 1.8897

Para o sinal original

Page 27: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

VARIAÇÃO DO GANHO NAS DIFERENTES BANDAS

Band Energy (in dB) Time (in sec) Band-

1 Band-2

Band-3

Band-4

Band-5

0-3 10 0 0 0 0 3-6 0 10 0 0 0 6-9 0 0 15 0 0 9-12 0 0 0 20 0 12-15 0 0 0 0 20 15-18 10 0 0 0 0

Para o sinal equalizado

Page 28: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Áudio Filtrado

Sinal original Sinal equalizado

Page 29: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

MELHORAMENTO DO ÁUDIO

Page 30: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Porquê o Melhoramento?

A qualidade do sinal pode ser degradado devido a várias razões

Um sistema de produção de voz de baixa qualidade produz áudio

de baixa qualidade.

A presença de interferência de fundo pode causar a degradação

da qualidade do áudio.

O ruído de quantização introduzido durante a compressão é

outra fonte de degradação.

Os algoritmos de melhoramento de áudio podem ser usados para

reduzir o ruído contido no sinal e melhorar a qualidade do sinal.

Page 31: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Diferentes técnicas

Subtração Espectral : esta téncica suprime o ruído subtraindo um ruído estimado durante os períodos de silêncio.

Filtro Wiener: minimiza o erro médio quadrático no processo de filtragem inversa e alisamento do ruído. Requer o conhecimento prévio das estatísticas de ruido e da voz.

Cancelamento adaptativo de ruído: este método utiliza um filtro adaptativo que actua num sinal de referência para produzir uma estimativa do ruído. O ruído é então subtraído do sinal de entrada. É usado tipicamente o algoritmo LMS no processo de adaptação. Os pesos do filtro são ajustados para minimizar o quadrado da energia média da saída global.

Page 32: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Supressão de Ruído por Filtragem Digital

Se a componente de ruído tem um espectro estreito uma filtragem digital simples pode ser usada para eleminar os componentes de ruído.

Noisespike

Page 33: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtragem do sinal de áudio

Ganho de Resposta do Filtro Espectro do sinal filtrado

Page 34: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Filtragem-2

Ganho de Resposta do Filtro Espectro do sinal de saída

Page 35: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Método de Subtração Espectral(SSM)

Se o ruído tem uma distribuição espetral estreita, a filtragem digital

pode ser facilmente aplicada para suprimir esta componente de ruído.

Contudo, se a componente de ruído tem um banda espectral grande,

uma simples filtragem de supressão de banda pode não ser apropriada.

O Método de subtracção espectral (SSM) é uma abordagem simples e

eficaz para suprimir ruído de fundo estacionário.

Este método é baseado no conceito que o espectro na frequência do

sinal é espresso como a soma do espectro de voz e espectro do ruído.

O processamento é feito inteiramente no domínio da frequência.

Page 36: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Considere um sinal de fala com ruído f(k). O sinal com ruído

pode ser assumido com sendo um sinal sem ruído y(k) e um sinal

de ruído n(k). Por outras palavras,

f(k) = y(k) + n(k)

Ou seja :

y(k) = f(k) - n(k)

Calculando a transformada de Fourier de ambos os lados,

obtemos

NFY

Princípios do SSM

Page 37: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Estimação do Sinal

Se o espectro de ruído (tanto amplitude como fase) é conhecido com precisão, então o sinal livre de ruído pode ser obtido simplesmente subtraindo-o do sinal com ruído.

Contudo, na prática, apenas se dispõe duma estimativa da amplitude espectro de ruído. No SSM, o espectro do sinal com ruído reduzido é estimado com:

gF

F

NF

F

NFFY

||

||1

||

||||

gOnde é um parâmetro para expressar a quantidade de ruído

signalnoise

noiseg

0

01 Na prática assume-se que

]10010[ .,.,g

Page 38: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Diagrama do SSM

Page 39: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Passos do SSM

3 passos principais:

O espectro de ruído é estimado quando o orador está em silêncio.

-- Assuma que o espectro de ruído não mude rapidamente.

O espectro de ruído é então subtraído do espectro de amplitude do

sinal de entrada com ruído.Usando este novo espectro de amplitude, e espectro de fase do sinal

com ruído original, o sinal de áudio no domínio de tempo é calculado

usando a transformada inversa de Fourier.

Page 40: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Exemplo SSM (#10.4)

Sinal de áudio “noisy_audio2 ” Espectro do sinal

• Duração no tempo = 2.7 segundos• A frequência de amostragem é 22,050 Hz.• Há buracos na forma de onda da fala, que indica periodos de silêncio em que o ruído pode ser ouvido.• O ruído é representada por uma gama larga de componentes de frequência.

Page 41: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Os buracos no sinal de voz são usados para estimar espectro do sinal de ruído.

Princípios da Estimação de Ruído

Segmentar o sinal em pequenos quadros para obter pequenos

segmentos do sinal em que não haja fala. Calcular o espectro de cada quadro São calculados os valores minimos dos componentes espectrais por

cada bin de frequência nos quadros. O valor mínimo é usado para estimar o ruído A estimação acima pode ser considerada uma sub-aproximação do

ruído. Portanto é multiplicado por um factor de escala para obter o

espectro de ruído que é usado pelo SSM.Neste exemplo, podemos usar um factor de escala de 20.

Page 42: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Detalhes de Implementação do SSM

O código MATLAB para o processamento SSM está incluído no CD.

O tamanho de quadro áudio é escolhido como 512.

Há uma sobreposição de 50% entre dois blocos de áudio

consecutivos.

O valor de λ é colocado a 0.025.

A função de janela é derivada da janela de Hamming.

Page 43: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

O Sinal melhorado com o SSM

O sinal melhorado tem reduzido de forma significativa os componentes de alta frequência na gama 2-5 kHz.

Page 44: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

EDIÇÃO DE FICHEIROS MIDI

Page 45: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Edição de Áudio e MIDI

Ao contrário do áudio digital, o MIDI é genericamente livre

de ruído uma vez que é sintetizado.

Portanto as técnicas de filtragem de ruído não são aplicáveis a

ficheiros MIDI.

Nesta secção, apresentamos alguns exemplos para ilustrar a

criação e edição de ficheiros MIDI.

Page 46: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Exemplo de ediçao de MIDI (# 10.5)

Foi criado no exemplo 2.2 um pequeno ficheiro MIDI

4D 54 68 64 00 00 00 06 00 01 00 01 00 78 4D 54 72 6B 00 00 00 14 01 C3 02 01 93 43 64 78 4A 64 00 43 00 00 4A 00 00 FF 2F 00

O ficheiro MIDI gera a nota G3 tocada num piano eléctrico grande, com velocidade (que se relaciona com o volume) 100.

Neste exemplo será criado um ficheiro MIDI que gera a nota E1 tocada num Piano Rhodes com a velocidade 68.

Page 47: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Edição do Ficheiro

O terceiro byte na segunda linha (0x02) corresponde ao Electric Grand Piano (ver Tabela 2.9). -- No sentido de criar uma nota para o Rhodes Piano, o número de instrumento tem que ser mudado para 0x04.

O sexto byte 0x43 gera a nota G3. -- No sentido de criar a nota E6, este byte deve ser mudado para 0x64 (ver a Tabel 10.4 para os equivalentes decimais para o número de notas para piano).

A velocidade 100 é devida aos 7º e 10º bytes (0x64 cada ) na segunda linha -- Para criar o volume de 68, o 7º e o 10º bytes devem ser mudados para 0x44 em vez de 0x64.

Page 48: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Números para notas de Piano

Octave C C# D D# E F F# G G# A A# B -2 00 01 02 03 04 05 06 07 08 09 10 11 -1 12 13 14 15 16 17 18 19 20 21 22 23 0 24 25 26 27 28 29 30 31 32 33 34 35 1 36 37 38 39 40 41 42 43 44 45 46 47 2 48 49 50 51 52 53 54 55 56 57 58 59 3 60 61 62 63 64 65 66 67 68 69 70 71 4 72 73 74 75 76 77 78 79 80 81 82 83 5 84 85 86 87 88 89 90 91 92 93 94 95 6 96 97 98 99 100 101 102 103 104 105 106 107 7 108 109 110 111 112 113 114 115 116 117 118 119 8 120 121 122 123 124 125 126 127

As entradas estão expressas no formato decimal.

Page 49: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

O ficheiro MIDI editado

O novo ficheiro pode ser representado no formato hexadecimal da seguinte forma:

4D 54 68 64 00 00 00 06 00 01 00 01 00 78 4D 54 72 6B 00 00 00 14 01 C3 04 01 93 64 44 78 4A 44 00 43 00 00 4A 00 00 FF 2F 00

O ficheiro MIDI pode ser criado usando o seguinte código MATLAB:

data=hex2dbytes('4D546864000000060001000100784D54726B0000001401C30401936444784A44004300004A0000FF2F00');fid=fopen('F:\ex10_5.mid','wb');fwrite(fid,data);fclose('all');

Page 50: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Como adicionar uma segunda pista?

Pode ser útil sintetizar pistas com diferentes assinaturas de tempo e atocar diferentes instrumentos simultaneamente:

O código seguinte adiciona uma segunda pista ao código do exemploanterior (Header chunk) 4D 54 68 64 00 00 00 06 00 02 00 02 00 78

(Track 1) 4D 54 72 6B 00 00 00 14 01 C3 02 01 93 25 64 78 32 64 00 25 00 00 32 00 00 FF 2F 00(Track 2) 4D 54 72 6B 00 00 00 14 01 C3 03 01 93 43 64 78 18 64 00 43 00 00 18 00 00 FF 2F 00

Page 51: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Explicação do código

Quando a segunda pista é adicionada ao ficheiro, o formato é mudado

para 0x02 (10o byte na primeira linha ) de forma que cada pista

representa uma sequência independente.O número de pistas é também mudado para 02 (12º byte na primeira

linha ). Foram mudados uns poucos tempos delta e notas para ilustrar sons

diferentes.O Electric Grand Piano é tocado na primeira pista (0x02 na linha-3)

e o Honky-Tonk Piano é tocado na segunda pista (0x03 na linha -5). Essas duas pistas podem ser tocadas simulatenamente se se mudar o

tipo de formato para 0x01.

Page 52: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Ferramentas áudio seleccionadas

Nome do software

Sistema Operativo

Funcionalidades

Glame Linux Powerful, fast, stable and easily extensible sound editor. Freely available from WWW.

Digital Audio Processor

Linux Freely available from the WWW. Reasonably powerful

Cool Edit Win95/98/ME NT/2000/XP

Very powerful, easy to use. Capable of mixing up to 128 high-quality stereo tracks with any sound card.

Sound Forge XP Studio 5.0

Microsoft Windows 98SE, Me, or 2000

Sound Forge XP Studio provides an intuitive, easy-to-use interface and is designed for the everyday user.

gAlan Windows 98/XP/2000

gAlan allows you to build synthesizers, effects chains, mixers, sequencers, drum machines and more.

Page 53: Processamento de Áudio Digital Créditos Acetatos do livro de Mrinal Mandal Chapter 10:Digital Audio Processing, Multimedia Signals and Systems © Kluwer

Ferramentas de Edição MIDI

Ferramentas Funcionalidades Cakewalk It supports general MIDI, and provides several editing views

(staff, piano roll, event list) and virtual piano. It can insert WAV files and Windows MCI commands

(animation and video) into tracks. MIDI Maestro

A powerful, full-featured music software designed for use by amateur and professional music directors.

Dynamic, intuitive performance control and powerful sequencing and editing capabilities.

Music MasterWorks 3.62

It is a MIDI music composing program. Includes voice to note / wave to midi converter, staff / piano

roll notation editor, sheet music printing, chord creation, keeping notes within a key, transpose, quantize, play/record with external MIDI devices, configurable keys, audio, and the ability to ignore the complexities of tracks and channels

DWS_Midi_Song_Manager 1.0

An efficient program with which one can administer MIDI songs together with appropriate texts.

One can input titles and interpreter, music direction, lauflaenge of the music pieces, song text, text path and MIDI path.