• Nenhum resultado encontrado

Programa Host – DK Guitar

No documento universidade do vale do itajaí - Univali (páginas 65-71)

3.2 IMPLEMENTAÇÃO

3.2.1 Programa Host – DK Guitar

O software host implementado foi nomeado DK Guitar, e é composto basicamente por duas telas: Tela Principal e Tela de Configurações.

3.2.1.1 Tela Principal

A Tela Principal é responsável por fazer a comunicação com os plugins e exibi-los corretamente na tela. Funcionalidades como Importar e Exportar presets também estão atribuídos à 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 aplicações é o PluginHost, um projeto que possui as principais funcionalidades de um programa host. Dessa forma, foram estudadas as classes e o código fonte do PluginHost para aquisição do conhecimento necessário para o desenvolvimento do DK Guitar.

A estrutura de classes definida na modelagem do sistema foi mantida, porém novas classes tiveram que ser criadas e adicionadas para facilitar a programação e para manter a consistência com a estrutura do JUCE. Dessa forma, cada tela do software é um objeto de uma determinada classe.

Também foram adicionadas classes para desenhar componentes gráficos, como os fios conectores

de plugins e os plugins minimizados na tela. A Figura 50 mostra o diagrama com classes nativas do JUCE e classes do PluginHost, que são utilizadas no DK Guitar para a manipulação do áudio.

Figura 50. Diagrama de Classes do DK Guitar Onde:

• AudioPluginInstance: classe base para criar uma instância de um plugin;

• BaseDoFiltroInterno: classe derivada da AudioPluginInstance que implementa métodos utilizados pelas classes FiltroInternoAudioInput e FiltroInternoAudioOutput;

• VSTPluginInstance: instância de um plugin VST;

• FiltroInternoAudioInput: instância de um plugin do tipo Input; e

• FiltroInternoAudioOutput: instância de um plugin do tipo Output.

As classes responsáveis pelo processamento sonoro são nativas do JUCE, como AudioPluginInstance e VSTPluginInstance, outras são do PluginHost, que foram aproveitadas e modificadas para adicionar funcionalidades previstas na modelagem através dos requisitos funcionais. Na Figura 51, está ilustrada a Tela Principal do software.

Figura 51. Tela Principal

Os blocos “Audio Input” e “Audio Output” representam a entrada e saída de som respectivamente. Já os blocos intermediários são plugins VST. Os cabos ou fios que estão conectando os blocos entre si, são utilizados para definir o fluxo do sinal de áudio. Dessa forma, os plugins podem ser utilizados simultaneamente e conectados de diversas maneiras, possibilitando uma grande flexibilidade na conexão dos efeitos e contemplando os requisitos funcionais RF2 e RF6.

Na Figura 51, percebe-se que o fluxo do sinal está dividido em duas partes, na qual o lado esquerdo possui os efeitos Tremolo e Overdrive e o lado direito Distortion e Delay. Desta forma, o som recebido pelo software é dividido e processado separadamente para cada saída de áudio, na qual cada caixa de som receberá um sinal diferente.

Ao clicar com o botão direito sobre um plugin, é aberto um menu de contexto ilustrado na

Figura 52. Menu de contexto dos plugins As opções do menu de contexto são:

• Excluir esse componente: remove o plugin da tela e exclui suas conexões caso existam;

• Desconectar todos os pinos: remove todas as conexões do plugin;

• Mostrar interface do plugin: abre uma tela com a interface do plugin. Caso a interface não exista, é aberta uma tela de interface padrão do DK Guitar com os parâmetros do plugin; e

• Mostrar todos os parâmetros: abre a tela padrão de plugins do DK Guitar.

3.2.1.2 Tela de Configurações de Áudio

A Tela de Configurações (Figura 53) é utilizada para especificar as entradas e saídas de áudio. Ela também possui um botão que abre a tela de configurações do driver ASIO4ALL, para que o usuário possa definir configurações do driver de som.

Figura 53. Tela de Configurações

Os parâmetros da tela de configurações de áudio são:

• Audio device: lista os drivers de som disponíveis 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 padrão utilizado em softwares de gravação e reprodução de áudio é 44.100 Hz;

• Áudio buffer size: define o tamanho do buffer de amostras sonoras. Quanto maior esse buffer, maior será a latência do processamento sonoro;

• Active intput channels: lista das entradas de áudio disponíveis no computador;

• Active midi inputs: lista das entradas MIDI no computador; e

• Midi Output: permite selecionar o dispositivo de saída MIDI.

As duas últimas opções não são utilizadas no software, mas foram mantidas por questões de compatibilidade com o SDK JUCE. Com a implementação da tela de configurações, o requisito funcional RF5 foi cumprido.

3.2.1.3 Presets

Para implementação dos presets, foi criada a classe ControlePlugins, que possui funcionalidades para seu gerenciamento e controle. Cada preset é um arquivo XML com extensão

“.Preset”, que é carregado em memória quando o programa é iniciado. Uma vez na memória, o usuário pode realizar alterações e salvá-los no computador.

Para facilitar a troca entre presets, foram definidos botões de acesso rápido que possuem uma tecla de atalho para facilitar seu acionamento. A Tabela 4 ilustra a relação entre os presets, teclas de atalho, botões e arquivos XML.

Tabela 4. Botões e teclas de atalho do Software DK Guitar

Botões Presets Teclas de Atalho Arquivos

Preset 1 F1 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 Espaço Bypass.Preset Enter

Enter

Ao clicar em um botão, o preset ativo é salvo em memória e o preset referente ao botão clicado é carregado. Desta forma, o sistema permite ao usuário alterar ajustes de parâmetros sem a necessidade de salvá-lo a cada troca de preset.

Para salvar ou carregar um preset salvo em disco, foi desenvolvida a opção “Arquivo” do menu na tela principal, que possui opções para tais finalidades, conforme ilustra a Figura 54. Com essas funcionalidades implementadas, o requisito funcional RF04 foi integralmente atendido.

Figura 54. Menu Arquivo

No documento universidade do vale do itajaí - Univali (páginas 65-71)

Documentos relacionados