1

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);

これについて何か知っている人はいますか?ありがとう。

4

3 に答える 3

1

シンセサイザーに応じて、パーカッション サウンドはチャネル 10 またはチャネル 16 (配列のインデックス 9 または 15) になります。ウッドブロック サウンドはノート ナンバー 76 と 77 であり、ノート ベロシティ値 128 (最大ボリューム) を使用することをお勧めします。

使用しているコードは見ていませんが、何かを演奏する前に、シンセサイザーをオンにするメソッドを呼び出す必要がある場合もあります。また、パーカッション ノートを演奏しているので、ノート オン メッセージの直後に対応するノート オフ メッセージを送信できる場合があります (固定パーカッション ノートの長さを把握する必要はありません)。私が使用したほとんどの MIDI シンセは、ノート オフ メッセージを受信した後でもパーカッション サウンド全体を再生します。

于 2009-10-25T15:15:11.950 に答える
0

木版は打楽器です。ドラムまたはパーカッションのパッチが割り当てられているチャンネルで正しい音を演奏すると、それが聞こえるはずです。(パーカッションまたはドラムのパッチでは、各ノートが異なる楽器を演奏します: ウッド ブロック、スネア ドラム、ハイタム、クラーベなど)。

于 2009-10-25T14:49:45.027 に答える
0

この General MIDI (GM) リファレンスを使用して、パッチを検索します。GMパーカッションにはチャンネル10、ハイウッドブロックにはノートナンバー76、ローウッドブロックにはノートナンバー77が必要です。

また、楽器 116 はフル キーボード (1 から 128 までの任意のピッチ) の木版です。これは、パーカッション以外の (つまり、10 または 16 ではない) チャンネルで動作するはずです。

注: GM は 1 から始まるように見えますが、API は 0 から始まるように見えるため、これらの値の一部から 1 を引く必要がある場合があります。

于 2009-10-25T15:14:11.780 に答える