Documente Academic
Documente Profesional
Documente Cultură
por
Daniel Krueger
SUMRIO
LISTA DE ABREVIATURAS..................................................................iv
LISTA DE FIGURAS................................................................................. v
LISTA DE TABELAS ..............................................................................vii
LISTA DE EQUAES .........................................................................viii
RESUMO....................................................................................................ix
ABSTRACT................................................................................................. x
1 INTRODUO ...................................................................................... 1
1.1 PROBLEMATIZAO ..................................................................................... 1
1.1.1 Formulao do Problema ................................................................................. 1
1.1.2 Soluo Proposta ............................................................................................... 2
1.2 OBJETIVOS ........................................................................................................ 3
1.2.1 Objetivo Geral ................................................................................................... 3
1.2.2 Objetivos Especficos ........................................................................................ 3
1.3 METODOLOGIA................................................................................................ 3
1.4 ESTRUTURA DO TRABALHO ....................................................................... 4
3 DESENVOLVIMENTO ...................................................................... 37
3.1 MODELAGEM DO SISTEMA........................................................................ 37
3.1.1 Levantamento de Requisitos .......................................................................... 37
3.1.2 Projeto do Sistema .......................................................................................... 38
ii
4 CONCLUSES .................................................................................... 80
REFERNCIAS BIBLIOGRFICAS ................................................... 82
GLOSSRIO............................................................................................. 85
iii
LISTA DE ABREVIATURAS
API
ASIO
DFT
DSP
FFT
JUCE
MIDI
OPENAL
OPENGL
PC
SDK
SDL
TCC
UML
UNIVALI
VST
VSTi
iv
LISTA DE FIGURAS
Figura 1. Conexo Guitarra Computador..........................................................................................2
Figura 2. Onda com freqncia de 3 Hertz ..........................................................................................7
Figura 3. Amplitude de uma onda........................................................................................................7
Figura 4. Durao de uma onda ...........................................................................................................8
Figura 5. Filtros Digitais: (a) Passa-baixas; (b) Passa-altas; (c) Passa-banda; (d) Rejeita-banda......10
Figura 6. Filtro Comb .........................................................................................................................10
Figura 7. Cancelamento de fases........................................................................................................11
Figura 8. Transformada de Fourier aplicada em uma onda simples ..................................................12
Figura 9. Transformada de Fourier aplicado em uma onda composta ...............................................12
Figura 10. (a) Pedaleira V-Amp2; (b) Pedal Digital Reverb; (c) Mesa de som Behringer................13
Figura 11. Ligao de pedais em srie ...............................................................................................14
Figura 12. Pedal de Chorus ................................................................................................................15
Figura 13. Onda sonora do efeito Chorus ..........................................................................................15
Figura 14. Pedal de Tremolo ..............................................................................................................16
Figura 15. Onda sonora do efeito Tremolo ........................................................................................16
Figura 16. Pedal de Delay ..................................................................................................................17
Figura 17. Onda sonora do efeito Delay ............................................................................................18
Figura 18. Pedal de Reverb ................................................................................................................19
Figura 19. Onda sonora do efeito Reverb...........................................................................................19
Figura 20. Pedal de compresso .........................................................................................................20
Figura 21. Onda sonora do efeito Compressor...................................................................................21
Figura 22. Pedal de equalizao .........................................................................................................22
Figura 23. Onda sonora do efeito Equalizador...................................................................................22
Figura 24. (a) Pedal de Overdrive; (b) Pedal de Distoro ................................................................23
Figura 25. (a) Onda sonora do efeito Overdrive; (b) Onda sonora do efeito Distoro.....................24
Figura 26. Software Guitar R.A. ........................................................................................................25
Figura 27. Software Fx-Box...............................................................................................................26
Figura 28. Software Revalver.............................................................................................................27
Figura 29. Comunicao Host VST ................................................................................................30
Figura 30. Interfaces do plugin e do Host ..........................................................................................31
Figura 31. (a) Interface do SynthEdit; (b) Interface do SynthMaker; (c) Interface do Quantum Fx .32
Figura 32. Bateria virtual EZ Drummer .............................................................................................33
Figura 33. (a) Placa M-AUDIO DELTA 1010 LT; (b) Placa Creative AUDIGY 2 ZS 7.1 ..............34
Figura 34. Tela de configurao do ASIO4ALL................................................................................35
Figura 35. Adaptador P10 x P2 ..........................................................................................................37
Figura 36. Diagrama de Casos de Uso ...............................................................................................39
Figura 37. Diagrama de Caso de Uso Configuraes .....................................................................40
Figura 38. Diagrama de Caso de Uso Seleo de Efeitos ...............................................................41
Figura 39. Diagrama de Caso de Uso Ajuste de Parmetros ..........................................................42
Figura 40. Diagrama de Caso de Uso Importao/Exportao .......................................................43
Figura 41. Diagrama de Classes de Negcio: Host............................................................................44
Figura 42. Diagrama de Classes do Plugin VST................................................................................46
Figura 43. Diagrama de Classes de Projeto: Host..............................................................................47
Figura 44. Diagrama de Seqncia ....................................................................................................49
Figura 45. Diagrama de Componentes...............................................................................................50
Figura 46. Prottipos de Tela: Tela Principal (TELA 01)..................................................................51
v
vi
LISTA DE TABELAS
Tabela 1. Formas de ondas ...................................................................................................................8
Tabela 2. Resumo dos Softwares Similares .......................................................................................27
Tabela 3. Peas da bateria virtual EZ Drummer ................................................................................33
Tabela 4. Botes e teclas de atalho do Software DK Guitar ..............................................................59
Tabela 5. Configurao dos computadores utilizados nos testes .......................................................78
vii
LISTA DE EQUAES
Equao 1 ...........................................................................................................................................64
Equao 2 ...........................................................................................................................................64
Equao 3 ...........................................................................................................................................68
Equao 4 ...........................................................................................................................................68
viii
RESUMO
KRUEGER, Daniel. Tratamento de Sinais Sonoros no Computador Simulando Pedais
Virtuais. Itaja, 2008. 101 f. Trabalho de Concluso de Curso (Graduao em Cincia da
Computao)Centro de Cincias Tecnolgicas da Terra e do Mar, Universidade do Vale do Itaja,
Itaja, 2008.
A evoluo da tecnologia em processamento de sinal de udio tem possibilitado o desenvolvimento
de vrios softwares na rea de Computao Musical que at ento no eram possveis. Este trabalho
apresenta uma proposta de um software para produzir efeitos de guitarra atravs do processamento
do sinal no computador, sem a necessidade de equipamentos externos. A soluo proposta consiste
em uma aplicao para rodar na Plataforma Windows que possibilita a simulao dos principais
efeitos utilizados pelos guitarristas, na qual a guitarra ligada diretamente em um computador. Esta
monografia apresenta o desenvolvimento deste trabalho, discutindo conceitos estudados na pesquisa
bibliogrfica e descrevendo o projeto do software que foi implementado. No intuito de
complementar o conhecimento obtido nas disciplinas do Curso de Bacharelado em Cincia da
Computao da Universidade do Vale do Itaja, foram pesquisados conceitos sobre Computao
Musical, digital signal processing, pedaleiras virtuais, plugins VST (Virtual Studio Technology),
ASIO (Audio Stream Input/Output) e solues similares. O projeto do software foi desenvolvido
seguindo os padres da UML (Unified Modeling Language), com auxlio da ferramenta Enterprise
Architect. Foram elaborados diagramas de caso de uso, classe, seqncia e componentes, alm dos
prottipos de telas. Para o desenvolvimento do software foi utilizado o ambiente de programao
Visual Studio. Obteve-se uma aplicao robusta, simples e funcional, capaz de atender s
necessidades levantadas. Alm de possibilitar a reproduo de efeitos digitais sem a necessidade de
equipamentos para este fim, foi adquirida competncia no desenvolvimento de solues em
Computao Musical.
Palavras-chave: Computao Musical. Pedaleira virtual. Efeitos digitais. Software para guitarra.
Plugin VST.
ix
ABSTRACT
The evolution of technology in audio signal processing has turned possible the development of
several software in the Computer Music area which until then they were not possible. This paper
presents a proposal of software for producing effects of guitar through the processing of the signal
on the computer without the necessity of external equipment. The proposed solution consists in an
application to run the software at Windows platform that enables the simulation of the main effects
used by the guitar players, in which the guitar is directly connected to a computer. This paper
presents the development of this work, discussing concepts studied during the bibliographic
research and describing the software project that was implemented. In order to improve the
obtained knowledge in disciplines of Computer Science course from the UNIVALI, concepts about
musical computing, digital signal processing, virtual guitar processors, VST (Virtual Studio
Technology), ASIO (Audio Stream Input / Output) plug-ins and similar solutions were searched.
The software project has been developed following the standards of UML (Unified Modeling
Language), with the aid of Enterprise Architect tool. Diagrams of use case, class, sequence and
components and prototypes of screens were prepared. For the development of the software the
environment of Visual Studio programming was used. It was obtained a functional, simple and
robust application that can be able to consider the listed necessities. Besides enabling the
reproduction of digital effects without the necessity of equipment for this purpose, competence in
the development of solutions in Musical Computer was acquired.
Keywords: Computer music. Virtual guitar processor. Digital effects. Guitar software. VST plugin.
1 INTRODUO
Com o grande avano da informtica nas ltimas dcadas, hoje possvel desenvolver
softwares para diversas reas, entre elas, a msica. Os msicos de hoje, podem se beneficiar de
solues em software que antigamente no existiam. Muitos equipamentos que funcionavam apenas
com uma caixa amplificadora foram posteriormente ligados ao computador.
Segundo Wanderley (2006, p.1), criou-se assim a possibilidade de utilizao de
computadores pessoais na criao de sons de alta qualidade (com pelo menos 16 bits e 44.100
amostras/s) em modo de processamento nativo, isto , sem a adio de placas de processamento
extras para o clculo das amostras sonoras.
Os teclados, guitarras e contrabaixos possuam acessrios para modificar os sons
produzidos. Era um incio de processamento, porm os dispositivos inicialmente eram muito caros.
Com o crescente avano da tecnologia, hoje possvel substituir grande parte desse equipamento
por solues em software.
Um bom exemplo so os multi-efeitos ou pedaleiras virtuais, que so softwares utilizados
em estdios e at mesmo ao vivo, substituindo pedais e pedaleiras. Softwares na rea de
computao musical so importantes por facilitar o processamento de udio e pelo fato de
possibilitar um profissional da rea trabalhar em qualquer lugar, apenas com um notebook, no
sendo necessrio estar em um estdio com vrios equipamentos.
Por esse motivo, este trabalho consiste em um software que possui os principais efeitos de
pedais e pedaleiras utilizadas por guitarristas, como por exemplo, efeitos denominados Chorus,
Reverb, Delay, Overdrive e Distoro, que sero explicados na seo de Efeitos Digitais. O
funcionamento consiste em ligar a guitarra entrada de microfone do computador, e o software
processa o som da guitarra, assumindo o papel de uma pedaleira.
1.1 PROBLEMATIZAO
1.1.1 Formulao do Problema
O uso de computadores para produes musicais est cada vez mais freqente. Atualmente,
os estdios musicais do mundo inteiro utilizam computadores para fazer algum tipo de
processamento no som, seja na mixagem, masterizao, incluso de efeitos, gravao ou at mesmo
em todas essas etapas.
Com a tecnologia atual, possvel criar msicas e trilhas sonoras sem nenhum instrumento
musical sequer, apenas com o computador. Existem instrumentos virtuais, que simulam os sons de
instrumentos musicais reais, e programas poderosos de sntese sonora, que criam diversos tipos de
sons. Mas esses softwares so extremamente caros, e difceis de serem operados, o que requer um
alto nvel de conhecimento e treinamento.
Desta forma, esse trabalho proporcionou a implementao de um software que simula os
efeitos de pedais e pedaleiras utilizados por guitarristas, na qual sua principal caracterstica a
simplicidade de operao. Atualmente, os efeitos mais conhecidos e utilizados pelos guitarristas
so: Chorus, Reverb, Delay, Overdrive e Distoro, que so o foco deste trabalho.
1.2 OBJETIVOS
1.2.1 Objetivo Geral
O objetivo geral desse trabalho desenvolver um software capaz de adicionar efeitos
sonoros ao som de uma guitarra ligada ao computador, substituindo o uso de pedais e pedaleiras. O
software dever possuir os principais efeitos de uma pedaleira ou pedais, como Chorus, Reverb,
Delay, Overdrive e Distoro, podendo estes serem usados individualmente, combinados ou
simultaneamente.
Implementar o software; e
1.3 Metodologia
Este trabalho inclui a execuo das etapas previstas na proposta deste trabalho que so:
(i) pesquisa; (ii) modelagem; (iii) desenvolvimento; (iv) testes e validao e (v) documentao.
Na primeira etapa do trabalho, foram pesquisados softwares similares, conceitos de
Computao Musical, tecnologias de processamento sonoro e a teoria necessria para o
desenvolvimento do software proposto.
A segunda etapa, referente modelagem e o projeto do software, foi desenvolvida seguindo
os padres da UML 2.0, com auxlio da ferramenta case Enterprise Architect, que foi utilizada para
elaborar diagramas de casos de uso, classe, seqncia e componentes, alm dos requisitos
funcionais e no funcionais.
2 FUNDAMENTAO TERICA
Neste captulo, sero abordados os principais conceitos ao entendimento e desenvolvimento
de aplicaes para processamento de udio, incluindo temas como: Computao Musical, softwares
similares, efeitos de guitarra e tecnologias utilizadas, com maior nfase para VST. Tambm sero
apresentados conceitos e caractersticas sobre processamento de sinais digitais e os efeitos sonoros
que sero implementados.
reproduzi-lo, como se fosse uma partitura em formato digital. Dessa forma, o tamanho de arquivos
do tipo MIDI so extremamente pequenos, o que facilita sua transmisso e armazenamento.
2.1.1 Som
Segundo Miletto et al. (2004), o som a vibrao do ar, ou seja, variaes na presso do ar,
que so percebidas atravs do ouvido. Se essa presso varia de acordo com um padro repetitivo
dizemos que o som tem uma forma de onda peridica. Se no h um padro perceptvel no som este
chamado de rudo.
Pode-se encontrar outra definio de som em Brito (2003, p 17), onde afirmado que som
tudo que soa! Tudo o que o ouvido percebe sob a forma de movimentos vibratrios. Esse autor
descreve que o som possui quatro qualidades ou parmetros: altura, intensidade, timbre e durao.
2.1.1.1
Altura
A altura est relacionada com a freqncia do som, ou seja, define se o som grave ou
agudo. Por exemplo: ao tocar um piano, percebe-se que quanto mais direita estiver uma tecla,
mais alto ou agudo ser o seu som, e quanto mais a esquerda, o som ser mais baixo ou grave
(MILETTO et al., 2004).
Utilizando um osciloscpio1 para comparar sons com alturas diferentes, nota-se que o
nmero de ciclos por unidade de tempo se altera. Dessa forma, quanto mais agudo for o som, maior
ser seu nmero de ciclos dentro de um intervalo de tempo.
O nmero de ciclos dentro do intervalo de um segundo chamado freqncia, expresso em
unidades chamadas hertz (Hz). Desta forma, um som com 500 Hz, indica que a vibrao ocorre com
uma freqncia de 500 ciclos por segundo. Ao dobrar a freqncia de um som, ele elevado uma
oitava acima, ficando mais agudo (MILETTO et al., 2004).
Na Figura 2, est ilustrada uma onda com freqncia de 3 Hertz. Segundo Izecksohn (2005),
o ouvido humano capaz de perceber sons de aproximadamente 20 Hz a 20.000 Hz, o que significa
que o som ilustrado na Figura 2 no perceptvel ao ouvido humano.
Instrumento de teste e medio que fornece uma representao visual de sinais eltricos.
Intensidade
Ao aumentar ou diminuir o som de um rdio ou uma televiso, a intensidade (tambm
denominada amplitude) do som alterada. Denominaes como alto e baixo devem ser
utilizadas apenas para se referenciar altura do som, e no para a intensidade, como geralmente
utilizada. Para se referenciar de forma correta intensidade do som, devem ser utilizados os
adjetivos forte e fraco ou mais e menos. A unidade utilizada para a medida da intensidade
de ondas sonoras e sinais de udio costuma ser expressa em decibis (dB) (MILETTO et al., 2004).
Ao comparar sons com intensidades diferentes em um osciloscpio, nota-se que a altura das
ondas alterada. A altura de uma onda denominada amplitude, portanto um som com maior
amplitude um som mais forte.
Na
2.1.1.3
Timbre
Um violo e um piano no produzem um som com as mesmas caractersticas ao serem
tocados com a mesma altura e a mesma intensidade. Isso ocorre por existir outro fator alm da
altura e da intensidade em um som. Esse fator denominado timbre, que a caracterstica peculiar
de cada manifestao sonora. No caso de instrumentos relacionados com caixa acstica (como o
violo), temos caractersticas como produo sonora, tamanho e expanso sonora (MILETTO et al.,
2004).
Ao observar sons com timbres diferentes em um osciloscpio, percebida a mudana no
formato da onda sonora. Na Tabela 1 so apresentadas trs formas de onda, que so relacionadas
com seu timbre caracterstico e instrumentos que se assemelham a cada caso.
Tabela 1. Formas de ondas
Forma de onda
Timbre
Suave, doce
Instrumento
Flauta, assovio
Claro, brilhante
Violino, trompete
Simples, quente
Clarinete, obo
Durao
Um som pode ser medido pelo seu tempo de ressonncia e classificado como curto ou
longo. Exemplos: a madeira produz sons curtos, ao passo que metais produzem sons que vibram
durante um lapso maior (BRITO, 2003, p. 18).
Na Figura 4, duas ondas sonoras so ilustradas, na qual a onda superior possui uma durao
maior que a onda inferior.
2.1.2 DSP
DSP (Digital Signal Processing) o estudo de sinais em representao digital e de tcnicas
utilizadas para o processamento desses sinais (SMITH, 1999).
O DSP utilizado em vrias reas como matemtica, engenharia eltrica, fsica, msica,
entre outras. Na msica, o DSP muito utilizado para criao de efeitos digitais atravs de tcnicas
denominadas filtros digitais.
2.1.2.1
Filtros Digitais
No processamento de sinais o papel do filtro de remover partes indesejadas do sinal, bem
como rudos, ou simplesmente extrair partes importantes do mesmo, como componentes de uma
certa banda de freqncia. (NUNES et al., 2007).
Para Scandelari (2007), um filtro digital um sistema temporal discreto projetado para
passar o contedo de um sinal de entrada em uma determinada banda de freqncias, ou seja, a
funo de transferncia do filtro forma uma janela atravs da qual somente permitida a passagem
da parte desejada do sinal de entrada. Segundo Nunes et al. (2007), existem vrios tipos de filtros
digitais, entre eles destacam-se:
(a)
(b)
(c)
(d)
Figura 5. Filtros Digitais: (a) Passa-baixas; (b) Passa-altas; (c) Passa-banda; (d) Rejeita-banda
Fonte: Adaptado de Valenzuela (2005).
Outro filtro muito utilizado para a implementao de efeitos digitais o filtro Comb. O filtro
Comb adiciona uma parte levemente defasada do prprio sinal, o que gera cancelamentos de fase.
Segundo Mendes (2007), os filtros Comb so utilizados para remover uma freqncia particular e
seus harmnicos. A resposta em freqncia de um filtro Comb consiste de uma srie de picos
regularmente espaados, de modo que ele parece um pente, conforme a Figura 6.
10
Modulao
Modulao o processo de variao de altura, intensidade, timbre ou durao de uma onda
sonora. Para a implementao da modulao, uma tcnica muito utilizada o LFO (Low Frequency
Oscilator), ou oscilador de baixa freqncia em portugus (AUDIOCOURSES, 2007).
LFO uma tcnica utilizada em sntese e amostragem sonora para criao de muitos tipos
diferentes de efeitos. Ao contrrio dos osciladores convencionais, o LFO no utilizado como fonte
geradora de sons, e sim como uma forma de modulao de parmetros como freqncia e
intensidade (AUDIOCOURSES, 2007).
Ao utilizar um LFO na intensidade de um sinal por exemplo, obtm-se o efeito Tremolo. O
LFO tambm muito utilizado na freqncia de sinais de udio, a fim de obter efeitos como
Chorus, Flanger e Vibrato.
2.1.2.3
Transformada de Fourier
Segundo Neyra-Araoz (2007) a Transformada de Fourier uma tcnica largamente
11
12
(a)
(b)
(c)
Figura 10. (a) Pedaleira V-Amp2; (b) Pedal Digital Reverb; (c) Mesa de som Behringer
Fonte: Adaptado de Behringer (2007).
Na Figura 10a, ilustrada uma pedaleira chamada V-Amp2. Essa pedaleira possui vrios
efeitos como Chorus, Reverb, Distoro, Delay, etc. Esses efeitos podem ser utilizados
individualmente, ou simultaneamente. J na Figura 10b, ilustrado um pedal cujo nico efeito o
Reverb. No caso da utilizao de pedais com apenas um efeito, eles geralmente so ligados em
conjunto, no qual a sada de som de um pedal conectada na entrada de som de outro, formando
uma ligao em srie, ilustrada na Figura 11.
13
Chorus
Chorus um efeito que pode ser utilizado em vrios instrumentos, como guitarras, baixos,
violes, etc. Chorus, que significa coro, um efeito que duplica o som original, dando a impresso
de ter mais de um instrumento sendo tocado ao mesmo tempo. Por exemplo, ao tocar uma guitarra
ligada a um pedal de Chorus, tem-se a impresso de que outra guitarra est sendo tocada
simultaneamente. No caso de utiliz-lo na voz (atravs de um microfone ligado a um efeito de
Chorus), a impresso de que existe mais de uma pessoa cantando (HARMONY CENTRAL,
2007).
Para dar essa impresso de duplicidade ou coro, o som no apenas duplicado, mas
propositalmente atrasado e acrescentada uma pequena modulao em relao ao som original.
Essas alteraes so mnimas, para que o som no perca suas caractersticas originais. Na Figura 12
ilustrado um pedal de Chorus da marca Danelectro.
14
Na Figura 13 so ilustradas duas ondas sonoras, na qual a inferior possui o efeito Chorus
aplicado.
Tremolo
Tremolo um efeito que altera a intensidade do som em curtos perodos de tempo
(geralmente menor que um segundo), dando a sensao para o ouvinte de que o som est oscilando.
15
Na Figura 15 so ilustradas duas ondas sonoras, na qual a inferior possui o efeito Tremolo
aplicado.
16
2.1.3.3
Delay
O efeito Delay, tambm conhecido como eco, acrescenta um atraso ao som original. O
Delay um efeito muito utilizado pelos guitarristas para dar mais vida guitarra, fazendo com
que o som no fique to seco cantando (HARMONY CENTRAL, 2007).
Assim como o Chorus, o Delay tambm pode ser utilizado em outros instrumentos como
violo, voz, teclados, etc. Na Figura 16, ilustrado um pedal de Delay da marca Behringer.
Feedback: est relacionado com o nmero de repeties do som original. Esse parmetro
permite ajustar o Delay para que repita o som 1 ou 10 vezes por exemplo; e
Time: o intervalo de tempo entre uma repetio e outra. Esse intervalo geralmente
muito pequeno (na unidade de micro segundos), mas que pode chegar at 2,5 segundos
aproximadamente.
17
Na Figura 17 so ilustradas duas ondas sonoras, na qual a inferior possui o efeito Delay
aplicado.
Reverb
o efeito que adiciona ambientao ou reverberao ao som. Por exemplo, ao falar dentro
de uma sala pequena, a voz no ir se propagar por muito tempo, o que no acontece dentro de uma
Igreja. Esse efeito muito utilizado nas gravaes em estdio.
Em Iazzetta (2000), afirmado que "Em um ambiente qualquer, as ondas sonoras so
refletidas ao encontrarem uma superfcie refletora. Essas primeiras reflexes (early reflections) so
seguidas de outras reflexes menos intensas e mais atrasadas em relao ao sinal inicial. A soma de
todas esses componentes cria o efeito de reverberao. O Reverb classificado em relao ao tipo
de espao simulado, os principais so:
Compressor
Segundo Behringer (2007), o compressor um efeito que comprime o som, normalizando a
19
20
Equalizador
O equalizador atua diretamente na intensidade de freqncias do som, aumentando ou
21
22
2.1.3.7
Distoro
O efeito de distoro, como o prprio nome sugere, distorce o som da guitarra. o efeito
mais utilizado pelos guitarristas, principalmente em estilos musicais como Blues, Rock e Heavy
Metal.
Para Luvizotto, Furlanete e Manzolli (2006), o fenmeno de distoro de um sinal est
relacionado ao enriquecimento do espectro de freqncias, ou seja, quanto mais distorcido estiver o
sinal, maior ser o nmero de componentes espectrais. A distoro pode ser dividida em duas
categorias: Overdrive e Distortion.
Overdrive uma saturao4 mais leve no som da guitarra, se comparado ao Distortion.
Como o Overdrive possui um ganho mdio ou fraco, a dinmica do guitarrista valorizada, pois o
som altera bastante com a performance instrumental.
O Distortion possui mais ganho ou saturao do que o Overdrive, o que o torna um efeito
mais pesado e agressivo. Pelo fato do alto ganho, a dinmica do guitarrista no influencia muito
no resultado final do som. Na Figura 24a, ilustrado um pedal de Overdrive, e na Figura 24b, um
pedal de distoro.
(a)
(b)
23
Na
(a)
(b)
Figura 25. (a) Onda sonora do efeito Overdrive; (b) Onda sonora do efeito Distoro
24
junto com playbacks6. Tambm utilizado o driver de som ASIO4ALL (ASIO para todos) para
diminuir a latncia7 do processamento sonoro. Todos os plugins VST includos so freeware, assim
como o Guitar R.A. A tecnologia VST foi criada pela empresa Steinberg, que a tornou pblica para
que desenvolvedores possam utiliz-la para criar seus prprios programas (ZIMERMANN, 2007).
Na Figura 26 ilustrada a tela principal do software.
2.2.2 FX-Box
O FX-Box um software de processamento de udio para guitarra, que possui efeitos DSP
em tempo real e roda na plataforma Windows. A latncia entre o processamento do sinal de entrada
e sua sada muito pequena. O software foi desenvolvido pelo russo Sasha Gojkovic utilizando a
tecnologia DirectSound para acesso rpido placa de som, alm de algoritmos DSP rpidos e
6
7
Sonorizao de uma msica sem a presena da voz do cantor(a) ou de algum instrumento musical.
Diferena de tempo entre o incio de um evento e o momento em que seus efeitos tornam-se perceptveis.
25
otimizados. Entre eles, esto presentes efeitos como Overdrive, Distortion, Delay, Reverb, Chorus,
Wah-wah, Pitch shifter, Tremolo, Equalizador, Compressor e Phaser, que podem ser utilizados
simultaneamente (GOJKOVIC, 2002).
disponibilizada uma verso de demonstrao que expira em trinta dias no site do
fabricante. Na Figura 27, mostrada a interface do FX-Box.
2.2.3 Revalver
Revalver um simulador de amplificador de guitarra desenvolvido pela Alien Connections
que pode ser executado na plataforma Windows atravs dos drivers ASIO/WDM ou na plataforma
Macintosh atravs do CoreAudio. O software permite o uso de dezesseis mdulos simultaneamente,
que possuem funes de pr-amplificadores, amplificadores de potncia, auto-falantes, Delay,
simulador de ambiente, Chorus, Reverb, Tremolo, compressor, equalizador grfico, auto-Wah, entre
outros (ALIEN CONNECTIONS, 2005).
Algumas combinaes, (presets), pr-definidos acompanham o software, para facilitar a
manipulao dos mdulos. O Revalver tambm foi desenvolvido com a tecnologia VST
disponibilizada pela Steinberg. Uma verso de demonstrao do programa est disponvel no site do
26
fabricante para download, que possui todas as funcionalidades do programa habilitadas, porm
emitido um rudo a cada quarenta e cinco segundos. A Figura 28 mostra a interface do Revalver.
Tecnologia
VST
DirectX
VST
VST
Free
Sim
No
No
Sim
Interoperabilidade
Sim
No
Sim
Sim
27
ASIO
Sim
No
Sim
Sim
Plataforma
Win
Win
Win/Mac
Win
2.3.1 DirectX
DirectX uma coleo de bibliotecas multimdia desenvolvidas pela Microsoft, muito
utilizada em programao de jogos para rodar na plataforma Windows. Ela possui uma biblioteca
chamada DirectSound, com diversas funes para manipulao de udio. A Microsoft disponibiliza
gratuitamente o SDK (Software Development Kit) da DirectX para download em seu site, que
permite utilizar linguagens de programao como C++, C# e VB.net (MICROSOFT, 2007).
O DirectX permite a criao de plugins de udio, que podem ser utilizados em vrios
programas como Band in a Box, Cakewalk Sonar, Cubase, Cool Edit, etc.
2.3.3 PortAudio
PortAudio uma plataforma de cdigo aberto desenvolvida pelo programador e compositor
Ross Bencina e pelo programador e designer Phil Burk. A plataforma foi escrita na linguagem C,
que pode ser compilada para vrias plataformas como Windows, Unix, Macintosh, etc. O SDK
fornece recursos muito simples para gravar e tocar sons, alm de bibliotecas de entrada e sada de
udio, onde os programas desenvolvidos podem ser testados (PORTAUDIO, 2006).
28
2.3.4 OpenAL
OpenAL (Open Audio Library) uma API 3D para manipulao de udio cuja estrutura de
classes muito parecida com a OpenGL (Open Graphics Library). Assim como o DirectX e a SDL,
ela tambm muito utilizada no desenvolvimento de jogos e aplicaes de udio, geralmente
combinada com o OpenGL (OPENAL, 2006).
A Creative Labs incluiu extenses ao OpenAL como EAX e XRAM, que possibilitaram
uma extenso para efeitos de udio. Essas extenses foram introduzidas no OpenAL para
disponibilizar uma plataforma genrica com suporte a efeitos DSP avanados (CREATIVE, 2007).
2.3.5 VST
VST (Virtual Studio Technology) uma tecnologia desenvolvida pela Steinberg em 1996
para a criao de plugins, cuja funo processar udio e MIDI em tempo real com alta qualidade
sonora. Os plugins VST tornaram-se um padro na indstria de desenvolvimento de aplicativos e
softwares para udio e msica, podendo ser utilizados em diversos softwares, como Logic Audio,
Cubase SX, Pro Tools, Nuendo, Cakewalk Sonar, Fruity Loops, entre outros (JNIOR, 2005).
Um plugin VST no uma aplicao ou software, mas sim um componente de
processamento de udio que deve ser utilizado em um software hospedeiro, denominado host. O
host disponibiliza o udio que o plugin VST ir processar. O plugin VST processa o som
normalmente utilizando o processador do computador, no sendo necessrio um processador
dedicado ao processamento digital de sinal. O sinal a ser processado pelo plugin quebrado em
vrios blocos, no qual o programa host o responsvel em definir seu tamanho, e envi-los na
seqncia correta para o plugin (STEINBERG, 2007).
Do ponto de vista do host, o plugin VST uma caixa preta com um nmero de entradas,
sadas e parmetros associados, no sendo necessrio ao host ter conhecimento sobre o
processamento que feito dentro do plugin.
A Steinberg disponibiliza gratuitamente o SDK do VST na linguagem C++, que permite
desenvolver plugins para Windows, Linux e Macintosh. Esse SDK j possui tradues para
29
linguagens de programao como Delphi e Java, criando mais opes para os programadores,
porm perde-se a compatibilidade com vrios sistemas operacionais. No Windows por exemplo, um
plugin VST um arquivo com extenso .DLL.
Na Figura 29, demonstra-se a comunicao entre um programa host e um plugin VST, na
qual o host passa o udio e parmetros para o plugin, que processa o udio recebido e devolve o
som processado para o host.
30
Na Figura 30, ilustrado o programa VstHost e um plugin de distoro chamado Soul Force,
onde pode-se notar duas interfaces, sendo uma prpria do plugin (interface esquerda), e a outra
disponibilizada pelo host (interface direita).
31
(a)
(b)
(c)
Figura 31. (a) Interface do SynthEdit; (b) Interface do SynthMaker; (c) Interface do Quantum Fx
Fonte: Softwares SynthEdit, SynthMaker e Quantum Fx.
Tambm existem os plugins VSTi (Virtual Studio Technology Instrument), que so
conhecidos como instrumentos virtuais. Um plugin VSTi pode simular e sintetizar o som de
diversos instrumentos como piano, guitarra, bateria, violo, violino e trompete, enquanto os plugins
VST no tm a capacidade de gerar sons, eles apenas processam o som fornecido pelo host.
Estes instrumentos virtuais, desenvolvidos com a tecnologia VST, necessitam de um
programa host para seu funcionamento.. Nesse caso, o host no ir passar o som para o plugin
processar, e sim informaes MIDI. Como exemplo, possvel citar o EZ Drummer (Figura 32) da
Toontrack, que uma bateria virtual. O host apenas passa as informaes MIDI para o plugin, e ele
se encarrega de processar a informao e tocar o som correspondente. No caso de uma bateria, cada
nota musical MIDI corresponde a uma pea da bateria.
32
Pea
Bumbo
Baqueta
Caixa
Aro da caixa
Caixa 2
Surdo
Chimbal fechado
Tom 3
Chimbal semi aberto
Tom 2
Chimbal aberto
Tom 1
33
2.3.6 JUCE
JUCE (Jules Utility Class Extensions) uma coleo de bibliotecas OpenSource
desenvolvidas em C++ que podem ser compiladas em ambiente Windows, Linux ou Mac OSX. Ele
foi desenvolvido pela empresa Raw Material Software e possui classes para criao de interfaces
grficas, manipulao de imagens, udio, arquivos XML e tm uma tima integrao com a
tecnologia VST e ASIO, ambas da Steinberg. (RAW MATERIAL SOFTWARE, 2008).
O JUCE conta com exemplos e tutoriais que explicam como utiliz-lo e compil-lo nas
plataformas suportadas. Ele possui um exemplo com as principais funcionalidades encontradas em
um software host para plugins VST que possui suporte ao driver ASIO.
2.3.7 ASIO
ASIO uma API desenvolvida pela Steinberg para a manipulao de udio digital, para
superar as limitaes 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. (Figura 33b).
(a)
(b)
Figura 33. (a) Placa M-AUDIO DELTA 1010 LT; (b) Placa Creative AUDIGY 2 ZS 7.1
34
35
2.4 Consideraes
No Captulo 2, foi apresentada uma reviso bibliogrfica sobre Computao Musical, com o
objetivo de expor os principais conceitos e caractersticas dessa rea da Cincia da Computao que
pode ser largamente explorada.
A pesquisa sobre softwares similares fez-se necessria para demonstrar que j existem
algumas solues disponveis, e para situar esse trabalho em seu devido contexto.
Atravs da pesquisa realizada em busca de tecnologias de processamento sonoro, conclui-se
que existem vrias opes. Analisando o objetivo proposto pelo TCC, a tecnologia VST da
Steinberg foi a que mais se identificou para o desenvolvimento deste trabalho, devido ao seu SDK
especfico para tratamento de udio e por ser bem documentado, bem como sua compatibilidade
entre diversos softwares da rea.
A prxima etapa deste trabalho consiste em descrever o desenvolvimento do software, na
qual
so
apresentados
os
requisitos,
modelagem
36
desenvolvimento
do
mesmo.
3 DESENVOLVIMENTO
Este trabalho possibilitou o desenvolvimento de um software para processar o som de uma
guitarra conectada a um computador, assumindo o papel de uma pedaleira. Para que essa conexo
entre guitarra e computador seja possvel, necessrio o uso de um adaptador de plug P10 para P2,
ilustrado na Figura 35.
3.1.1.1
Requisitos Funcionais
RF04: Dever ser possvel salvar as configuraes (presets) dos efeitos, para que no
seja necessrio ajustar os parmetros toda vez ao iniciar o programa;
RF05: O sistema dever possibilitar ao usurio a opo de escolha das entradas (input) e
sadas (output) de som do sistema; e
3.1.1.2
RF06: A ordem e ligao entre os plugins VST podero ser definidas pelo usurio.
Requisitos No Funcionais
RNF01: O sistema dever ser compatvel com o sistema operacional Windows XP;
RNF04: O sistema dever permitir a utilizao de outros plugins VST j existentes, que
no sero implementados nesse trabalho.
3.1.1.3
Regras de Negcio
3.1.2
Projeto do Sistema
Neste item sero apresentados os diagramas de Caso de Uso, Classe, Seqncia e
12
Essa ordem foi estabelecida conforme o fluxo de processamento do sinal de udio na maioria das pedaleiras e pedais
ligados em srie.
38
3.1.2.1
39
RF05: O sistema dever possibilitar ao usurio a opo de escolha das entradas (input) e
sadas (output) de som do sistema.
Cenrios
Fluxo Principal: Configurar o som do sistema
1. O sistema apresenta uma tela de configurao de udio para o usurio (TELA 02);
2. O usurio seleciona as entradas de som (input);
3. O usurio seleciona as sadas de som (output);
4. O usurio seleciona o sampleRate e o buffer size;
5. O usurio clica no boto para fechar a tela; e
6. O sistema salva as configuraes em um arquivo de configurao.
Pacote 02: Seleo de Efeitos
O pacote Seleo de Efeitos descreve a seleo ou ativao/desativao dos efeitos. Na
Figura 37 ilustrado o Diagrama de Caso de Uso Seleo de Efeitos.
40
RF06: A ordem e ligao entre os plugins VST podero ser definidas pelo usurio.
Cenrios
Fluxo Principal: Selecionar Efeitos
1. O sistema apresenta a tela principal (TELA 01);
2. O usurio clica no boto Play para iniciar o processamento;
3. O usurio clica em algum preset;
4. Se existir o preset salvo em disco, o sistema o exibe na tela;
5. O usurio adiciona os efeitos desejados com o boto direito do mouse ou arrastando e
soltando um plugin na tela; e
6. O usurio ativa os efeitos que ir utilizar.
Fluxo de Exceo: Erro ao adicionar efeito
Se no passo 5 o efeito selecionado pelo usurio no existir, o sistema exibe a mensagem
"Erro ao criar plugin. O Plugin selecionado no existe. (TELA 03).
41
Cenrios
Fluxo Principal: Ajuste de parmetros
1. O sistema apresenta a tela principal (TELA 01);
2. O usurio seleciona o efeito com duplo clique do mouse;
3. O sistema apresenta tela com interface do plugin; e
4. O usurio faz ajuste nos parmetros do plugin.
Pacote 04: Exportao/Importao
Esse pacote possui dois cenrios: Exportao e Importao. O caso de uso de Exportao
descreve o processo de salvar um preset definido pelo usurio, enquanto o caso de uso de
Importao descreve o processo para abrir um preset j salvo. Na Figura 40 ilustrado o Diagrama
de Caso de Importao/Exportao.
42
RF04: Dever ser possvel salvar as configuraes (presets) dos efeitos, para que no
seja necessrio ajustar os parmetros toda vez ao iniciar o programa.
Cenrios
Fluxo Principal: Exportar Preset (Cenrio 1)
1. O usurio clica no menu "Arquivo => Salvar Como..." (TELA 01);
2. O sistema apresenta tela de seleo de diretrio e nome do arquivo (TELA 04);
3. O usurio digita o nome do arquivo e seleciona o diretrio;
4. O usurio clica em salvar; e
5. O sistema salva o arquivo na pasta selecionada.
Fluxo de Exceo: Nome incorreto ou em branco
Se no passo 4 o nome do arquivo possuir caracteres invlidos, o sistema exibe mensagem "O
nome do arquivo acima invlido!", (TELA 03), e retorna ao passo 3.
43
classes do sistema, assim como os tipos de associaes que existam entre elas. Como o programa
host independente dos plugins, foram modelados dois diagramas de classe, sendo um com as
principais classes do host, e o outro com a estrutura principal de um plugin VST.
A Figura 41 apresenta o modelo de classes de negcio, que ilustra as classes participantes do
domnio do sistema e seus respectivos relacionamentos.
44
O diagrama de classes do plugin VST foi elaborado estudando a estrutura de classes do SDK
fornecido pela Steinberg, que composto por cinco classes principais, sendo duas responsveis pela
interface do plugin, e as demais responsveis pelas funcionalidades do plugin.
A classe principal a PluginVST, que uma especializao da classe AudioEffectX, que
por sua vez uma especializao da classe AudioEffect. na classe PluginVST que o programador
define o nome do plugin, quantos e quais sero seus parmetros, as funes ProcessReplacing() e
ProcessDoubleReplacing() - que so responsveis pelo processamento do som -, entre outras
caractersticas bsicas do plugin. J as classes AEffEditor e AEffGUIEditor, so responsveis pela
interface grfica do plugin.
Devido ao grande nmero de mtodos e atributos presente nas classes, apenas a classe
PluginVST est com todos seus membros ilustrados no diagrama.
Em anexo, est o cdigo fonte do plugin VST Volume, que foi implementado para controlar
a intensidade do sinal de udio. Na Figura 42 ilustrado o Diagrama de Classes de um plugin VST.
45
seria utilizada em conjunto com as tecnologias VST e ASIO da Steinberg a tecnologia JUCE. Por
esse motivo, o nmero de classes do programa host aumentou consideravelmente. Este diagrama de
classes est ilustrado na Figura 43.
46
47
Onde:
PainelPrincipal: painel que possui os botes de presets, Play, Stop e Bypass, e suas
respectivas funcionalidades;
3.1.2.4
Foi elaborado um diagrama de seqncia sobre a interao do usurio com o software, que
engloba os principais casos de uso. O diagrama descreve o processo do usurio configurar o udio
do sistema, ajustar os parmetros dos efeitos, e salvar o preset em disco, conforme ilustra a Figura
44.
48
49
3.1.2.5
Diagrama de Componentes
Foi elaborado um diagrama de componentes para ilustrar os principais arquivos que compe
o software. Cada plugin VST ser um arquivo com extenso DLL, enquanto o programa principal
(encarregado por fornecer o som para os plugins), ser um arquivo executvel do Windows.
Prottipos de Telas
Esta seo apresenta os prottipos de telas do sistema, citadas na descrio dos casos de uso
50
51
52
3.2 IMPLEMENTAO
A etapa de implementao compreendeu a codificao do projeto do sistema, atravs da
linguagem de programao C++, consolidando o projeto elaborado em um produto final.
Para o desenvolvimento dos efeitos e do software host, foi utilizado o ambiente de
programao Visual Studio 2008 da Microsoft e o VST SDK verso 2.4 da Steinberg. Para o
programa host, tambm foi utilizado o SDK ASIO verso 2.2 para obter uma baixa latncia no
processamento sonoro e o SDK JUCE verso 1.45, que responsvel pela interface grfica do
sistema.
53
O ambiente de programao Microsoft Visual Studio 2008 foi escolhido pelo fato das trs
tecnologias utilizadas (ASIO, JUCE e VST) possurem projetos e exemplos desenvolvidos nele, o
que facilita a programao e a compilao do cdigo fonte.
Os efeitos Chorus e Reverb foram implementados com o auxlio da ferramenta SynthEdit,
pois foram encontradas dificuldades para desenvolver algoritmos de filtros digitais e a transformada
de Fourier, tcnicas necessrias para desenvolvimento desses efeitos.
Alm dos cinco efeitos definidos nos requisitos funcionais, foram implementados mais dois:
Tremolo e Volume. Desta forma, foram implementados sete plugins ao total: Overdrive, Distortion,
Chorus, Delay, Reverb, Tremolo e Volume. Para o desenvolvimento da interface grfica dos
plugins, foi utilizado o VSTGUI nativo do VST SDK, que independente de plataforma.
As prximas sees descrevem as funcionalidades implementadas no programa host e
plugins e detalhes tcnicos referentes programao dos mesmos.
Tela Principal
A Tela Principal responsvel por fazer a comunicao com os plugins e exibi-los
corretamente na tela. Funcionalidades como Importar e Exportar presets tambm esto atribudos
Tela Principal, que possui um menu para tais finalidades.
Como ponto de partida para o desenvolvimento, foram estudados exemplos integrantes do
SDK JUCE. Um dos exemplos de aplicaes o PluginHost, um projeto que possui as principais
funcionalidades de um programa host. Dessa forma, foram estudadas as classes e o cdigo fonte do
PluginHost para aquisio do conhecimento necessrio para o desenvolvimento do DK Guitar.
A estrutura de classes definida na modelagem do sistema foi mantida, porm novas classes
tiveram que ser criadas e adicionadas para facilitar a programao e para manter a consistncia com
a estrutura do JUCE. Dessa forma, cada tela do software um objeto de uma determinada classe.
Tambm foram adicionadas classes para desenhar componentes grficos, como os fios conectores
54
de plugins e os plugins minimizados na tela. A Figura 50 mostra o diagrama com classes nativas do
JUCE e classes do PluginHost, que so utilizadas no DK Guitar para a manipulao do udio.
55
Excluir esse componente: remove o plugin da tela e exclui suas conexes caso existam;
Mostrar interface do plugin: abre uma tela com a interface do plugin. Caso a interface
no exista, aberta uma tela de interface padro do DK Guitar com os parmetros do
plugin; e
57
3.2.1.2
udio. Ela tambm possui um boto que abre a tela de configuraes do driver ASIO4ALL, para
que o usurio possa definir configuraes do driver de som.
Audio device: lista os drivers de som disponveis no computador. Essa lista varia
conforme a quantidade de placas de som instaladas no PC;
Sample rate: permite selecionar a taxa de amostragem do sinal de udio. Quanto maior
for esse valor, maior ser a qualidade sonora, e menor ser a velocidade de
processamento. O valor padro utilizado em softwares de gravao e reproduo de
udio 44.100 Hz;
udio buffer size: define o tamanho do buffer de amostras sonoras. Quanto maior esse
buffer, maior ser a latncia do processamento sonoro;
58
As duas ltimas opes no so utilizadas no software, mas foram mantidas por questes de
compatibilidade com o SDK JUCE. Com a implementao da tela de configuraes, o requisito
funcional RF5 foi cumprido.
3.2.1.3
Presets
Para implementao dos presets, foi criada a classe ControlePlugins, que possui
funcionalidades para seu gerenciamento e controle. Cada preset um arquivo XML com extenso
.Preset, que carregado em memria quando o programa iniciado. Uma vez na memria, o
usurio pode realizar alteraes e salv-los no computador.
Para facilitar a troca entre presets, foram definidos botes de acesso rpido que possuem
uma tecla de atalho para facilitar seu acionamento. A Tabela 4 ilustra a relao entre os presets,
teclas de atalho, botes e arquivos XML.
Tabela 4. Botes e teclas de atalho do Software DK Guitar
Botes
Presets
Preset 1
Teclas de Atalho
F1
Arquivos
F1.Preset
Preset 2
F2
F2.Preset
Preset 3
F3
F3.Preset
Preset 4
F4
F4.Preset
Preset 5
F5
F5.Preset
Preset 6
F6
F6.Preset
Preset Bypass
Barra de Espao
Bypass.Preset
Enter
Enter
59
3.2.2 Plugins
No desenvolvimento dos plugins, foram implementadas duas entradas e duas sadas de som
para cada efeito, possibilitando o processamento em stereo.
60
Plugin Delay
Para implementar o efeito de Delay, foi utilizada uma tcnica de estrutura de dados
61
62
(a)
(b)
Figura 56. (a) Interface do Delay; (b) Interface padro do Delay no DK Guitar
Na Figura 57, a onda sonora inferior ilustra o resultado do efeito Delay aplicado na onda
sonora superior.
Plugin Overdrive
Para o desenvolvimento do efeito Overdrive, foram implementadas equaes matemticas
aplicadas ao sinal de udio, com propsito de modificar o formato da onda sonora. As equaes
implementadas esto ilustradas a seguir:
63
K = (2 * fGanho) / (1 - fGanho)
Equao 1
X = ((1 + K) * X) / (1 + K * abs(X))
Equao 2
Onde:
64
65
(a)
(b)
Figura 59. (a) Interface do Overdrive; (b) Interface padro do Overdrive no DK Guitar
Para a visualizao grfica da modificao que ocorre na onda sonora depois de ser
processada pelo efeito Overdrive implementado, foi gravado um arquivo de udio com o som da
sexta corda solta de uma guitarra (nota Mi). Na parte superior da Figura 60 est ilustrada a onda
sonora gerada pela guitarra, e na parte inferior a mesma onda depois de ser processada pelo plugin
Overdrive.
66
3.2.2.3
Plugin Distortion
A implementao do efeito Distortion foi baseada nas equaes do efeito Overdrive. Para
realizar modificaes nestas equaes, foi utilizado o programa SynthEdit. No SynthEdit foi criado
um bloco WavePlayer para reproduzir um arquivo wave, um bloco Waveshaper2, na qual possvel
expressar as equaes matemticas e um bloco SoundOut, para ouvir o resultado do processamento.
No bloco Waveshaper2, a equao resultante a compilao das duas equaes utilizadas na
implementao do Overdrive, na qual o parmetro fGain foi substitudo por valores numricos.O
diagrama do SynthEdit est ilustrado na Figura 61.
67
K = (2 * fGanho2) / (1 fGanho2)
Equao 3
Equao 4
Onde:
O cdigo fonte do processamento sonoro do plugin Distortion est ilustrado na Figura 62.
68
69
(a)
(b)
Figura 63. (a) Interface do Distortion; (b) Interface padro do Distortion no DK Guitar
O arquivo sonoro utilizado para ilustrar o efeito de Overdrive tambm foi utilizado para
aplicar o efeito Distortion. A parte superior da Figura 64 ilustra a onda sonora original e a parte
inferior mostra a onda sonora aps ser processada pelo plugin Distortion.
Plugin Tremolo
Para o desenvolvimento do efeito Tremolo foi implementado um oscilador (LFO) que varia
de 0 a 1 que incrementado com o valor definido pelo parmetro fTempo. Quanto menor for esse
parmetro mais devagar ser o efeito Tremolo.
70
71
(a)
(b)
Plugin Chorus
O plugin Chorus foi implementado com o auxlio do programa SynthEdit, pois foram
sinal passa normalmente para o componente Delay. Este componente est com o tempo de Delay
fixo em 27 milissegundos. Um LFO ou oscilador de baixa freqncia est ligado ao Delay para
fazer a modulao caracterstica do efeito Chorus.
Para fazer a interface grfica foi utilizado o mesmo layout do knob (potencimetro) usado na
implementao dos outros plugins. Na Figura 69, est ilustrada a interface do plugin Chorus
implementada no software SynthEdit e sua interface padro no DK Guitar.
(a)
(b)
Figura 69. (a) Interface do Chorus; (b) Interface padro do Chorus no DK Guitar
Na Figura 70, a onda sonora inferior ilustra o resultado do efeito Chorus aplicado na onda
sonora superior.
74
3.2.2.6
Plugin Reverb
Assim como o Chorus, o plugin Reverb foi implementado com o auxlio do programa
SynthEdit. No SynthEdit, foram utilizados blocos de filtros digitais do tipo Comb e Allpass para o
desenvolvimento do Reverb. Os parmetros implementados foram:
75
Comb: este filtro adiciona um Delay com um curto intervalo de tempo acrescentando
pequenas defasagens no som;
Allpass: filtro Allpass, utilizado para passar todas as freqncias com a mesma
amplitude;
LevelAdj: utilizado pelo parmetro Mix do plugin para controlar a intensidade do efeito
Reverb no sinal original;
DCA1 e DCA2: utilizado pelo boto On/Off para ativar e desativar o efeito; e
Multiply: multiplica o valor do parmetro Tone antes de pass-lo para o bloco Comb.
(a)
(b)
Figura 72. (a) Interface do Reverb; (b) Interface padro do Reverb no DK Guitar
Na Figura 73, a onda sonora inferior ilustra o resultado do efeito Reverb aplicado na onda
sonora superior.
76
Plugin Volume
A funo do plugin Volume implementado de controlar a intensidade de sada do udio.
Pode ser utilizado para obter uma diferena de intensidade necessria entre dois presets. Por
exemplo, um preset configurado para ser utilizado para o guitarrista executar um solo, geralmente
possui maior intensidade que os outros presets.
O nico parmetro do plugin Volume o fGain, que ajusta a intensidade de sada do sinal.
Na Figura 74, est ilustrada a funo processReplacing do plugin, onde feito o
processamento sonoro.
77
S.O.
Processador
Windows AMD 2.2GHz
XP
Memria
1GB
Notebook HP
2GB
78
Placa de som
Onboard (Asus)
Creative AUDIGY 2 ZS 7.1
Behringer Guitar Link UCG102
Onboard (NVidia)
Behringer Guitar Link UCG102
(a)
(b)
(c)
Figura 77. (a) Distortion no FL Studio; (b) Distortion no Sonar; (c) Distortion no Audacity
No foram realizadas comparaes das ondas sonoras produzidas pelos plugins com ondas
sonoras resultantes da utilizao de pedais reais, mas auditivamente o resultado sonoro dos efeitos
implementados so semelhantes ao som de pedais e pedaleiras que existem no mercado.
79
4 CONCLUSES
Este trabalho consistiu no desenvolvimento de um software para processar o sinal de uma
guitarra ligada a um computador, simulando os sons dos principais efeitos utilizados pelos
guitarristas. Para complementar o conhecimento das disciplinas do curso de Cincia da Computao
e propiciar o desenvolvimento deste, foram levantados conceitos e utilizaes sobre Computao
Musical, bem como uma reviso bibliogrfica sobre tecnologias de processamento sonoro e
softwares similares. Foram localizados, baixados e experimentados softwares como Guitar R.A.,
Revalver, FxBox, e tecnologias como VST e DirectX.
A pesquisa sobre tecnologias de processamento de udio teve como objetivo a aquisio de
conhecimento, a fim de determinar qual a melhor linguagem para o desenvolvimento do software
proposto. Optou-se pela utilizao da tecnologia VST, pelo fato de ser um padro utilizado em
muitos softwares da rea. Outra vantagem ela ser multi-plataforma e possuir boa documentao
disponvel. As tecnologias JUCE e ASIO foram utilizadas em conjunto com a VST, com o intuito
de construir um software com uma interface amigvel e com a menor latncia possvel no
processamento sonoro, para viabilizar sua utilizao em tempo real.
A modelagem do software foi realizada com o auxlio da ferramenta Enterprise Architect,
seguindo os padres da UML. Foram apresentados diagramas de Casos de Uso, classe,
componentes e seqncia, bem como o levantamento dos requisitos funcionais e no funcionais.
No processo de desenvolvimento, foram encontradas dificuldades para desenvolver
algoritmos de filtros digitais e a transformada de Fourier, tcnicas necessrias para a implementao
de efeitos como Chorus e Reverb. Dessa forma, estes dois efeitos foram desenvolvidos com o
auxlio do software SynthEdit. Alm dos cinco efeitos definidos nos requisitos funcionais, mais dois
foram desenvolvidos: Tremolo e Volume.
Considerando os objetivos deste trabalho, pde-se verificar que todos foram cumpridos,
tendo em vista que o software concebido contempla os requisitos funcionais e no funcionais e os
diagramas de casos de uso definidos na modelagem. No entanto, o software desenvolvido pode ser
melhorado com a incluso de novos recursos, que podem ser desenvolvidos em trabalhos futuros,
como:
Afinador digital;
Gravador de som; e
81
REFERNCIAS BIBLIOGRFICAS
AUDIOCOURSES. Low Frequency Oscillator (LFO). 2007. Disponvel em:
<http://www.audiocourses.com/article1703.html>. Acesso em: 18 dez. 2007
ALIEN CONNECTIONS. Guitar FX-Box. 2005. Disponvel em:
<http://www.alienconnections.com/products_revalverii.htm>. Acesso em: 16 set. 2007.
BEHRINGER. Behringer. 2007. Disponvel em: <http://www.behringer.com>.
Acesso em: 20 out. 2007.
BOSS. Boss. 2007. Disponvel em: <http://roland.com.br/boss>. Acesso em: 20 out. 2007.
BRITO, Tea Alencar de. Msica na educao infantil: propostas para a formao integral da
criana. 2. ed. So Paulo: Peirpolis, 2003.
CREATIVE. OpenAL SDK for Windows. 2007. Disponvel em:
<http://developer.creative.com/articles/article.asp?cat=1&sbcat=31&top=38&aid=45>.
Acesso em: 18 set. 2007.
DANELECTRO. Danelectro. 2007. Disponvel em: <http://www.danelectro.com/mini1.htm>.
Acesso em: 20 out. 2007.
EDUCOM. O Som. 2007. Disponvel em: <http://web.educom.pt/~pr1258/8ano/a6_som8ano.htm>.
Acesso em: 28 out. 2007.
ELLIOTT, Rod. Digital Signal Processing. 2006. Disponvel em:
<http://sound.westhost.com/articles/dsp.htm>. Acesso em: 28 out. 2007.
GOJKOVIC, Sasha. Guitar FX-Box. 2002. Disponvel em: <http://www.guitar-fxbox.com>.
Acesso em: 16 set. 2007.
GORE, Joe. How to Record an Electric Guitar on Your Mac. 2007. Disponvel em:
<http://www.apple.com/pro/techniques/connectingguitar>. Acesso em: 16 out. 2007.
HARMONY CENTRAL. Effects Explained. 2007. Disponvel em:
<http://www.harmony-central.com/Effects/effects-explained.html>. Acesso em: 16 dez. 2007.
IAZZETTA, Fernando. Tutoriais de udio e Acstica. 2000. Disponvel em:
<http://www.eca.usp.br/prof/iazzetta/tutor>. Acesso em: 20 set. 2007.
IZECKSOHN, Srgio. Os Equalizadores. 2005. Disponvel em:
<http://www.homestudio.com.br/Artigos/Art016.htm>. Acesso em: 10 mar. 2008.
LUVIZOTTO, Andr Luiz; FURLANETE, Fbio Parra; MANZOLLI, Jnatas. Microfonia e
Distoro na guitarra sob a tica de Waveshaping. In: CONGRESSO DA ASSOCIAO
NACIONAL DE PESQUISA E PS-GRADUAO EM MSICA (ANPPOM), 16., 2006,
Braslia. PROGRAMA DE PS-GRADUAO MSICA EM CONTEXTO. Braslia, 2006. p.
262 - 267.
84
GLOSSRIO
Alcance Dinmico
API
ASIO
Buffer
Equalizao
Espectro
Framework
Latncia
MIDI
Modulao
Plugin
Saturao
SDK
VST
ANEXOS
// Arquivo volume.h
//-----------------------------------------------------------------------------// VST Plug-Ins SDK
// Version 2.4
$Date: 2008/05/28 09:08:27
//
// Category
: VST 2.x SDK
// Filename
: volume.h
// Created by
: Daniel Krueger
// Description : Plugin que aplica intensidade no sinal [-oo, 0dB]
//
// 2006, Steinberg Media Technologies, All Rights Reserved
//-----------------------------------------------------------------------------#ifndef __volume__
#define __volume__
#include "public.sdk/source/vst2.x/audioeffectx.h"
//-----------------------------------------------------------------------------class volume : public AudioEffectX
{
public:
volume (audioMasterCallback audioMaster);
~volume ();
// Processing
virtual void processReplacing (float** inputs, float** outputs, VstInt32
sampleFrames);
virtual void processDoubleReplacing (double** inputs, double** outputs,
VstInt32 sampleFrames);
// Program
virtual void setProgramName (char* name);
virtual void getProgramName (char* name);
// Parameters
virtual void setParameter (VstInt32 index, float value);
virtual float getParameter (VstInt32 index);
virtual void getParameterLabel (VstInt32 index, char* label);
virtual void getParameterDisplay (VstInt32 index, char* text);
virtual void getParameterName (VstInt32 index, char* text);
virtual
virtual
virtual
virtual
protected:
float fGain;
char programName[kVstMaxProgNameLen + 1];
};
#endif
// Arquivo volume.cpp
//-----------------------------------------------------------------------------// VST Plug-Ins SDK
// Version 2.4
$Date: 2008/05/28 09:08:27
//
// Category
: VST 2.x SDK
// Filename
: volume.h
// Created by
: Daniel Krueger
// Description : Plugin que aplica intensidade no sinal [-oo, 0dB]
//
// 2006, Steinberg Media Technologies, All Rights Reserved
//-----------------------------------------------------------------------------#include "volume.h"
//-----------------------------------------------------------------------------AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
{
return new volume (audioMaster);
}
//-----------------------------------------------------------------------------volume::volume (audioMasterCallback audioMaster)
: AudioEffectX (audioMaster, 1, 1) // 1 program, 1 parameter only
{
setNumInputs (2);
// stereo in
setNumOutputs (2);
// stereo out
setUniqueID ('DKvo');
// identificao
canProcessReplacing (); // supports replacing volume
canDoubleReplacing (); // supports double precision processing
fGain = 1.f;
// default to 0 dB
vst_strncpy (programName, "Default", kVstMaxProgNameLen);
program name
}
// default
//-----------------------------------------------------------------------------volume::~volume ()
{
// destrutor
}
//-----------------------------------------------------------------------------void volume::setProgramName (char* name)
{
vst_strncpy (programName, name, kVstMaxProgNameLen);
}
//-----------------------------------------------------------------------------void volume::getProgramName (char* name)
{
vst_strncpy (name, programName, kVstMaxProgNameLen);
}
//-----------------------------------------------------------------------------void volume::setParameter (VstInt32 index, float value)
{
fGain = value;
}
88
89
90