CURSO DE ENGENHARIA ELÉTRICA
JOÃO VITOR BAZER
MICROFONE DIGITAL
CURITIBA
2019
MICROFONE DIGITAL
Implementação final apresentado ao
Curso de Graduação em Engenharia
Elétrica da Pontifícia Universidade
Católica
Orientador: Prof. Dr. Marcelo Eduardo
Pellenz
——————————————————
CURITIBA
2019
Figura 2 – Diagramas de blocos de um parâmetro em interação com a DAW 10
..
Figura 3 – Diagrama de blocos do funcionamento do sistema
...
10
Figura 4– Diagrama de blocos do script do plugin
...
12
Figura 5 – Diagrama de blocos da captação da resposta em frequência.
...
13
Figura 6– Resposta em frequência do microfone Shure SM57, fornecida pelo
fabricante
...
14
Figura 7 – Resposta em frequência do microfone Shure SM57, levantada pelo autor
14
...
Figura 8– Resposta em frequência do microfone Shure SM48, fornecida pelo
fabricante
...
15
Figura 9– Resposta em frequência do microfone Shure SM48, levantada pelo autor
15
...
Figura 10 – Resposta em frequência do microfone Beringher XM1800S, fornecida
pelo fabricante
...
16
Figura 11 – Resposta em frequência do microfone Beringher XM1800S, levantada
pelo autor
...
16
Figura 12– Resposta em frequência do microfone Beringher AKG P220, fornecida
pelo fabricante
...
17
Figura 13– Resposta em frequência do microfone AKG P220, levantada pelo autor
17
...
Figura 14 – Resposta em frequência do microfone sem fabricante, levantada pelo
autor
...
18
Figura 15 –Sistemas de múltiplos filtros aplicados a um sinal de áudio
...
19
Figura 16 –Sistemas de múltiplos filtros
...
19
Figura 17 – Resposta de um sistema após a passagem do filtro.
...
20
Figura 18 – Sistema LTI
...
21
Figura 19 – Diagrama geral do projeto
...
26
Figura 20 – Interface grafica do Audio Test Bench no Matlab
...
28
Figura 21 – Resposta ao impulso da simulação do AKG
...
31
Figura 22– Resposta ao impulso da simulação do Shure SM48
...
31
Figura 26– Resposta ao impulso da simulação do microfone sem fabricante 33
..
Figura 27– Resposta ao impulso da simulação do microfone sem fabricante 34
..
Figura 28 – Plugin desenvolvido dentro do Matlab
...
35
Figura 29 – Ferramenta de ajuste de latência
...
36
Figura 30 – Plugin desenvolvido dentro do Matlab
...
37
Figura 31 – Exemplo de um sistema embarcado de processamento digital de sinais.
40
...
2.INTRODUÇÃO
...
7
3.DETALHAMENTO DO PROJETO
...
8
3.1 COMO PLUGIN INTERAGE COM A DAW
...
8
3.2 ENTRADAS E SAÍDAS DO SISTEMA
...
10
3.3 DESENVOLVENDO E DEFINIDO UM PLUGIN NO AMBIENTE MATLAB 11
..
3.4 LEVANTAMENTO DE CAMPO
...
13
3.5 TÉCNICA UTILIZADA PARA ADQUIRIR OS FILTROS EQUIVALENTES A
RESPOSTA EM FREQUÊNCIA DO MICROFONE
...
18
3.6 CONVOLUÇÃO ENTRE A RESPOSTA AO IMPULSO DO MICROFONE E
UM SINAL DE ENTRADA
...
20
4.PROCEDIMENTOS DE TESTE E VALIDAÇÃO
...
21
4.1 TESTE E VALIDAÇÃO DO PONTO DE VISTA DO USUÁRIO
...
22
4.2 TESTE E VALIDAÇÃO DO PONTO DE VISTA DO SISTEMA
...
22
5.RISCOS
...
24
5.1 LATÊNCIA
...
24
5.2 SIGNAL DROPS (PERDAS DE SINAL) E SINAIS DE SILÊNCIO
...
25
6.DIAGRAMA DE BLOCOS GERAL DO PROJETO
...
26
7.PLANO DE TESTES
...
27
6.1 PRIMEIRO TESTE AUDIO TESTE BENCH
...
27
6.1.1 RESULTADO DO AUDIO TESTE BENCH
...
27
6.1.2 FUNCIONALIDADE VALIDADA PELO AUDIO TESTE BENCH
...
29
6.2 SEGUNDO TESTE PLOTAGEM DA RESPOSTA EM FREQUÊNCIA PÓS
PROCESSAMENTO
...
30
6.2.1 RESULTADO DA PLOTAGEM
...
30
6.2.2 FUNCIONALIDADE VALIDADA PELA PLOTAGEM
...
34
6.3 TERCEIRO TESTE IMPLEMENTAR O PLUGIN DENTRO DE UMA DAW 34
.
6.3.1 RESULTADO DA IMPLEMENTAÇÃO
...
35
6.3.2 FUNCIONALIDADE VALIDADA PELA IMPLEMENTAÇÃO
...
35
6.2 TERCEIRO TESTE PROCESSAMENTO EM TEMPO REAL
...
36
7.CRONOGRAMA ATUALIZADO
...
38
8.CONSIDERAÇÕES FINAIS OU CONCLUSÃO
...
39
8.TRABALHOS FUTUROS
...
39
8.1 MELHORIAS
...
40
9.REFERÊNCIAS
...
41
ANEXO A – CÓDIGO PARA LEVANTAMENTO DE CAMPO
...
42
ANEXO B – CÓDIGOS DO PLUGINS
...
44
1.RESUMO
O microfone digital é composto por um conjunto de hardware e/ou software
que fornece um sistema para a modelagem de microfones. A tecnologia é baseada
em técnicas de processamento digital de sinais por meio de um VST (Virtual Studio
Technology), software com formato capaz de ser utilizado nas principais DAW
(Digital Audio Workstations). Os filtros do software são modelados com o objetivo de
corrigir a reposta em frequência do microfone e para se obter uma determinada
resposta em frequência análoga a um microfone desejado. O hardware do
equipamento é composto por um microfone e um pré amplificador, modelados para
serem sem características, com transparência no sinal, e também atua como um
agente passivo no sistema, deixando o software influenciar na resposta em
frequência da captação de um evento sonoro. Pode-se utilizar a Audio Toolbox do
Matlab para desenvolver a aplicação, além disso sabe-se que precisamos de um
conversor A/D para se realizar a conversão do domínio analógico para digital e do
digital para o analógico.
2.INTRODUÇÃO
A captação de um evento sonoro específico, seja ele para a finalidade musical
ou para sistemas de comunicação, é realizada por meio de um transdutor
eletroacústico, conhecido como microfone. O microfone surgiu com a necessidade
de registrar longos discursos, porém, esse invento acabou interessando músicos
que gostariam de ter suas performances musicais registradas. Com o início das
gravações musicais, e o interesse em desenvolver tecnologia para o áudio, diversos
tipos de microfones surgiram, cada um para uma finalidade específica e com
características específicas. Os microfones são agentes diretos no timbre
(características únicas de um determinado som), modificando as características do
evento sonoro inicial, realizando atenuações e ganhos em determinadas
frequências, o que consequentemente altera o timbre de um determinado som. Com
o objetivo de obter um controle maior sobre a influência dos microfones na captação
de eventos sonoros, hardwares e softwares de controle e simulação são criados, e
com sua utilização atinge-se um resultado desejado. O documento em questão
descreve o detalhamento da construção de um plugin VST, a sua definição, como
ele interage com outros softwares de processamento, a linguagem de programação,
como os parâmetros do plugins serão desenvolvimentos, levantamento de campo da
características de microfones, resultados obtidos com o plugin o cronograma final do
projeto, os riscos de projeto a conclusão e os trabalhos futuros em que a aplicação
poderá ser utilizada
3.DETALHAMENTO DO PROJETO
O projeto em questão visa realizar o desenvolvimento de um plugin. Os
plugins são trechos de códigos independentes que podem ser “plugados” em outros
softwares. para aumentar as suas funcionalidades. Quando se trata de plugins de
áudio, esses podem ser utilizados para processamento digital de sinais, análises ou
síntese sonora. Com o intuito de facilitar a interação do usuário, plugins utilizam
interface gráficas para a interação humano-máquina, essas interfaces são chamadas
de "Widgets"
Para processar um streaming de dados de áudio a estação de trabalho de
áudio digital chama o plugin, o qual encapsula a entrada de áudio em um frame, e
recebe de volta os frames em uma saída de áudio processada. Quando um
parâmetro do plugin muda, por exemplo, quando você move um controle na "Widget"
do plugin, a DAW notifica o plugin do seu novo valor de parâmetro. Plugins
geralmente possuem sua própria interface gráfica, porém todas as DAWS, fornecem
uma interface genérica para todos os plugins.
3.1 COMO PLUGIN INTERAGE COM A DAW
Algumas considerações devem se levadas em conta no desenvolvimento de
um plugin, ele deve ser compatível com o ambiente da DAW, o ambiente interage
através da função de processamento, a função de reset e interface de propriedades
do plugin. Essas funções estão descritas abaixo:
•Inicialização e reset
O ambiente da DAW chama a função de reset do plugin pela primeira vez que
o plugin é usado, ou toda vez que a taxa de amostragem da DAW é modificado.
Geralmente utiliza-se uma função do tipo "getSampleRate" para adquirir os
parâmetros de taxa de amostragem do ambiente
•Processamento
O ambiente da DAW passa um frame de um sinal de áudio plugin. A DAW
determina o tamanho de cada frame. A função de processamento do plugin é
responsável por realizar o algoritmo de processamento de áudio baseado em
frames. A função de processamento do sinal é responsável por passar o sinal de
áudio processado para o ambiente da DAW. O processamento é realizado frame a
frame em um sinal de áudio.
•Parâmetros e propriedades
Os parâmetros são valores em constante mudança, eles são responsáveis por
mudar as caraterísticas do processamento digital de sinais, como por exemplo a sua
taxa de amostragem o tamanho do frame. As propriedades são valores fixos
definidos durante o desenvolvimento do plugin. Tipicamente as propriedades estão
sincronizadas com os parâmetros assim um plugin não modifica propriedades que
são associadas à parâmetros. Na figura abaixo podemos observar como as
diferentes funções interagem de um plugin interagem entre si.
Figura 1 – Diagramas de blocos de um plugin em interação com a DAW
Figura 2 – Diagramas de blocos de um parâmetro em interação com a DAW
Fonte: Documentação do Matlab; Disponível em: https://www.mathworks.com/help/audio/
3.2 ENTRADAS E SAÍDAS DO SISTEMA
O ambiente que o plugin funciona deve interagir com dispositivos de entrada
e saída, como por exemplo conversores de áudio analógico para digital e digital para
analógico, além disso para que não aconteça atrasos no sistema ele deve funcionar
com processamento em tempo real. Na figura abaixo pode-se observar o
funcionamento do sistema completo desde as entradas do sistemas até a saída
Figura 3 – Diagrama de blocos do funcionamento do sistema
O microfone capta o som e envia um sinal de corrente elétrica até placa de som. A
placa de som possui as informações de taxa de amostragem, número de frames e o
tamanho de cada buffer do sistema, com auxilio dessas informações a placa de som
realiza a conversão analógica para digital do áudio, e escreve as informações
digitais para um buffer de entrada. O buffer armazena temporariamente informações
digitais do áudio análogo ao áudio de entrada do microfone, logo após essas
entradas são encaminhadas ao driver de áudio, o qual interpreta as informações
vindas da placa de áudio e transfere essa informação diretamente para um ambiente
de processamento digital do sinal, o qual pode ser, por exemplo, uma DAW. Por
ultimo após entrar no ambiente o áudio sofre o processamento com auxílio de um
plugin. Simultaneamente após o processamento dentro a estação digital de trabalho
as amostra de áudio digitais são enviadas para um buffer de saída , o qual
armazena temporariamente os áudios, e os encaminha para um conversor digital
para analógico que converterá as informações digitais processadas e as encaminha
para um transdutor de áudio ligado a sua saída.
3.3 DESENVOLVENDO E DEFINIDO UM PLUGIN NO AMBIENTE MATLAB
Para se iniciar o desenvolvimento do plugin no MATLAB podemos utilizar a
Audio Toolbox™. Ela provem ferramentas para processamento de áudio, análise de
áudio e estimação da resposta ao impulso. Além disso essa ferramenta suporta
realizar testes em tempo real compatíveis com placas de som ASIO™, WASAPI,
ALSA, e CoreAudio, além disso a Toolbox tem compatibilidade com dispositivos que
utilizam o protocolo MIDI.
Com a Audio Toolbox™ é possível criar protótipos de algoritmos para
processamento de áudio em tempo real com uma baixa latência de audio. Além
disso é possível validar o algoritmo para ele se tornar um plugin de áudio capaz de
funcionar em hosts externos, como, por exemplo, as Digital Audio Workstations.
Analisando um script de um plugin programado no MATLAB podemos dividi-lo
em três partes partes: variáveis de inicialização, objetos de construção, método de
inicialização/reset, interface gráfica e transmissão de áudio. Elas estão descritas
abaixo:
•
Variáveis de inicialização: possuem variáveis de inicialização e valores
conhecidos necessários para o funcionamento do sistema, como, por exemplo
taxa de amostragem e o número de amostra em cada frame processado pelo
plugin.
•
Objetos de construção: São responsáveis por conter os parâmetros do
plugin
•
Transmissão de áudio: É onde acontece o procedimento de leitura de
audio, escrita e processamento do áudio.
•
Método de inicialização/reset: responsável por inicializar o plugin ou
mudar as suas propriedades toda vez que a taxa de amostragem do sistema
muda.
•
Interface gráfica: Parte responsável pela interação do código com o
usuário
Assim podemos dividir a construção do um script de um plugin de áudio
conforme o digrama de blocos abaixo:
Figura 4– Diagrama de blocos do script do plugin Fonte: o autor, 2019
3.4 LEVANTAMENTO DE CAMPO
Conforme apresentado anteriormente é necessário indicar quais são os
parâmetros do plugin de áudio. No trabalho proposto deseja-se implementar
digitalmente a resposta em frequência de microfones e desenvolver um filtro capaz
de recriar as suas respostas por meio de processamento digital de sinais. As
propriedades do nosso plugin de áudio são definidas pelas características dos
microfones que desejamos emular, e a emulação está embutida na parte de
processamento do nosso sistema.
Com o objetivo de se obter e programar os parâmetros do sistema foi
realizado um levantamento de campo. Foi implementado na entrada do microfone
um sinal do tipo impulso , logo após digitalizou-se e verificou-se como o mesmo se
comportava. Para traçar os gráficos da resposta em frequência foi utilizado o código
do ANEXO A, o impulso foi gerado com uma palma, e o processo de captação da
palma foi realizado conforme o esquemático abaixo:
Figura 5 – Diagrama de blocos da captação da resposta em frequência.
O teste anterior foi realizado com 4 microfones das seguintes marcas e
modelos, SHURE SM57, SHURE SM48, AKG P220, BERINGHER XM1800S e um
microfone sem fabricante especificado. Os resultados das respostas em frequência
estão apresentadas abaixo juntamente com a resposta em frequência que a própria
fabricante divulga no DATASHEET do equipamento.
Figura 6– Resposta em frequência do microfone Shure SM57, fornecida pelo fabricante
Fonte: http://www.shure.com/americas/products/microphones/sm/sm57-instrument-microphone . Acesso em 19 de abril de 2019
Figura 7 – Resposta em frequência do microfone Shure SM57, levantada pelo autor Fonte: o autor, 2019
Figura 8– Resposta em frequência do microfone Shure SM48, fornecida pelo fabricante
Fonte: http://www.shure.com/americas/products/microphones/sm/sm48-vocal-microphone . Acesso em 19 de Abril de 2019
Figura 9– Resposta em frequência do microfone Shure SM48, levantada pelo autor Fonte: o autor, 2019
Figura 10 – Resposta em frequência do microfone Beringher XM1800S, fornecida pelo fabricante Fonte: o autor, 2019
Figura 11 – Resposta em frequência do microfone Beringher XM1800S, levantada pelo autor Fonte: o autor, 2019
Figura 12– Resposta em frequência do microfone Beringher AKG P220, fornecida pelo fabricante Fonte: https://www.akg.com/Microphones/Condenser%20Microphones/P220.html . Acesso em 19 de Abril de 2019.
Figura 13– Resposta em frequência do microfone AKG P220, levantada pelo autor Fonte: o autor, 2019
Figura 14 – Resposta em frequência do microfone sem fabricante, levantada pelo autor Fonte: o autor, 2019
Os testes foram realizados em um estúdio de música devidamente isolado em
todas as paredes com fibra de vidro, drywall e espuma acústica, o que minimizou os
efeitos das múltiplas reflexões do ambiente.Para a análise foi utilizada a
Transformada rápida de Fourier, essa análise converte um sinal do seu domínio
original para uma representação no domínio da frequência e vice-versa.
Nos gráficos anteriores foi possível observar que as respostas de alguns
microfones podem ser inseridas em outras, as quais podem mudar seu timbre e
suas características por meio de processamento digital de sinais. Também pode-se
observar que os gráficos estão bem próximos dos levantados pelos fabricantes e
que os riscos apresentados anteriormente do ambiente não são relevantes para o
sistema.
3.5 TÉCNICA UTILIZADA PARA ADQUIRIR OS FILTROS EQUIVALENTES A
RESPOSTA EM FREQUÊNCIA DO MICROFONE
Sabe-se que para representar a resposta em frequência deve-se realizar um
filtro que seja capaz de representar a resposta do sequencia de forma que esse filtro
seja análogo a reposta ao impulso do microfone.
Figura 15 –Sistemas de múltiplos filtros aplicados a um sinal de áudio Fonte: o autor, 2019
Um sistema de múltiplos filtros pode ser obtido por diversos filtros passa
baixa, passa alta, passa faixa e rejeita faixa, de modo a esses filtros serem
análogos a resposta em frequencia da resposta ao impulso do sinal original.
Figura 16 –Sistemas de múltiplos filtros Fonte: o autor, 2019
O filtro estará na parte de processamento do sistema e o mesmo será
responsável por modificar a resposta de um outro sinal, inserindo essas
caracterizas no timbre do som sem modificações. Na figura abaixo podem
observar um exemplo do sistema atuando e mudando as características do
sinal original.
Figura 17 – Resposta de um sistema após a passagem do filtro.
Fonte: o autor, 2019.
3.6 CONVOLUÇÃO ENTRE A RESPOSTA AO IMPULSO DO MICROFONE E UM
SINAL DE ENTRADA
O termo filtro é utilizado para descrever um dispositivo que modifica algum atributo
do objeto aplicado na entrada. A maneira mais simples de se implementar um filtro
análogo a resposta ao impulso do microfone é realizar uma convolução entre a
resposta ao impulso do sistema e sinal de entrada no sistema. A operação de
convolução é definida em sistemas LTI (linear and Time-Invariant), ou seja, lineares
e invariantes no tempo. A forma da filtragem é definida pela resposta de frequência
H(ω) que depende da escolha de parâmetros do sistema (como os coeficientes do
filtro). Em geral, um sistema LTI modifica o espectro do sinal de entrada X(ω) de
acordo com a resposta em frequência H(ω) que leva a um sinal de saída com
espectro Y(ω) = H(ω)X(ω).
Figura 18 – Sistema LTI Fonte: o autor, 2019.
Em sistemas LTI podemos relacionar os sinais de entra e saída do sistema através
da soma de convolução, definida pela seguinte equação:
Se conhecermos a resposta ao impulso do sistema (por exemplo um filtro digital)
podemos calcular a saída y[n] fazendo a convolução do sinal de entrada, x[n], com a
resposta ao impulso do sistema, h[n]. No ambiente Matlab uma rápida
implementação de uma convolução com o comando CONV.
4.PROCEDIMENTOS DE TESTE E VALIDAÇÃO
Podemos dividir os testes e validação em duas seções as do ponto de vista
do usuário e a do ponto de vista do sistema.
4.1 TESTE E VALIDAÇÃO DO PONTO DE VISTA DO USUÁRIO
Para o usuário o plugin deve ser uma ferramenta que auxilie em realizar no
processamento digital de sinais, análises ou síntese sonora, dessa forma o usuário
deve notar a mudança por meio da audição. Uma vez que a percepção sonora do
timbre pode variar de pessoa a pessoa podemos realizar os seguintes testes abaixo:
1.Implementar o plugin dentro de uma DAW e verificar compatibilidade
2.Verificar se o plugin é capaz de realizar processamento de áudio digital em
tempo real.
3.Verificar a resposta em frequência do sinal de saída e verificar se ele fez
uma mudança significativa e se essa mudança é equivalente aos parâmetros do
sistema.
4.2 TESTE E VALIDAÇÃO DO PONTO DE VISTA DO SISTEMA
Do ponto de vista de sistema o plugin deve:
•
Ser compatível com a geração de códigos do MATLAB
• Ser compatível com qualquer estação digital de trabalho
• Determinar qual a taxa de amostragem e o tamanho de cada frame que o plugin
está funcionando os dois os quais são variáveis.
• Chamar um função de reset para o plugin a cada inicio de uso ou cada mudança de
taxa de amostragem
• Deve ser sincronizado com os parâmetro, o plugin não deve mudar propriedades
associadas a parâmetros.
•Requer uma constante entrada e saída de dados no sistema
•Requer que nas propriedades associadas aos parâmetros seja escalares.
•Requer realizar um mudança significativa na resposta em frequencia do áudio de
saída.
Tendo esses requisitos podemos realizar os seguintes testes para validar o
sistema.
1. Compilar o código no Matlab
2.Implementar o plugin dentro de uma DAW e verificar compatibilidade
3.Verificar se o plugin é capaz de realizar processamento de áudio digital em
tempo real.
4.Verificar a resposta em frequência do sinal de saída e verificar se ele fez
uma mudança significativa e se essa mudança é equivalente aos parâmetros do
sistema.
5.RISCOS
Após apresentar os fator adversos na captação e emissão apresentados no
trabalho anterior, no levantamento de campo foi observado que, apesar de reais os
problemas apresentados anteriormente não afetaram as respostas dos microfones,
sendo assim é importante destacar que durante o desenvolvimento do VST deve-se
obter a melhor otimização de processamento e buscar resolver os riscos de latência
e perda de sinal.
5.1 LATÊNCIA
A latência acontece durante todo o processamento do sistema, tipicamente
existem a latência de entrada do sistema e a latência de saída do sistema ambas
possuem uma probabilidade alta, impacto alto e podem impactar severamente o
sistema.
A latência de saída é medida pelo tempo de atraso entre a geração de um
frame do áudio após o processamento até chegar ao conversor AD.
A latência de entrada é medida como o tempo de atraso entre a entrada do
áudio do sistema até o momento que o frame é processado.
A latência total é dada pela soma da latência de saída e de entrada do
sistema, e para se minimizar esse problema podemos tomar algumas das medidas
abaixo:
1.Otimizar o estágio de processamento, se o estágio de processamento
atinge o máximo de capacidade um estratégia é compilar o código do MATLAB para
um código em C usando o MATLAB Coder, o que resultará em uma execução mais
rápida.
2.Aumentar a taxa de amostragem
3.Diminuir o tamanho de cada frame
5.2 SIGNAL DROPS (PERDAS DE SINAL) E SINAIS DE SILÊNCIO
Durante o processamento digital do sinal pode acontecer a perda de sinal
provenientes do buffer do sistema. As perdas de sinal possuem uma probabilidade
alta de acontecer e impacta negativamente o sistema. Podemos detalhar esse
sistema por meio de duas definições: Underrun e Overrun
O Underrun se refere a um sinal de silencio, ocorre quando o buffer é lido,
ou esvaziado, mais rapidamente do que é reescrito, ou preenchido. Isto pode
eventualmente levar a um esvaziamento completo do buffer, causando a interrupção
do fluxo de dados.
O Overrun se refere a uma perda do sinal. A perda de sinal é uma anomalia
onde um programa, ao escrever dados em um buffer, ultrapassa os limites
do buffer e sobrescreve a memória adjacente.
Se você encontrar uma dessas anomalias uma das soluções é melhorar o
sistema de entrada/saída em uma ou mais das seguintes maneiras.
1.Identificar quando o Underrun e Overrun acontece. Se isso acontecer nas
primeiras iterações considere inicializar o dispositivo de entrada/saída do sistema
com informações relevantes nos primeiros frases antes de inicializar o
processamento real.
2.Adicionar mais latência para a sua aplicação, considerando o aumento do
tamanho do buffer do sinal digitalizado. Por padrão o tamanho do buffer é o tamanho
do frame da\os dados processados.
3.Diminuir a resolução do áudio, considerando diminuir a taxa de amostragem
do sistema.
4.Fechar todos os processos não essenciais na sua máquina, esses
processos podem pedir requisições à CPU e interrompeu o processamento do áudio
5.Para maximizar a performance remover a visualização e plotagem de
gráficos em tempo real.
6.DIAGRAMA DE BLOCOS GERAL DO PROJETO
Figura 19 – Diagrama geral do projeto Fonte: o autor, 2019
Como explicado durante o documento a Audio Toolbox suporta diversas
ferramentas para o desenvolvimento de algoritmos e para o processamento de audio
digital. No desenvolvimento do código em questão foram utilizadas duas
ferramentas, a programação utilizando scripts do MATLAB e a programação
orientada objeto utilizando classes . A classe de um plugin de áudio é utilizada como
um paradigma para o desenvolvimento do algoritmo do processamento digital.
7.PLANO DE TESTES
Os teste que apresentados nessa pesquisa devem apresentar com precisão
que houve uma alteração no stream de audio de entrada, o qual será processado
pelo sistema LTI, tais testes podem ser executado por etapas, preservando assim a
lógica sequencial gerada para a composição do plugin de audio. Segue abaixo os
testes escolhidos para essa etapa.
6.1 PRIMEIRO TESTE AUDIO TESTE BENCH
Existe disponível dentro da Audio Tool Box uma ferramenta auxiliar para
debugar, testar e aferir o plugin de audio, e o nome dessa ferramenta é o Audio Test
Bench. O Audio Test Bench provem uma interface gráfica para o plugin, a qual pode
desenvolver, debugar, testa e aferir o plugin em tempo real, ela pode interagir com
as propriedades do seu plugin associando eles a uma interface gráfica. Com ele é
possível:
• Debugar o plugin de audio
• Simular o plugin de audio como será gerado na Digital Audio Workstation
• Visualizar o processamento no domínio do tempo e no domínio da frequência
• Interagir e sincronizar controles MIDI com as propriedades do plugin
• Validar e gerar Plugin VST
6.1.1 RESULTADO DO AUDIO TESTE BENCH
Com esse teste é possível verificar se o plugin é utilizável se ele tem a
capacidade de ser funcional dentro da plataforma do Matlab além da capacidade de
se exportar para outras DAWs. Para utilizar esse teste podemos acessar a
configuração por meio da linha de comando audioTestBench(nome da classe do
plugin).Segue abaixo um pouco da funcionalidade dessa ferramenta:
Figura 20 – Interface grafica do Audio Test Bench no Matlab Fonte: o autor, 2019.
Segue abaixo cada uma das funcionalidades e resultados que o Audio Test Bench
pode prover
Tabela 1 – Botões e funcionalidade do Audio Test Bench
Botão Nome Descrição
Rodar Roda o plugin de audio partir de um "stream"de audio especificado nas configurações de entrada e saida. É possível aferir os parâmetros
do seu plugin em tempo real. As linhas de comando do Matlab e os objetos que estão sob o teste ficam bloqueados enquanto o audio test
bench está rodando
Pausar Pausa o stream de audio, a linhan de comando do MATLAB é liberada, o objeto sob este se mantém travado
Proximo passo
Chama a função de processamento do plugin uma vez em um stream em looping. Com
Parar Para o stream de audio. A linha de comando e os objetos no teste são liberados
Reset Resta os valores iniciais do plugin de audio e seta os parâmetros para os valores iniciais
Ver o código fonte
Abre o arquivo fonte do plugin de audio
Sincronizar. controles MIDI
Inicia a configuração MIDI com auxilio de interface de usuário do seu plugin
!
!
!
Fonte: o autor, 2019
6.1.2 FUNCIONALIDADE VALIDADA PELO AUDIO TESTE BENCH
Tendo como base o digrama de blocos geral apresentado em nosso trabalho
com a Audio Test Bench podemos validar as seguinte etapas do plugin.
•
Entrada e Saída de Áudio, Manipulação do conversor DA e AD e o driver
de audio.
As entradas e saída são testadas por meio das configurações de entrada e
saída de audio, nela é possível identificar de qual será o stream de audio que será
injetado no sistema e qual será o arquivo ou o dispositivo de saída do audio
processado. Além de poder definir as entradas e saída esse teste garante que o
plugin é apto de realizar a comunicação com o driver da placa de som, o qual é
usado como suporte para converter o audio de analógico para digital e de digital
para analógico.
Abrir o visualizado do
objeto sobre teste
Chama a função de visualização do objeto sob teste sem argumentos de entrada. Se o seu objeto sob teste não tiver definido uma função
de visualização esse botão não aparecerá
Osciloscopio no tempo
Provem um visualização no domínio do tempo saída do seu stream de áudio
Analizador de Espectro
Provem um visualização no dominio da freqüência da saída do seu stream de áudio
Gerar um plugin VST2
Abre uma interface de usuario para validar e gerar o objetivo o em teste
Gerar um script do
Matlab
Gera um script do MATLAB e implementa o audio test bench
Ajuda abre a documentação do audio test bench
Configurar a entrada
Abre as configurações de entrada de audio. Pode-se escolher qual o stream de audio ou o sinal de entrada do sistema
Configurar a saída
Abre a configuração de saída do plugin, pode-se escolher salvar em um arquivo ou enviar para um disposto(placa de som)
•
Implementação do plugin, o processamento e acesso as propriedades e
reset
Durante o procedimento podemos testar o processamento do audio dentro da
plataforma do próprio matlab, com isso podemos repara uma diferença audível do
processamento do audio, além de poder verificar se as principais funcionalidades do
plugin funcionam, como por exemplo o acesso as propriedades do plugins e a
função.
6.2 SEGUNDO TESTE PLOTAGEM DA RESPOSTA EM FREQUÊNCIA PÓS
PROCESSAMENTO
Afim de se garantir o funcionamento da etapa do processamento e garantir
que a mesma está funcionando podemos verificar o gráfico da resposta em
frequencia da saída do sistema LTI, o qual se encontra na etapa do processamento.
O sinal de y(t) deve ser análogo a convolução do sinal de entrada com o sinal da
resposta ao impulso do sistema.
6.2.1 RESULTADO DA PLOTAGEM
Para a realização do teste implementamos um sinal de audio na entrada do
sistema, processamos e observamos o resultado, além disso utilizamos um áudio de
uma gravação de voz para observar se o sistema altera a resposta em frequência do
sistema:
Com o resultado da plotagem podemos comprovar de maneira gráfica a
mudança significativa que o plugin irá desenvolver no processamento do audio.
Segue abaixo os gráficos gerados após o processamento dos microfones
utilizados na composição do plugin:
Figura 21 – Resposta ao impulso da simulação do AKG Fonte: o autor, 2019.
Figura 22– Resposta ao impulso da simulação do Shure SM48 Fonte: o autor, 2019.
Figura 23 – Resposta ao impulso da simulação do Shure SM57 Fonte: o autor, 2019
Figura 24– Resposta ao impulso da simulação do Beringher xms1800 Fonte: o autor, 2019
Figura 25– Resposta ao impulso da simulação do microfone sem fabricante Fonte: o autor, 2019.
Durante a etapa final foi implementado mais um tipo de microfone, o microfone de fita, segue abaixo o levantamento do microfone a partir da sua resposta ao impulso:
Figura 26– Resposta ao impulso da simulação do microfone sem fabricante Fonte: o autor, 2019.
Figura 27– Resposta ao impulso da simulação do microfone sem fabricante Fonte: o autor, 2019.
6.2.2 FUNCIONALIDADE VALIDADA PELA PLOTAGEM
•
Implementação do plugin, o processamento e acesso as propriedades e
reset
Com a plotagem podemos verificar graficamente a resposta em frequencia do
sinal de saída e com isso podemos validar se ela tem propriedades análogas ao
audio do processamento digital, isso implica que a fase do processamento digital
está funcionando com sucesso, e o acesso das propriedade e do reset também.
6.3 TERCEIRO TESTE IMPLEMENTAR O PLUGIN DENTRO DE UMA DAW
Com o intuito de ser garantir o funcionamento do plugin dentro de DAW
deve-se implementar o plugin dentro da Digital Audio Workstation verificar deve-se o programa
é apto de iniciar o plugin e implementar as funcionalidade do mesmo.
6.3.1 RESULTADO DA IMPLEMENTAÇÃO
Segue abaixo a implementação de um plugin desenvolvido durante o
procedimento dentro do Ableton live. Como pode-se observar o mesmo obteve a
compatibilidade com a plataforma e foi possível verificar a funcionalidade do mesmo
Figura 28 – Plugin desenvolvido dentro do Matlab Fonte: o autor, 2019
6.3.2 FUNCIONALIDADE VALIDADA PELA IMPLEMENTAÇÃO
Com essa implementação podemos todas as etapas do diagrama desde as
entradas e saídas até o processamento do plugin. Podemos afirmar com segurança
que o plugin tem a capacidade de interagir com as entradas e saídas do sistema por
meio das instancias do Matlab, além disso podemos verificar que o plugin pode
interagir com a DAW e além disso a DAW pode inicializar o plugin e podemos
modificar ele, desligar e ligar por meio de uma interface gráfica simplificada.
6.2 TERCEIRO TESTE PROCESSAMENTO EM TEMPO REAL
Para a implementação da etapa final foi realizado uma melhoria no código
com o objetivo de gerar uma ferramenta de processamento de tempo real, para isso
foi utilizado o cenário de captação e reprodução em tempo real. Foi utilizado uma
ferramenta que ajusta os parâmetros do plugin para se obter uma melhor
funcionamento em tempo real: segue abaixo um captura de tela dessa ferramenta
funcionando:
Figura 29 – Ferramenta de ajuste de latência Fonte: o autor, 2019
6.3.1 RESULTADO DO PROCESSAMENTO EM TEMPO REAL
Após implementado os paramentos foi possível obter um latência máxima na
plataforma de aproximadamente 3 ms( três milisegundos), o que é pouco perceptível
para os ouvintes que estão utilizando o plugin. Para se obter uma melhoria nos
valores da latência deve-se considerar um computador com processamento melhor,
ajustar a taxa de amostragem e o tamanho do buffer do plugin de acordo com a
necessidade.
Figura 30 – Plugin desenvolvido dentro do Matlab Fonte: o autor, 2019
7.3.2 FUNCIONALIDADE VALIDADA PELO PROCESSAMENTO EM TEMPO
REAL
Com essa implementação podemos todas as etapas do diagrama desde as
entradas e saídas até o processamento do plugin. Podemos afirmar com segurança
que o plugin tem a capacidade de interagir com as entradas e saídas do sistema por
meio das instancias do Matlab, além disso podemos verificar que o plugin pode
interagir com a DAW e além disso a DAW pode inicializar o plugin e podemos
modificar ele, desligar e ligar por meio de uma interface gráfica simplificada.
7.CRONOGRAMA ATUALIZADO
Durante a implementação final foram adotadas melhorias no código do Plugin,
para que o mesmo fosse apto a funcionar em tempo real e também foram
capturados mais microfones e consequentemente implementados na forma de VST.
abril maio junho agosto setembro outubro novembro Atividades /Quinzena 1ª 2ª 1ª 2ª 1ª 2ª 1ª 2ª 1ª 2ª 1ª 2ª 1ª 2ª Fundamentação do plano de projeto 🎤 Entrega do plano de projeto 🎤 Escolhas dos microfones 🎤 🎤 Aferição e captura de
dados dos microfones 🎤 🎤 Codificação plugin no MATLAB 🎤 🎤 Codificação do projeto físico no MATLAB 🎤 🎤 Entrega do Projeto Físico 🎤 🎤 Primeiro protótipo 🎤 🎤
Inicio dos testes
dentro da DAW 🎤 🎤 Integração da codificação em Matlab para VST 🎤 🎤 Inicio da Codificação em VST 🎤 🎤 Desenvolvimento da implementação final 🎤 🎤
Defesa dos protótipos
🎤 🎤 Desenvolvimento do segundo protótipo ( versão beta) 🎤 🎤 Vídeo Promocional Simples 🎤 🎤 Entrega da implementação final 🎤 🎤
8.CONSIDERAÇÕES FINAIS OU CONCLUSÃO
Com a capacidade de alterar as características de um som, o microfone
digital é uma solução para a simulação de microfones. Com controle sobre as
frequências e o nível de intensidade sonora que o microfone possui, pode-se captar
qualquer instrumento, preservando suas características de maneira fiel. Para se
implementar esse tipo de solução é necessário a implementação de um plugin de
áudio. Os plugins são trechos de códigos independentes que podem ser “plugados”
em outros softwares, para aumentar as suas funcionalidades. Para o
desenvolvimento de um plugin pode-se utilizar o ambiente MATLAB com auxilio da
Audio Toolbox™, que prove ferramentas para processamento de áudio, análise de
áudio e estimação da resposta ao impulso. Além disso, essa ferramenta suporta
realizar testes em tempo real compatíveis com diversas placas de som. Durante
essa etapa foi realizada a implementação final do plugin de áudio. Ademais, foi
codificado e utilizados diferentes tipos de microfones para ser possível observar a
sua resposta em frequencia na plataforma de processamento desenvolvida. Foi
possível concluir também que o Matlab é um poderosa ferramenta de modelagem e
e desenvolvimento de processamento digital de sinais.
8.TRABALHOS FUTUROS
Conforme apresentado nesse trabalho softwares de processamento digital de
sinal estão presentes em diversas aplicações musicas. Na ferramenta em questão
foi desenvolvido um plugin de áudio compatível com as principais Digital Audio
Workstations, porém seria de grande interesse implementar esse tipo de
processamento em um circuito embarcado, com o intuito de reduzir custos, facilitar a
interação do usuário com a plataforma, uma vez que não é necessário ter um
computador com um plataforma com uma digital audio workstation instalada.
Um exemplo de aplicação pratica de sistema embarcado são as pedaleiras e
pedais de efeitos, nesse tipo de circuito tipicamente existem circuitos que modificam
o som a fim de se obter respostas em frequencia e timbres diferentes da entrada do
sistema. O processamento deve acontecer em tempo real para que seja possível
tocar ao vivo sem que aconteça um latência perceptível ao usuário.
Figura 31 – Exemplo de um sistema embarcado de processamento digital de sinais. Fonte: o autor, 2019