問題タブ [javax.sound.midi]
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.
java - 複数の MIDI メッセージを送信する
複数の MIDI メッセージを個別に送信できるようにしたいと考えています。しかし、問題は、前のメモが終了するまで待たなければならないことです。すべての自分の声に対してスレッドを作成する必要がありますか? 同時に 10 音符を演奏できるようにしたいとしましょう。次に、10 個のスレッドを作成する必要がありますか?
MIDIメッセージを送信しましたjavax.sound.midi
java - Java で sysex メッセージを送信する
Sysex メッセージを MIDI ポートに送信したいと思います。残念ながら、送信してもまったく返信がありません。通常の MIDI メッセージ ( ) の送信は正常に機能しますが、 を に置き換えるとShortMessage
すぐに機能しなくなります。ShortMessage
SysexMessage
ポートがメッセージを受信しない、またはメッセージが送信されないのはなぜですか?
java - Java で InputStream を MidiSystem の Soundbank に渡しているときに NullPointerException が発生する
getSoundbank
ファイルから読み取っての関数に渡すことでサウンドバンクを作成しようとしていますMidiSystem.
。この目的のためInputStream
に、次の手法を試してみましたが失敗したファイルを読み取る必要があります。
最初のテクニック - 次FileInputStream
のように、上記の関数を使用してファイルを読み取り、それを渡します。
で失敗しますmark/reset exception
次に、このスレッドで言及されている手法を試しました: java.io.IOException: mark/reset not supported Java Audio Input Stream / Buffered Input Stream
私は技術の例外とURL技術の例外に直面していますjava.io.IOException: Resetting to invalid mark
。上記の例外を克服するための他の手法はありますか?BufferedInputStream
java.lang.NullPointerException
java - MIDI シーケンスで特定のティックに達したときに通知を受け取るにはどうすればよいですか?
javax.sound.midi.Sequencer を使用してシーケンスを再生していますが、特定のティックに達したときにシーケンスの別の部分にジャンプする必要があります。ティック番号「y」に到達すると、ティック番号「x」に戻るループを想像してください。しかし、私はループを行っていないので、組み込みのループ メソッドは機能しません。
現時点では、目的のティックに到達するまでミリ秒ごとに getTickPosition() を起動するスイング タイマーを使用していますが、これにより結果が少し矛盾し、かなり単純なタスクに多くの CPU を使用しているように感じます。
特定のティックがシーケンサーによって処理されたときに通知するイベントリスナーがあればいいのにと思いますが、AFAIKはありません。どんな提案でも大歓迎です。
java - MIDI Bulk Tuning Dump Request の応答を受け取る方法は?
私は、 MIDI Tuning Standardを使用して、チューニングをコンサート ピッチ A4 = 440 Hz から任意のチューニング周波数に変更しています。私のマシンでは Windows 7 と JDK 1.8.0 で問題なく動作します。しかし、Tuning Standard が利用可能かどうかを事前に確認したいと思います。
印刷され、 Gervills のホームページGervill
で説明されているように、Tuning Standard をサポートしています。
Gervill シンセサイザーは、すべてのプラットフォーム (Windows、Linux、Mac) の現在の JRE の一部ですか? はいの場合、それは長い間一部になりますか?
Gervill が MIDI Tuning Standard をサポートしていない別のシンセサイザーに置き換えられる場合、それが利用可能かどうかをテストしたいと思います。
MIDIチューニング規格が利用可能かどうかをテストするには?
私の考えは、 BULK TUNING DUMP REQUESTを送信することです。応答があれば、それが利用可能であると確信しています。
したがって、仕様は次のように述べています。
受信機器は、アドレス指定されたチューニング番号について、次のセクションで説明するバルク チューニング ダンプ メッセージを送信することによって応答する必要があります。
しかし、私の質問は、どうすればこの応答を受け取ることができるのでしょうか?
ノートを演奏して再チューニングを送信するために、私は次のように MIDI を使用します。
java - 作成した MIDI サウンドを Java で同時に再生する
問題があり、ここで答えを得たいと思っています。アプレットで動作するはずなので、クライアント PC に保存せずに多くの MIDI サウンドを作成したいと考えています。音を作る部分が問題ではなく、これらの音を同時に鳴らすことが問題なのです。私は3日以上答えを探しましたが、私を助けるものを見つけることができませんでした.
これが私が現時点で持っているものです:
My Sound (open-spur プロジェクトでその一部を見つけました):
これは私が自分のサウンドを作成する場所です:
ここで私の一時的なメインクラス: public class test {
スレッドについて考えましたが、20 ~ 30++ のスレッドがある場合、それは同時に行われず、パフォーマンスはそれほど良くないと思います。同時にサウンドを再生する例を見ましたが、ファイルからサウンドをロードし、midi で試してみると機能しませんでした。
java - Java Midi - 再生中に midi からノートを取得する方法
しばらく検索しましたが、やりたいことの答えが見つかりません。
私は midi ファイルを再生し、再生中に画面にノートを表示したいと考えています。メモの再生が停止すると、画面から消えます。
シーケンサーで MIDI を再生できますが、再生中のノートを取得する方法や、ノートの再生を停止するタイミングがわかりません。
ControllerEventListeners と MetaEventListeners を調べましたが、これを行う方法がまだわかりません。
どんな助けでも大歓迎です。
java - ボリューム レベルから MIDI Sysex マスター ボリューム メッセージを作成する方法
ボリューム レベルが 0 から 1 の間の浮動小数点値として表される場合、Universal SysEx Master Volumeメッセージのデータ バイトを作成する方法は?
これは、与えられた Sysex メッセージ ステータス バイト (0xF0) とデータ バイトを持つ Sysex メッセージ コンストラクターです。
MIDI 仕様によると、マスター ボリューム メッセージには 2 つのステータス バイトと 6 つのデータ バイト (ステータス バイトを除く) があり、最後の 2 つのデータ バイトはボリューム レベルを指定します。
0xF0 SysEx (ステータス)
0x7F ユニバーサル リアルタイム
0x7F チャネルを無視
0x04 サブ ID -- デバイス コントロール
0x01 サブ ID2 -- マスター ボリューム
0xLL
14 ビット ボリュームのビット 0 ~
6 SysEx の終了 (ステータス)
したがって、私が間違っていなければ、データ バイトは次のようになります。
私の質問は、0 から 1 の間のフロートボリューム レベルからLL および MMバイトを取得する方法です。
java - Java 結果 1 エラー
これらの音符で構成される midi ファイルを作成したかったのです。このコードはインターネットから取得しました。これに対する問題を見つけることができれば、さらに先に進むことができます。このアプリケーションを実行すると、エラー コール「Java 結果 1」エラーのみが表示されます。私が必要とするのは、これを実行した後、私が渡したメモで構成される midi ファイルが生成されているはずです。完全なコードが利用可能です。
これが出力です