6.11.5. データ出力命令について


[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]


エクスクルーシブデータ送信などの用途で、MIDI音源に対して直接データを出力するための命令群です。

XMIDI音源に対して直接データを送信します。

X

書式 X出力データ}〔,出力データ…}〕
解説

MIDI音源に対して直接データを送信します。エクスクルーシブデータの送信はこの命令で行ないます。

出力データ}は、 MIDI音源に出力するデータです。0〜127の数値、“""”でくくった文字列、または以下の特殊データを指定します。

@S1 @C1と対で使用し、以後チェックサム・タイプ1の計算を開始します。データは出力しません。このタイプにはローランド・ヤマハなどが該当します。
@S2 @C2と対で使用し、以後チェックサム・タイプ2の計算を開始します。データは出力しません。
@C1 @S1と対で使用し、チェックサム・タイプ1の内容を出力します。サムは以下の計算式で求められます。
式:(-{データ総和}) AND $7F
例:$00,@S1,$12,$34,$56,$78,@C1
      @C1 = (-($12+$34+$56+$78)) AND $7F
          = (-$114) AND $7F
          = $6C
出力:$00,$12,$34,$56,$78,$6C
@C1 @S2と対で使用し、チェックサム・タイプ2の内容を出力します。サムは以下の計算式で求められます。
式:{データ総排他的論理和}
例:$00,@S2,$12,$34,$56,$78,@C2
      @C2 = ($12 XOR $34 XOR $56 XOR $78)
          = $08
出力:$00,$12,$34,$56,$78,$08

文字列は1バイトずつアスキーコードに変換されたデータとなります。“"ABCDE"”と“$41,$42,$43,$44,$45”は同じです。

変数を記述した場合、変数の内容は文字列として解釈されます。たとえば、変数?Aに127が設定されている場合、“X ?A”は“X "127"”($31,$32,$37)と同じです。数値として解釈させたいときは“X 0+?A”のように記述します。

参照
用例 エクスクルーシブ「GSリセット」を送信します。
; GSリセット
3 X$F0,$41,$10,$42,$12,@S1,$40,$00,$7F,$00,@C1,$F7


[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]