The development of technology in the processing of audio signals has enabled the development of several programs in the field of computer music that were not possible until then. This article presents the development of this work, discusses the concepts explored during the bibliographic research, and describes the software project that was undertaken. The software project was developed according to UML (Unified Modeling Language) standards using the Enterprise Architect tool.
In addition to enabling the reproduction of digital effects without the need for equipment for this purpose, competence was also gained in the development of Music Computer solutions.
PROBLEMATIZAÇÃO
Formulação do Problema
Os músicos de hoje podem tirar proveito de soluções de software que não existiam antes. Um bom exemplo são os multiefeitos ou pedaleiras virtuais, que são softwares utilizados em estúdios e até ao vivo, substituindo pedais e pedaleiras. Por esse motivo, este trabalho consiste em um software que possui os principais efeitos de pedais e pedaleiras utilizados pelos guitarristas, como efeitos chamados Chorus, Reverb, Delay, Overdrive e Distortion, que serão explicados na seção Efeitos Digitais.
Desta forma, este trabalho possibilitou a implementação de um software que simula os efeitos de pedais e pedaleiras utilizados por guitarristas, cuja principal característica é a simplicidade de gerenciamento.
Solução Proposta
Atualmente, os efeitos mais conhecidos utilizados pelos guitarristas são: Chorus, Reverb, Delay, Overdrive e Distortion, que são o foco deste trabalho.
OBJETIVOS
Objetivo Geral
Objetivos Específicos
METODOLOGIA
Na terceira fase, desenvolvimento, a implementação do software foi colocada em prática de acordo com a modelagem realizada na fase anterior. Na fase de validação e testes foram realizados diversos testes ao software para diagnosticar e corrigir possíveis problemas, de forma a garantir o seu correto funcionamento. Por fim, a fase de documentação incluiu o registro dos processos relativos às fases anteriores, conforme padrões exigidos pela Coordenação do TCC.
ESTRUTURA DO TRABALHO
Este capítulo abordará os principais conceitos para compreensão e desenvolvimento de aplicações de processamento de áudio, incluindo temas como: computação musical, softwares similares, efeitos de guitarra e as tecnologias utilizadas, com maior ênfase em VST. Serão também apresentados conceitos e funcionalidades de processamento digital de sinais e efeitos sonoros que serão implementados.
COMPUTAÇÃO MUSICAL
Som
Assim, um som com 500 Hz indica que a vibração ocorre a uma frequência de 500 ciclos por segundo. A altura de uma onda é chamada de amplitude, portanto um som com maior amplitude é um som mais alto. Um violão e um piano não produzem um som com as mesmas características quando tocados no mesmo tom e com a mesma intensidade.
Um som pode ser medido pelo seu tempo de ressonância e classificado como curto ou longo.
DSP
Segundo Neyra-Araoz (2007), a Transformada de Fourier é uma técnica amplamente utilizada em processamento de sinais, como processamento de áudio e processamento de imagens. Nomeada em homenagem ao físico francês Jean Baptiste Joseph Fourier, a transformada de Fourier é um procedimento matemático usado para transformar um sinal amostrado no domínio do tempo para o domínio da frequência (MSP, 2008). A Transformada de Fourier pode ser classificada de diferentes maneiras, mas para uso em computadores é utilizada a DFT (Transformada Discreta de Fourier).
Quando a transformada de Fourier é aplicada, a amostragem da onda é transferida do domínio do tempo para o domínio da frequência, ilustrando apenas a frequência contida na onda sonora.
Efeitos Digitais
Quando você, por exemplo. tocar uma guitarra conectada a um pedal Chorus dá a impressão de que outra guitarra está sendo tocada ao mesmo tempo. Tremolo é um efeito que altera a intensidade de um som durante curtos períodos de tempo (geralmente menos de um segundo), dando ao ouvinte a sensação de que o som está oscilando. Segundo Behringer (2007), o compressor é um efeito que comprime o som, normaliza a intensidade do sinal e remove um pouco da dinâmica do som.
Na Figura 25b, a onda inferior tem efeito de distorção. a) Onda sonora do efeito Overdrive; (b) Onda sonora com efeito de distorção.
SOFTWARES SIMILARES
Guitar R.A
FX-Box
Revalver
BIBLIOTECAS DE SOM E LINGUAGENS DE PROGRAMAÇÃO
- DirectX
- SDL (Simple DirectMedia Layer)
- PortAudio
- OpenAL
- VST
- JUCE
- ASIO
Um plug-in VST não é um aplicativo ou software, mas um componente de processamento de áudio que deve ser usado no software host, denominado host. Do ponto de vista do host, o plugin VST é uma caixa preta com uma série de entradas, saídas e parâmetros associados, e o host não precisa saber sobre o processamento que ocorre dentro do plugin. A Figura 29 mostra a comunicação entre um programa host e um plugin VST, em que o host passa áudio e parâmetros para o plugin, que processa o áudio recebido e retorna o som processado ao host.
VSTGUI permite ao desenvolvedor separar a interface do plugin do código de processamento de áudio, facilitando a portabilidade e a programação. Na Figura 30 são ilustrados o programa VstHost e um plugin de distorção chamado Soul Force, onde você pode notar duas interfaces, uma delas é do próprio plugin (interface à esquerda) e a outra é fornecida pelo host (interface à direita ). ). ASIO é uma API desenvolvida por Steinberg para manipulação de áudio digital para superar as limitações das tecnologias originais oferecidas pelos sistemas operacionais (RATTON, 2002).
Atualmente, o ASIO está presente na maioria das placas de som profissionais ou semiprofissionais, como a placa M-AUDIO DELTA 1010 LT (Figura 33a) e a Creative AUDIGY 2 ZS 7.1. A maior vantagem do ASIO é a baixa latência de processamento do som, o que não é possível em todas as placas de som. Por exemplo, se você deseja tocar um instrumento virtual através de um controlador MIDI com uma placa de som sem suporte ASIO, a latência ou atraso do processamento do som pode ultrapassar 50 ms, inviabilizando esta tarefa para gravação ou performance ao vivo.
Para computadores com placas de som integradas ou placas que não possuem suporte ASIO nativo, existe uma solução de software chamada ASIO4ALL. ASIO4ALL é um software desenvolvido pelo engenheiro elétrico Michael Tippach, que atua diretamente no núcleo do driver de som WDM, melhorando significativamente o desempenho.
CONSIDERAÇÕES
Este trabalho possibilitou o desenvolvimento de um software para processar os sons de uma guitarra conectada a um computador, assumindo a função de pedal. Para que essa conexão entre a guitarra e o computador seja possível, é necessário utilizar um adaptador de plugue P10 para P2, ilustrado na Figura 35. Na seção Modelagem do Sistema é descrita a modelagem do software, que inclui diagramas de casos de uso, classes, sequência e componentes, bem como levantamento de requisitos e regras de negócio.
MODELAGEM DO SISTEMA
Levantamento de Requisitos
RF05: O sistema deve permitir ao usuário selecionar as entradas e saídas de áudio do sistema; Isso é. RNF04: O sistema deverá permitir a utilização de outros plugins VST existentes que não serão implementados neste trabalho. O preset padrão do sistema deve conter os efeitos na seguinte ordem12: Overdrive, Distortion, Chorus, Delay e Reverb.
Este item apresentará os diagramas de casos de uso, classes, sequência e componentes, bem como protótipos de telas. O diagrama de casos de uso é um elemento gráfico exclusivo porque é um diagrama usado para modelar a maneira como as pessoas esperam usar um sistema. RF05: O sistema deve permitir ao usuário selecionar as entradas e saídas de áudio do sistema.
A Exportação de Caso de Uso descreve o processo de salvar uma predefinição definida pelo usuário, enquanto a Importação de Caso de Uso descreve o processo de abertura de uma predefinição já salva. O objetivo do diagrama de classes é ilustrar os atributos e métodos das principais classes do sistema, bem como os tipos de associações que existem entre elas. O diagrama de classes do plugin VST foi criado estudando a estrutura de classes do SDK da Steinberg, que é composto por cinco classes principais, sendo duas responsáveis pela interface do plugin e as outras responsáveis pelas funcionalidades do plugin.
Foi criado um diagrama de sequência da interação do usuário com o software, que inclui os principais casos de uso. Esta seção apresenta protótipos de telas do sistema, referenciados na descrição do caso de uso através de uma referência TELA seguida de uma sequência de identificação.
IMPLEMENTAÇÃO
Programa Host – DK Guitar
O software host implementado foi denominado DK Guitar e consiste basicamente em duas telas: a tela principal e a tela de configurações. Funcionalidades como importação e exportação de presets também são mapeadas para a tela principal, que conta com um menu para esse fim. Um dos exemplos de aplicação é o PluginHost, projeto que possui as principais funcionalidades de um programa host.
Desta forma, foram estudadas as classes e o código fonte do PluginHost para obter o conhecimento necessário para o desenvolvimento do DK Guitar. A Figura 50 mostra o diagrama com classes nativas JUCE e classes PluginHost, que são usadas no DK Guitar para manipular áudio. Os cabos ou fios que conectam os blocos são usados para definir o fluxo do sinal de áudio.
Dessa forma, o som recebido pelo software é dividido e processado separadamente para cada saída de áudio, sendo que cada alto-falante recebe um sinal diferente. Caso a interface não exista, uma tela de interface padrão do DK Guitar é aberta com os parâmetros do plugin; Isso é. Ele também possui um botão que abre a tela de configurações do driver ASIO4ALL para o usuário definir as configurações do driver de áudio.
Para implementar os presets foi criada a classe ControlePlugins, que possui propriedades para gerenciamento e controle. Para salvar ou carregar um preset salvo em disco, foi desenvolvida a opção “Arquivo” no menu da tela principal, que possui opções para tais fins, conforme mostra a Figura 54.
Plugins
Na Figura 57, a onda sonora inferior ilustra o resultado do efeito Delay aplicado à onda sonora superior. A Figura 59 ilustra a interface do plug-in Overdrive e sua interface padrão no programa DK Guitar. A Equação 3 do plugin Distortion permaneceu igual à Equação 1 do plugin Overdrive, apenas o nome da variável foi alterado.
Nas linhas 17 e 18, o tremolo é adicionado ao sinal original. corresponde à porcentagem do som original e "x* fLFO * fGanho" corresponde à porcentagem do efeito Tremolo. No SynthEdit, o conhecimento adquirido sobre como funciona o efeito Chorus (descrito em Fundamentos Teóricos) foi utilizado para desenvolver o plug-in. A Figura 69 mostra a interface do plug-in Chorus implementada no software SynthEdit e sua interface padrão no DK Guitar.
Na Figura 70, a onda sonora inferior ilustra o resultado do efeito Chorus aplicado à onda sonora superior. Allpass: Filtro Allpass, utilizado para passar todas as frequências com a mesma amplitude; LevelAdj: utilizado pelo parâmetro Mix do plugin para controlar a intensidade do efeito Reverb no sinal original; A Figura 72 ilustra a interface do plugin Reverb implementado no software SynthEdit e sua interface padrão no DK Guitar.
Na Figura 73, a onda sonora inferior ilustra o resultado do efeito Reverb aplicado à onda sonora superior. A parte superior da Figura 76 ilustra uma onda sonora, com a segunda onda resultante do uso do plug-in Volume.
TESTES E VALIDAÇÃO