User manual - MIDIインプリメンテーション

33
Parameterの値そのものを示し、以下に示すように、dlenフィールドで示されるデータのサイズによって長さが
異なります。Parameterリクエストの時は存在しないフィールドです。
これらは下位バイトから下詰めで転送します。すなわち複数バイトにまたがるデータの場合、もっとも重みの小
さいビットは最初のdataLSBとなり、もっとも重みの大きいビットは最後のdataのうちの意味のあるビットのう
ち、もっとも上位に位置するビットとなります。
たとえば32bitデータは下記のように分割されて転送されます。
Bulkでデータを転送する際には転送したいParameter Setのデータを先頭アドレスから順次16ビット単位で読
み出し、その値を以下の様式で3バイトに分解し、羅列して送ります。
変換フォーマットは上記のIndividual Parameterの転送の16bitの場合と同じで、以下のようになります。
メモリイメージ16bit
ただし、1つのパケットで転送できるのは128バイト以下のParameter Setイメージであり、それを越える場合
は複数のパケットに分割して転送されます。
すなわちdataフィールドの最大長は128 / 2 × 3 = 192バイトとなります。
act = 00(IPC)のとき
Format: 0dddddddB (0eeeeeeeB) (0fffffffB) (0gggggggB) (0hhhhhhhB)
dddddB + 1 dataの数
1 71
8 14 2
15 21 3
22 28 4
29 32 5
76543210
data0:
data1:
data2:
data3:
data4:
0
0
0
0
0
[bit06]
[bit13]
[bit20]
[bit27]
0
[bit05]
[bit12]
[bit19]
[bit26]
0
[bit04]
[bit11]
[bit18]
[bit25]
0
[bit03]
[bit10]
[bit17]
[bit24]
[bit31]
[bit02]
[bit09]
[bit16]
[bit23]
[bit30]
[bit01]
[bit08]
[bit15]
[bit22]
[bit29]
[bit00]
[bit07]
[bit14]
[bit21]
[bit28]
act = 02(BDS) または04(HDS)のとき
Format: 0dddddddB 0cccccccB 000000abB
MSB: abccccccB
LSB: cdddddddB
   ↓
data0: 0dddddddB
data1: 0cccccccB
data2: 000000abB