使いこなしのテクニックシステムエクスクルーシブの使い方 Roland 社 GS音源の場合
エクスクルーシブの具体例 [GS]
ある音源にどのようなエクスクルーシブを送ればよいかは、メーカーや機種によって異なりますので、使用する音源などのマニュアルに書かれた「MIDI インプリメンテーション」に従ったデータを送る必要があります。
Roland の SC-88Pro を例にとって調べてみます。(SC-8850/8820, SC-88Pro/88/55, VSCなど GS対応機器で共通です)
SC-88Proにデータを設定するためのエクスクルーシブは以下のフォーマットを使用します。
データ(H) | 説明 |
F0 | エクスクルーシブ ステータス |
41 | メーカーID (Roland) |
dev | デバイスID (初期設定では 10H) |
42 | モデルID (GS) |
12 | コマンドID (データセット) |
aa | 送信するデータの先頭アドレスの上位バイト |
bb | 送信するデータの先頭アドレスの中位バイト |
cc | 送信するデータの先頭アドレスの下位バイト |
dd | 送信するデータ本体 |
: | : |
sum | チェックサム |
F7 | EOX(エンド オブ エクスクルーシブ) |
チェックサムとはデータが正しく送信されたかをチェックするものです。
計算方法はメーカーによって異なりますが、(要求しないメーカー、機種もあります。)
SC-88Proでは、以下のように計算します。
- アドレスの上位バイトからデータまでを加算する。
- 1.を "128" で割った余りを求める。
- "128" から2.の余りを引いたものが "sum" になります。
これを難しくいうと、アドレスからチェックサムまでを(チェックサムも含む)加算した値の下位 7ビットが "0" になる値ということになります。 (このあたりもすべて使用する音源などのマニュアルの「MIDI インプリメンテーション」に書かれています)
- マスターボリュームの例
では実際に SC-88Pro のマスターボリュームを "90" に設定するようなエクスクルーシブを作ってみましょう。
SC-88Pro のマニュアルの「MIDI インプリメンテーション」の章でマスターボリュームのパラメータを見ると、以下のような記述になっています。アドレス(H) サイズ(H) データ(H) パラメーター 説明 初期設定値(H) 説明 40 00 04 00 00 01 00 - 7F MASTER VOLUME 0 -127 7F 127 "90" は 16進で "5AH" ですから SC-88Pro のマスターボリュームを "90" に設定するようなエクスクルーシブは、
F0 41 10 42 12 40 00 04 5A sum F7 になります。sum は前述の計算方法で求めます。
40H + 00H + 04H + 5AH = 64 + 0 + 4 + 90 = 158 (10進数に変換して和を求める)
158 ÷ 128 = 1 余り 30 (128で割った余りを求める)
128 - 30 = 98 = 62H (128から余りを引いて、結果を16進数に変換する)
したがってSC-88Pro のマスターボリュームを "90" に設定するようなエクスクルーシブは、F0 41 10 42 12 40 00 04 5A 62 F7