bwb_guitar.hの目玉機能の一つ、アルペジオストローク機能について説明したいと思います。
この機能を駆使することで、アルペジオの入力が簡略化され、非常に便利です。
BGA{文字列}
文字列の中にはbwb_guitar.h特有のMML(=アルペジオコマンド入力モード)が使われる。
コマンド |
サンプルで、実際にどのような使われ方するか見ていただきましょう。
Include(bwb_guitar.h);
TR(01) @25 l8 q99
GEm7(1) BGA{ABCDEF^^abcdefrr < Print("bwb_guitar.h arpeggio!!") >}
上の関数の説明の通り、BGA関数は引数として入れられた文字列を
独自のMML文法で解析し、ギターの音程として演奏する機能があります。
ABCDEFabcdefは通常通り音を鳴らす作業として処理されます。
タイや休符はそのまま通常通り処理されます。
ここで、BGA関数の文字列内に通常のMMLを入力したくなったというときは、
そのMMLを「<」と「>」で括ると、その部分は通常通り処理されます。
その代わり、その中では通常のオクターブ上下の操作を行う「<」と「>」は使えなくなります。
BGA関数で鳴らされる音はオクターブに影響されることはありませんので、
まず、使用する機会はないと思われますが、
どうしても使用する場合、「o+」と「o-」でオクターブの上下を行ってください。
以下に、アルペジオ関数を応用するテクニックを紹介します。
上のサンプルはどうも音が切れてしまいます。
左手はコードフォームを押さえたままですから、音が切れるのもおかしな話です。
これを解消するためにBG_PEDALという機能があります。
以下にサンプルを示します。
Include(bwb_guitar.h);
BG_PEDAL=on
TR(01) @25 l8 q99
GEm7(1) BGA{ABCDEF^^abcdefrr} BGD(!2,,,,on)
GC(1) BGA{AbCdEf^^aBcDeFrr}
r1
y64,0 //ストトンだったら、「放す」
r1
BG_PEDAL=onにすると、コードを握るたびに
コントロールチェンジ64番のペダルの機能を使い、音を持続させます。
ストトンでいえば、「ペダル」「放す」です。
ですから、最後に音を鳴らしたとき、コントロールチェンジ64番がオンになったままなので、
最後にコントロールチェンジ64番をオフにしてやる必要があります。
これがサンプルだと、最後のy64,0 //ストトンだったら、「放す」にあたります。
BGA関数はアルペジオに特化された関数ですが、
通常のダウンアップストロークを入力する機能はついていません。
そういうときは一度BGA関数を分割してください。
Include(bwb_guitar.h);
BG_PEDAL=on
TR(01) @25 l8 q99
GEm7(1) BGA{ABCDEF^} BGU(!8,,,,,,4,6) BGA{BCDE} BGD(!2,,,,on)
「<」と「>」でBGD,BGU関数を括る方法も考えられますが、
7章で後述されるBG_PRINT=onによる表示機能と非常に相性が悪いので、
あまりお勧めできません。
bwb_guitar.h関数には様々なコードフォームが用意されてあり、
その中には当然、ミュート弦なども含まれているコードフォームもあるでしょう。
そういったとき、例えば3弦がミュートされているのに、
BGA{C}で、強引に3弦を鳴らそうとしたら?
そのときは代わりに休符のrが挿入されます。
コードフォームで押さえている弦の状況はBG_CHORDFORMでわかります。
サンプルを示します。
Include(bwb_guitar.h);
GAm7(1) BG_CHORDFORM
↓実行結果↓
[表示] bwb_guitar.h(117): 6弦,5弦,4弦,3弦,2弦,1弦 = M,0,2,0,1,0
[終了] 0.13 秒
数字が表示されている弦はそのフレットを押さえてください。
Mはミュート、もしくは押さえない弦です。
これを頼りにアルペジオを入力していってください。