Играть на одном миди вудблоке на Java? - PullRequest
1 голос
/ 25 октября 2009

Я планирую создать свой собственный метроном (инструмент для создания деревянных блоков) с использованием Java, который может устанавливать его удары в минуту, громкость и т. Д. И я пробовал использовать более 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);

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

Ответы [ 3 ]

1 голос
/ 25 октября 2009

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

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

0 голосов
/ 25 октября 2009

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

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

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

0 голосов
/ 25 октября 2009

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

...