Pregunta

Estoy planeando crear mi propio metrónomo (instrumento de madera) usando Java que podría establecer sus bpm, volumen, etc. Y he intentado más de 16 canales (especificación MIDI 1.0) obtenidos de getChannels () pero no se escucha ningún bloque de madera.

Aquí está el código tomado de 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);

¿Alguien tiene algo sobre esto? gracias.

¿Fue útil?

Solución

Dependiendo de su sintetizador, los sonidos de percusión estarán en el canal 10 o el canal 16 (los índices 9 o 15 en su matriz). Los sonidos del bloque de madera serían los números de nota 76 y 77, y probablemente querrá usar un valor de velocidad de nota de 128 (para el volumen máximo).

No he mirado el código que estás usando, pero es posible que también debas llamar a un método para encender el sintetizador antes de poder reproducir cualquier cosa. Además, dado que está tocando una nota de percusión, podrá poder enviar el mensaje de nota desactivada correspondiente inmediatamente después del mensaje de nota (para que no tenga que averiguar la duración de la corrección). nota de percusión). La mayoría de los sintetizadores MIDI que he usado tocan todo el sonido de percusión incluso después de recibir el mensaje de nota desactivada.

Otros consejos

un bloque de madera es un instrumento de percusión. debe escucharlo cuando toque la nota correcta en un canal al que se le ha asignado un parche de batería o percusión. (en un parche de percusión o batería, cada nota toca un instrumento diferente: bloque de madera, caja, hi-tom, clave, etc.)

Utilice (p. ej.) esta referencia General MIDI (GM) para buscar parches . Necesita el canal 10 para percusión GM y la nota número 76 para Hi Wood Block o 77 para Low Wood Block.

Además, el instrumento 116 es un bloque de madera de teclado completo (cualquier tono de 1 a 128). Creo que debería funcionar en cualquier canal sin percusión (es decir, no 10 o posiblemente 16).

Nota: GM parece estar basado en 1, mientras que su API parece estar basada en 0, por lo que es posible que tenga que restar uno de algunos de estos valores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top