0

MIDI in デバイスからのデータを利用したいと考えています。特定のイベントが発生したときに通知を受ける必要があるため、その場で特定の音符を移調したり、メソッドを呼び出したり、考えられることは何でも実行できます。

私はプログラミング全般、特に Java にはまったく慣れていませんが、javax.sound.midi を使用してシーケンサーでシーケンスを再生することができました。シーケンサーによって特定のイベントがいつ再生されるかを通知するリスナーを追加することもできます。今、私は MIDI IN ストリームで同様のことができることを望んでいましたが、方法がわかりません。

私は現時点でかなり行き詰まっているので、どんなアイデアや回避策も大歓迎です。

4

3 に答える 3

0

MIDI データを録音するには、

  • そのメソッドを呼び出して入力ポートTransmitterをあなたSequencerのに接続し、ReceiversetReceiver
  • 新しいSequence/Trackオブジェクトを作成し、それらを に接続しますSequencer
  • トラックへの録音を有効にし、
  • で録音を開始しますSequencer

(ドキュメントを参照)

于 2013-09-22T07:41:26.503 に答える
0

javax.sound.midi.Receiver インターフェースの send(javax.sound.midi.ShortMessage, long) メソッドを独自のクラスに実装し、後者のインスタンスを他の Receiver オブジェクトと同様に使用します。

于 2014-06-18T15:28:21.943 に答える
0

私はついに解決策を見つけました。質問を明確にし、他の人に役立つ場合に備えて私の解決策を追加したいと思います。

私が取り組んでいるプロジェクト (ちなみにこれは私の頭をはるかに超えています) は、MIDI キーボード アレンジャーです。よくわからない方のために説明すると、パターン(スタイル)を演奏し、弾くコードによって音色やアレンジが変わる鍵盤です。私が必要としていたのは、MIDI イン ポートからのダンプと呼ばれるものでした。これにより、私のプログラムは、どのコードが演奏されたかを把握し、シーケンサーがさまざまな方法で応答できるようになりました。

したがって、これを行うための私自身の元の質問に答えるには、MIDI ポート用の新しい送信機を作成する必要があります。次に、新しいレシーバーを作成して、新しいトランスミッターからデータ ストリームを受信します。最後に、レシーバーにデータを PrintStream に送信させると、データ ストリームで必要なことを行うことができます。

于 2013-09-22T23:50:06.310 に答える