マイページへログイン
サポートトップ
よくある質問
ダウンロード
使いこなす

使いこなしのテクニックシステムエクスクルーシブの使い方 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. アドレスの上位バイトからデータまでを加算する。
  2. 1.を "128" で割った余りを求める。
  3. "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
ということになります。