Вопрос

Я планирую создать свой собственный метроном (инструмент для создания деревянных блоков) с использованием Java, который может задавать его bpm, громкость и т. д. И я пробовал использовать более 16 каналов (спецификация MIDI 1.0), полученных из getChannels () но там вообще не слышно никаких деревянных блоков.

Вот код, взятый из 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);

Кто-нибудь что-нибудь получил по этому поводу? спасибо.

Это было полезно?

Решение

В зависимости от вашего синтезатора звуки перкуссии будут на канале 10 или канале 16 (индексы 9 или 15 в вашем массиве). Звуки деревянных блоков - это ноты с номерами 76 и 77, и вы, вероятно, захотите использовать значение скорости ноты 128 (для максимальной громкости).

Я не смотрел на код, который вы используете, но вам также может понадобиться вызвать метод, чтобы включить синтезатор, прежде чем вы сможете что-либо воспроизводить. Кроме того, поскольку вы играете перкуссионную ноту, вы , возможно, сможете отправлять соответствующее сообщение о выключенной ноте сразу после сообщения о включенной ноте (поэтому вам не нужно определять продолжительность фиксированной записи). ударная нота). Большинство используемых мной MIDI-синтезаторов воспроизводят весь перкуссионный звук даже после получения сообщения «Отключить ноты».

Другие советы

деревянный блок - это ударный инструмент. Вы должны услышать это, когда играете правильную ноту на канале, которому назначен патч ударных или перкуссии. (в патче ударных или ударных каждая нота играет на своем инструменте: деревянный блок, малый барабан, хай-том, клаве и т. д.)

Используйте (например) эту общую ссылку на MIDI (GM) для поиска исправлений , Вам нужен канал 10 для GM-перкуссии и нота № 76 для Hi Wood Block или 77 для Low Wood Block.

Кроме того, инструмент 116 представляет собой полнофункциональный деревянный блок (любой шаг от 1 до 128). Я считаю, что это должно работать на любом канале без перкуссии (то есть не 10 или, возможно, 16).

Примечание. Похоже, что GM основывается на 1, а ваш API - на 0, поэтому вам, возможно, придется вычесть одно из этих значений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top