Capítulo 5 Implementação de um editor MIDI para violão com articulação humanizada nota a nota 95 15- Botão Trocar instrumento Este botão troca todos os instrumentos de todas as notas. Ele chama a função mudainstrumentogeral. Figura 5.25 botão que muda o instrumento de todas as notas Figura 5.26 Código da função mudainstrumentogeral 16- Botões Undo e Redo Com estes botões é possível desfazer as últimas ações ou refazê-las. Eles chamam as funções undofunc e redofunc respectivamente. Figura 5.27 Botões Undo e Redo
Capítulo 5 Implementação de um editor MIDI para violão com articulação humanizada nota a nota 96 Figura 5.28 Código das funções undofunc e redofunc 17- Campo de visualização de partitura Neste campo pode-se visualizar no pentagrama todas as notas que foram inseridas e seus respectivos timbres (representados pelos números de cor vermelha). O máximo de notas que podem ser visualizadas simultaneamente são 15 (quinze). Deste modo quando o usuário quer visualizar as outras notas ele deve utilizar o Scroll que faz a partitura caminhar nota a nota para esquerda ou direita. É possível também redesenhar o pentagrama quando isto for necessário. Scroll Nota musical Número do instrumento Redesenha o pentagrama Figura 5.29 Campo de visualização de partituras 18- Botões Play e Stop Os botões Play e Stop servem para ouvir a seqüência musical que está sendo criada e parar a execução da mesma, respectivamente. Figura 5.30 botões Stop e Play
Capítulo 5 Implementação de um editor MIDI para violão com articulação humanizada nota a nota 97 Quando o play é acionado é chamada a função gerarmidi, já abordada no capítulo 4, que cria o arquivo MIDI, armazeno-o como temporário no disco C, converte para WAVE e toca o arquivo. 5.2 Implementação das funções de manipulação de texto e partitura Foram criadas algumas funções para manipulação dos dados contidos no campo de edição de texto e para visualização das notas no pentagrama, são elas: crianotatexto Esta função cria a String de evento de nota formada pela nota musical, figura rítmica, número do instrumento e volume (exemplo: do5 sm 2 v90 ). Ela tem como argumento de entrada a String nota e o processo. Segue abaixo o fluxograma desta função. Início Lê a figura rítmica selecionada. Lê o tipo de figura (pontuada, tercina, ou normal) Lê o tipo de instrumento selecionado Testa se é nota melódica ou do acorde Cria a String de evento de nota Lê o volume da nota Sim Se nota melódica Testa se é primeira nota da música Não Se nota de acorde Testa se é primeira nota do acorde Não Sim Acrescenta uma vírgula no início da String Fim Acrescenta uma vírgula no início da String Figura 5.31 Fluxograma da função crianotatexto Esta String é posteriormente concatenada no final da String contida no campo de edição de Texto.
Capítulo 5 Implementação de um editor MIDI para violão com articulação humanizada nota a nota 98 Figura 5.32 Código da função crianotatexto PlotarQuinzeNotas Esta função cria a partitura plotando as figuras musicais no pentagrama a partir dos eventos de notas contidos no campo de edição de texto. Veja a seguir o fluxograma desta função. Início Lê o conteúdo do campo de edição de texto Separa todos os elementos utilizando a função StringTokens Testa se existem mais de 15 notas ou acordes Não Sim Fim Armazena-se apenas as 15 últimas notas melódicas ou acordes para serem desenhadas pela função recursiva Chama uma função recursiva que desenha todas as notas no pentagrama Figura 5.33 Fluxograma da função PlotarQuinzeNotas O processo de desenhar notas musicais em pentagramas está ricamente detalhado no trabalho de CAMARGO (2007) fornecido como material de apoio contido no CD, não sendo necessário inseri-lo no corpo desta dissertação.
Capítulo 5 Implementação de um editor MIDI para violão com articulação humanizada nota a nota 99 Figura 5.34 Código da função PlotarQuinzeNotas RolarEsquerda Esta função é chamada quando o botão de Scroll para a esquerda é acionado. Ela faz com que as notas que estão à esquerda da última nota visualizada no pentagrama passem a ser visíveis. Deste modo as outras são deslocadas para a direita. A implementação desta função é semelhante a PlotarQuinzeNotas, a única diferença é que ela pega os 15 (quinze) eventos contidos na lista utilizada na função
Capítulo 5 Implementação de um editor MIDI para violão com articulação humanizada nota a nota 100 PlotarQuinzeNotas deslocados de um índice a menos, ou seja, se numa seqüência musical contendo 22 (vinte) notas visualiza-se as 15 (quinze) últimas ( da oitava até a vigésima segunda), a função RolarEsquerda plota as 15 (quinze) penúltimas (da sétima a vigésima primeira). Se chamada novamente, são plotadas as 15 (quinze) antepenúltimas (da sexta a vigésima ), e assim por diante. Figura 5.35 função RolarEsquerda Figura 5.36 Trecho do código da função RolarEsquerda
Capítulo 5 Implementação de um editor MIDI para violão com articulação humanizada nota a nota 101 RolarDireita Esta função é chamada quando o botão de Scroll para a direita é acionado. Ela tem a mesma lógica de implementação da função RolarEsquerda, só que ao invés de deslocar à esquerda da lista, desloca à direita. Figura 5.37 Trecho do código da função RolarDireita Deste modo encerra-se aqui este capítulo que apresentou todos os recursos desenvolvidos na implementação deste aplicativo e as potencialidades que este programa oferece. O código completo deste software está contido no CD que é fornecido com esta dissertação.