ボリューム レベルが 0 から 1 の間の浮動小数点値として表される場合、Universal SysEx Master Volumeメッセージのデータ バイトを作成する方法は?
これは、与えられた Sysex メッセージ ステータス バイト (0xF0) とデータ バイトを持つ Sysex メッセージ コンストラクターです。
new SysexMessage(0xF0, data, data.length)
MIDI 仕様によると、マスター ボリューム メッセージには 2 つのステータス バイトと 6 つのデータ バイト (ステータス バイトを除く) があり、最後の 2 つのデータ バイトはボリューム レベルを指定します。
0xF0 SysEx (ステータス)
0x7F ユニバーサル リアルタイム
0x7F チャネルを無視
0x04 サブ ID -- デバイス コントロール
0x01 サブ ID2 -- マスター ボリューム
0xLL
14 ビット ボリュームのビット 0 ~
6 SysEx の終了 (ステータス)
したがって、私が間違っていなければ、データ バイトは次のようになります。
data = new byte[] { 0x7F, 0x7F, 0x04, 0x01, LL, MM }
私の質問は、0 から 1 の間のフロートボリューム レベルからLL および MMバイトを取得する方法です。