日曜日, 8月 06, 2006

「サクラ」で内蔵音源をGSモードにする

昨日試したスケールチューニングの機能について、WIndowに標準でついている内蔵MIDI音源では使えないと書いてしまったのだが、実は使えることがわかった。

というのは、WIndowに標準でついている内蔵MIDI音源(Microsoft GS Wavetable SW Synth)は、初期状態ではGMモードになっているのだという。

GSって名前が付いているからGSモードかと思っていたのだが、さすがというか世界標準のGMになっているのだ。(GSはRolandの基準)

ということで、GSモードにする方法なのだが、GSをリセットするシステム・エクスクルーシブ・メッセージを送ればGSモードにすることができる。

サクラ」では次のコマンドを書けば良い。

ResetGS

昨日のプログラムの先頭にResetGSコマンドを入れて、音源をGSモードにして、スケールチューイングのシステム・エクスクルーシブ・メッセージが有効になるか確認してみる。

//---------- ここから ----------

ResetGS r4
TR(1) l2 cdefgab>c<
TR(2) l2 cdefgab>c<
SysEx$=F0,41,10,42,12,40,12,40,40,22,44,50,32,3E,36,42,24,30,4E,34,3B,F7
TR(1) l2 cdefgab>c
TR(2) l2 cdefgab>c

//---------- ここまで ----------



確かに音程がずれる。トラック2は純正律にチューニングされたようだ。

ResetGS の後に書いてある休符 r4 は、実は重要だ。ResetGSコマンドの処理にはMIDI音源の方で多少の時間が必要なのだ。ということで、音を出す前に休符を書いておくというのがプログラミングの定石だ。(休符を入れないとリセットコマンドが有効にならなかった)