Jogar única nota woodblock midi em Java?
Pergunta
Estou a planear criar o meu próprio metrônomo (instrumento woodblock) usando Java que pode definir o seu bpm, volume, etc. E eu tentei mais de 16 canais (MIDI especificação 1.0) obtidos a partir getChannels()
mas não há woodblock ouvida todos.
Aqui está o código retirado http://www.jsresources.org
/*
* Turn the note on on MIDI channel 1.
* (Index zero means MIDI channel 1)
*/
MidiChannel[] channels = synth.getChannels();
channels[0].noteOn(nNoteNumber, nVelocity);
/*
* Wait for the specified amount of time
* (the duration of the note).
*/
try
{
Thread.sleep(nDuration);
}
catch (InterruptedException e)
{
}
/*
* Turn the note off.
*/
channels[0].noteOff(nNoteNumber);
Qualquer um nada sobre isso tem? obrigado.
Solução
Dependendo do seu sintetizador, os sons de percussão será no canal 10 ou canal 16 (índices de 9 ou 15 em sua matriz). Os sons xilogravura seria números de nota 76 e 77, e você provavelmente iria querer usar um valor velocidade da nota de 128 (para o volume máximo).
Eu não olhei para o código que você está usando, mas você também pode precisar chamar um método para ligar o sintetizador antes que você pode jogar qualquer coisa. Também, desde que você está jogando uma nota de percussão, você pode ser capaz de enviar a nota correspondente off mensagem imediatamente após a nota na mensagem (para que você não tem que descobrir a duração do fixo nota percussão). A maioria dos sintetizadores MIDI que eu tenho jogo usado todo o som de percussão mesmo depois de receber a nota off mensagem.
Outras dicas
a xilogravura é um instrumento de percussão. você deve ouvi-lo quando você tocar a nota certa em um canal que tenha sido atribuída uma bateria ou percussões patch. (Em um percussões ou tambores remendo, cada nota desempenha um instrumento diferente:. Bloco de madeira, caixa de bateria, oi-tom, clave, etc)
Use (por exemplo) esta MIDI geral (GM) referência para procurar manchas . Você precisa canalizar 10 para percussão GM e número da nota 76 para Hi bloco de madeira ou 77 para o bloco de madeira Low.
Além disso, instrumento 116 é um teclado completo (qualquer passo de 1 a 128) bloco de madeira. Eu acredito que deve funcionar em qualquer-percussão não (ou seja, não 10, ou possivelmente 16) do canal.
Nota:. GM parece ser baseada em 1, enquanto que a sua API parece ser baseado em 0, de modo que você pode ter que subtrair um alguns desses valores