1

MIDI シーケンサーのボリュームを制御するにはどうすればよいですか?

すべてが自動的に停止するのではなく、ボリュームをフェードアウトして閉じるようにします。

if (musicSr != null)
{
    musicSr.stop();
    musicSr.close();

    musicSr = null;
    musicS = null;

    File music = new File(midi);
    if(music.exists())
    {
        musicS = MidiSystem.getSequence(music);
    }

    // Create a sequencer for the sequence
    musicSr = MidiSystem.getSequencer();
    musicSr.open();
    musicSr.setSequence(musicS);
    musicSr.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
    musicSr.start();
}
4

1 に答える 1

1

ボリュームの変更 (さらに言えば、段階的な変更) は、シーケンサーインターフェイスでは直接サポートされていません。

音量を変更するには、実際の音量変更メッセージをターゲット デバイスに送信する必要があります。つまり、コントロール チェンジ メッセージをシーケンサーのトラックの適切な時間位置に挿入します。

フェードアウト効果を得るには、値が減少する複数のメッセージを使用します。

于 2013-09-24T11:27:23.857 に答える