Dúvidas em MIDIControl

0 respostas
L

Bom, estou desenvolvendo uma aplicação em que eu preciso manipular sons MIDI, mas nada que seja externo, como um arquivo que eu incremento ou mesmo que o usuário o faça, quero desenvolver algo como: usuário clica numa tecla e toca uma nota de MIDI.

Mas tenho muitas dúvidas ainda e depois de muito procurar no google eu venho ao fórum ver se alguém conseguiria saná-las.

Bem, como observado no exemplo abaixo eu pretendo fazer como que o sistema (celular) toque uma nota que eu especificar. A função getMidiByteNote() retorna uma nota em Byte de acordo com a nota que eu passar e a oitava que ela deve ser tocada.

public void midiShort(String string_note, int int_octave, int int_time) { this.string_note = string_note; this.int_octave = int_octave; this.int_time = int_time; try { this.midi_control.shortMidiEvent(MIDIControl.NOTE_ON | 3, this.getMidiByteNote(), 127); } catch (Exception e) { System.out.println("Error: shortMidiEvent: " + e); } }

Até aí tudo bem, mas a nota tem seu próprio tempo, ela fica soando ainda algum tempo (let ring) e é como somente um toque. O que eu quero saber é: Para que serve o chanel em “shortMidiEvent” que eu especifiquei como um exemplo como: “MIDIControl.NOTE_ON | 3”. Velocity que eu especifiquei como “127” para mim deveria ser o tempo que a nota ficaria tocando, mas eu consigo somente um controle de volume (pelo que percebi).

Algumas coisas ainda estão meio confusas.

Gostaria de poder apertar uma tecla do cel e tocar a nota enquanto essa tecla ficasse pressionada, sei que é pelo método “keyRepeated”, mas se eu o invocar é como se a nota estivesse sendo pressionada várias vezes e não sendo segurada.

Outra coisa é: Até agora eu só consegui alguns sons de Bateria e de Piano, como eu consigo acessar outros sons? Ou tenho que implementar um sond bank?

Se puderem me sanar uma dessas dúvidas agradeceria.

Agora continuarei no google search.

Obrigado.

Criado 12 de setembro de 2008
Respostas 0
Participantes 1