bwb_guitar.hの二つめの目玉機能、リズムストローク機能について説明したいと思います。
この機能を駆使することで、ストロークの強弱や弦の2本弾きなどのの入力が簡略化されます。
BGR{文字列}
文字列の中にはbwb_guitar.h特有のMML(=リズムコマンド入力モード)が使われる。
コマンド |
サンプルで、実際にどのような使われ方するか見ていただきましょう。
Include(bwb_guitar.h);
BG_LAG=!16
TR(01) @25 l2 q99
GEm7(1) BGR{ASZXQW^^aszxqwrr < Print("bwb_guitar.h rhythm!!") >}
まず、キーボードの左側を見てください。
キーボードの機種によって若干差はあるかもしれませんが、
基本的には2段目には「Q」「W」が、3段目には「A」「S」、4段目には「Z」「X」があると思います。
リズムモードのコマンドはここの部分と一致しているため、
以下の説明を読めば、どの文字がどのコマンドに対応しているかが、
簡単にわかると思うので、入力しやすいと思います。
まず、3段目の「A」「S」を説明します。
「A」と「S」は、全部の弦をストロークするコマンドです。
左側の「A」は全弦ダウンストローク、右側の「S」は全弦アップストロークです。
引数をとらないところを除けば、BGD,BGUと大差がないかと思われます。
次に3段目の下の段の「Z」「X」についてです。
これは低音弦2本を限定してストロークを行うコマンドです。
低音弦2本限定ということ、例えば、Em7のポジション1ですと、
押さえているポジションは 6弦,5弦,4弦,3弦,2弦,1弦 = 0,2,0,0,0,0 ですので、
最も低音の弦は6弦と5弦だけ弾くことになります。
ちょうど、ダウンストロークでいえば、BGD(,,,,,,6,5)にあたります。
ちなみにGsus4のポジション1のような、5弦だけミュートしているようなフォームの場合、
5弦は演奏されず、6弦と4弦だけ演奏されます。
また、このとき、一応ミュート状態で弦は弾いてるので、
5弦の分もズレが考慮されますので、
6弦と4弦の間には BG_LAG × 2 の分のズレがあります。
左側の「Z」はダウンストローク、右側の「X」はアップストロークです。
次に3段目の上の段の「Q」「W」についてです。
これは高音弦2本を限定してストロークを行うコマンドです。
機能的な部分は低音弦2本同じ弾くときと同じで、
例えば、1弦だけミュートされていたとしても、
2弦と3弦の2本の弦をきっかり弾いてくれます。
左側の「Q」はダウンストローク、右側の「W」はアップストロークです。
またこれらを小文字にすると演奏する音量やゲートを小さくすることができます。
休符、タイは通常通りの扱いです。
最後にアルペジオモードと同様、BGA関数の引数内で通常のMML入力に戻りたい場合、
「<」「>」で実行したい文字列を挟むことで、通常のMML入力ができます。
ではアルペジオのついて触れた5章の内容を絡めて、
両方の関数を交互に使うことで、高度なパターンを作ってみましょう。
サンプルを示します。
Include(bwb_guitar.h);
BG_LAG=!128
BG_PEDAL=on
TR(01) @25 l16 q99
#SAMPLE={
BGR{A^xA^xA^ ^^}
BGA{D^E^F^}
}
GCM7(1);#SAMPLE;
GAm7;#SAMPLE;
GDm;#SAMPLE;
GG;#SAMPLE;
GC;BGD(!1,,+10,,on,-BG_LAG+!8)
y64,0
このようにパターンをマクロ化しておけば、後で応用も利きます。
コードフォームによってミュートされている弦があるため、
パターンのリズム感が損なわれる可能性もありますから、気をつけて利用してください。
bwb_guitar.hを使ってこんな裏技も可能です。
Include(bwb_guitar.h);
BG_LAG=0
BG_PEDAL=off
TR(01) @49 l16 q99
#SAMPLE={
BGR{zrQrQrzrQrQr}}
}
GCM7(1);#SAMPLE;
GAm7;#SAMPLE;
GDm;#SAMPLE;
GG;#SAMPLE;
GC;BGD(!1)
シンセパッドの分散和音を手軽に入力してみたり、
シンセサイザーにアルペジオのパターンを弾かせてみたり、
使用方法はいろいろ思いつきます。試してみてください。