戻る

S-760 Unofficial Database
S-760 Parameter Exclusive

データ構成 Volume Performance Patch Partial Sample


パラメータデータの構成

エクスクルーシブのパラメータは本来8ビットの数値ですが、MIDIメッセージの構成上8ビット数値をそのまま送ることはできません。ここではタイプ別にデータの構成について解説します。

◆ "0"固定の予約データについて
S-760のパラメータのうち"0"で固定になっている数値は変化させていはいけません。もしそれ以外になった場合は本体の暴走や、他のパラメータのデータ化けが生じます。また確認した現象ではパネルの表示やCRTの表示が乱れ、音声が無限ループしたりします。この後に正しいデータを送りなおしても、既にバグっている場合があるので動作は保証できません。
また、このエリアはS-760が何らかの数値を書き込むこともあるので、数値が入っている場合はそれを変化させてはいけません。

◆ 8ビットが16ビット構成になっている場合 (H L)
S-760で送信される8ビットの数値はこの形態を持ちます。

例) Patch → Velocity Sens Offset の場合
このパラメータの範囲はC1h~00h~3Fhです。8ビットの数値はMSB4ビットとLSB4ビットに分けられ、送信されます。
C1h → 0Ch 01h

◆ 16ビットが32ビット構成になっている場合 (lH lL hH hL)
サンプルの番号は最大で 512 の値をとるので、値は16ビットになります。

例) Partial → Sample x Number の場合
このパラメータの範囲は 0000h~01FFh,FFFFh です。サンプルを割り当てないときにFFFFhが代入されます。
サンプルナンバーが 291(123h) の場合
0123h → 02h 03h 00h 01h

◆ 24ビットが48ビット構成になっている場合 (lH lL mH mL hH hL)
サンプルのループポイントは24ビットの数値なので、値は24ビットになります。

例) Sample → Loop Start Point の場合
このパラメータの範囲は 000008h~FFCBF2h です。
ループ地点が 6628161(652341h) の場合
652341h → 04h 01h 02h 03h 06h 05h

◆ 8ビットパラメータが2個で16ビットの構成になっている場合 (2d 1d 4d 3d ...)
8ビットのうち4ビットしか使わないようなチャンネルの指定などは、この形態がとられます。

例) Performance → Part Channel の場合
このパラメータは32個あるパートについて受信するチャンネルを定義するものです。
Part01 = ch.1 , Part02 = ch.3 , Part03 = ch.10 , Part04 = ch.11 の場合、データ列は
02h 00h 0Ah 09hとなります。(チャンネルが1から始まっているのに対し、データは00hから始まります)

◆ フラグ (....8765 ....3210 ....FEDC ....BA98)
フラグは4ビット構成で8ビットの下位桁を使用してあります。また、それを16ビットにまとめてあるため、順番がかなり入り組んでいますが、コツを掴めばすぐに操作できます。
上位の4ビットは多分0にしないと誤動作等に繋がると思います。

例) Performance → Program Change Receive の場合
たとえば、チャンネル8と14にプログラムチェンジを受信させたくない場合は以下のようにビットを設定します。
00000111 00001111 00001101 00001111 (07 0F 0D 0F)


パラメータアドレスの求め方

パラメータのアドレスはエクスクルーシブデータ上での基準アドレスとパラメータサイズ、それからパラメータのオフセットから算出します。

スタートアドレス=00 0C 00 00 パラメータサイズ=96バイト パラメータの個数=512
OffsetSizeデータ列有効な値内容
+00722H L0~6Loop Mode
0Forward
1Forward + Release
2OneShot
3Forward + OneShot
4Alternate
5Reverse OneShot
6Reverse

例えば、10番目のサンプルデータでループモードのアドレスが必要な場合は、基準アドレスにオフセット加算して求めます。
96 * 10 = 960パラメータ全体のサイズを利用し、先頭アドレスからのオフセットを求める。
960 + 72 = 103210番目の先頭アドレスにLoop Modeのオフセットを加算。
(1032)10 → (04 08)16(8)10進数から16進数に変換する。
(04 08)16(8) → (08 08)16(7)エクスクルーシブアドレスは7ビットなので、
8ビット目を繰り上げて7ビット構成にする。
(08 08)16(7) + (00 0C 00 00)16(7) = (00 0C 08 08)16(7)サンプルパラメータのスタートアドレスを加算する。
というわけで、10番目のサンプルのループモードのアドレスは 00 0C 08 08 を指定すればいいわけです。
これを利用してエクスクルーシブデータの要求などを作ります。(F0 41 00 34 11 00 0C 08 08 00 00 00 02 62 F7)
Update 2004/9/12