問題タブ [midi-instrument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2555 参照

java - MIDI - 異なるバンクのインストゥルメントを使用した MidiMessage プログラム変更

私が使用しているデフォルトのシンセサイザーのサウンドバンクには、さまざまな楽器が含まれています。たとえば、このコード スニペット...

... 以下を出力します。

MidiChannelprogramChangeメソッド、およびを介して、これらのバンクのいずれかから楽器を演奏できますnoteOn(これは、バンク 1152 の楽器 14、「カリヨン」を演奏します)。

プログラムチェンジイベントをシーケンスのトラックに追加して、シーケンスで「カリヨン」楽器を演奏できるようにしたいと考えています。私はこれを試してみましたShortMessage

しかし、バンク 1152 のインストゥルメント 14 を代わりに探しているときに、これはインストゥルメントをバンク 0 のインストゥルメント 14 (「Tubular-bell」) に変更します。ShortMessage コンストラクターの最後の 2 つの引数のいずれかを 1152 に変更しようとすると、javax.sound.midi.InvalidMidiDataExceptionforが発生しましたデータ バイト値が範囲外です。他の MidiMessage サブクラスにも、他のバンクからインストゥルメントをロードするオプションが含まれていないようです。

MidiEvent の MidiMessage で別のバンクのインストゥルメントを使用するにはどうすればよいですか?

0 投票する
0 に答える
412 参照

c# - Midi-dot-net でノートを同時に再生し、高遅延まで再生

noteOn キー イベントの問題を解決した後 (ジャスティンに感謝)、別の 2 つの問題に気付きました: 遅延が大きすぎることと、同時に再生できないことです。

最初に私はIFステートメントを使用します:

これは優れた動作をし、遅延はありませんが、.wav ファイルではなく MIDI ピッチのみを使用することもできます。

ノートを再生する他の可能性を使用する場合 (リソースに追加されたファイルから):

見た目も動作も問題ありませんが、SoundPlayer では同時に音符を演奏することはできません。

私が試していた別の方法は、WMP ライブラリでした:

わかりました...同時に再生されますが、ちょっと面白いことが起こります。より多くの音符を再生すると、遅延が大きくなります(キーを押してから音が聞こえるまでの遅延)、最終的にプログラムが何かを再生したままになります(まだnoteOnメッセージが表示されます) )...メモリバッファが突然なくなったように見えますか?

最後に確認しようとしたのは、DirectX ライブラリです。

ビルドとコンパイル - 問題もエラーもありませんが、MIDI デバイスでキーを押すと、アプリケーションは次のメッセージを返します。

私の質問は、私のファイル (.wav) をソリューション リソースに追加し、通常のピアノのように演奏できるように、遅延しながら同時に再生することは可能ですか? 通常のピアノとは、低遅延、ほとんど目立たない遅延を意味します。

0 投票する
0 に答える
49 参照

vb.net - 最初のバイトの後に 3 バイトをグループ化する

「MyHex.txt」というテキストファイルがあり、ファイルにはこれらの値が含まれています

このように Sub を使用してファイルを開き、配列の最初のバイトが「F0」であるかどうかを確認してから、値を設定します。次の 3 バイトをグループ化し、次の 3 バイトなどをグループ化する必要があります。

更新: 3 バイトごとに値をグループ化する必要があります。デコードできるように

使用する

更新 2:

Sysex「ヘッダー」を削除した後、これが残っています

最初のダンプ:

2 番目のダンプ

29 番目のバイトと最後のバイトだけが変更されます。

0 投票する
1 に答える
204 参照

java - .jar ファイルにエクスポートすると MIDI 楽器のサウンドが異なる

Java サウンド API の MIDI パッケージを使用してサウンドを合成する Java プログラムを作成しましたが、それを .jar ファイルにエクスポートすると、再生されるサウンドが Eclipse で実行したときとはかなり異なります。なぜこれを行っているのか、この問題を解決する方法を知っている人はいますか?

楽器のリストはここにあります: http://www.hittrax.com.au/images/artists/gmgs.pdf

以下は私のコードのセクションです

下の画像は、私が録音したときの音声を示しています。最初の画像は、Eclipse でのサウンドの状態です。2 番目の画像は、.jar にエクスポートしたときのサウンドです。

音波

0 投票する
1 に答える
1727 参照

java - ピアノの音符 (Java) しか取得できないのはなぜですか?

リターミュージックプレーヤーをコーディングしました。"Instrument" と "Node" の 2 つの int を与えるたびに、その楽器のノードが再生されます。とてもシンプルです。私はそれを試しましたが、「楽器」を変更しても(入力の int を変更して)、ピアノの音符だけが再生されます..コードは次のとおりです。