バイト配列を操作して「アンパック」を行い、C# でパックする方法を理解するのに何時間も費やしました。
パックされたデータ形式
データは 8 バイトの「パケット」にパックされ、MS ビットは 7 つのパラメータ バイトから取り除かれ、8 バイト パケットの先頭で送信される 8 番目のバイトにパックされます。
例:
Input Data 1 A7 A6 A5 A4 A3 A2 A1 A0 2 B7 B6 B5 B4 B3 B2 B1 B0 3 C7 C6 C5 C4 C3 C2 C1 C0 4 D7 D6 D5 D4 D3 D2 D1 D0 5 E7 E6 E5 E4 E3 E2 E1 E0 6 F7 F6 F5 F4 F3 F2 F1 F0 7 G7 G6 G5 G4 G3 G2 G1 G0 Packed MIDI data 1 00 G7 F7 E7 D7 C7 B7 A7 2 00 A6 A5 A4 A3 A2 A1 A0 3 00 B6 B5 B4 B3 B2 B1 B0 4 00 C6 C5 C4 C3 C2 C1 C0 5 00 D6 D5 D4 D3 D2 D1 D0 6 00 E6 E5 E4 E3 E2 E1 E0 7 00 F6 F5 F4 F3 F2 F1 F0 8 00 G6 G5 G4 G3 G2 G1 G0
各行は 1 バイトを示し、各列は 1 ビット (MSB ファースト) を示します。
この変換を実装するにはどうすればよいですか?