音程はドレミファソと書けばOKですが、時には音程で表せないような中途半端なピッチを使いたい事もあるでしょう。
シンセサイザには音程とは別に「ピッチシフター」という機能がついてて、音程を少しだけ上げ下げしたい場合はそれを使います。
ストトンにはそういうコマンドがないので、MMLから借りてきましょう。
p%?
半角でp%と書くとピッチが変えられます。
?には−8192〜8191の数字を書いてください。
0で変化無し。(真ん中)
4096や−4096で半音なので、上下2半音まで指定出来ます。
p%4096 ドーーー
と書くと、一見ドですが実際出る音はド#になる、という事ですね。
じわじわ変える事も出来ます。
p%.T( 0, 8191, !2 ) ドーーー
0から8191まで2分音符の長さで変化させよ、と書いてあります。
p%に.Tを足して、カッコへ(始めのピッチ,終わりのピッチ,!長さ)を半角で書けばOK。
カッコの中の数字は3つでワンセットなので、それさえ守れば6個でも9個でも12個でも大丈夫です。
しかしこのp%。
半音で4096も要らないような気がしますが、それにはちゃんと理由があります。
ちょっとした装飾音符などは上下2半音でも充分かもしれませんが、1オクターブに渡ってストリングスでグリッサンド…とか、ギターでハンマリング…ともなるとどうにもなりませんよね。音楽を作っていると、そういう表現をしたくなる事は決して少なくないので上下2半音ではやはり不充分。
そこでGMシンセでは上下12半音まで扱える範囲を変える事が出来るようになっています。それには次のようなコマンドを使います。
BR( ? )
元々は2になっていますが、?に数字を書くと扱える範囲を広げる事が可能。
ただしp%で指定する−8192〜8191という範囲は変わらないので、BR(8)などと指定すると
このような分かれ方に変わります。扱える幅を増やせば増やすほど半音の精度が下がっていくので8192段階くらいはないと…という事ですね。(ヤマハやローランドのシンセサイザでは上下24半音のコントロールが可能です)
真ん中に並んでいるのがp%の値。
半音の幅を求めるには8192 ÷ BR、BRが8だったらp%1024で+1半音ピッチがずれるわけです。
スラーのモード0やモード1も内部でこれを使ってピッチシフトしているので「&」を使うとp%は0に戻ってしまいます。「&」と併用する時は注意しましょう。