Tab Sketcher の仕組み
画面・音・書き出しは同じ記録から生まれます
入力した音符は、何弦の何フレットという二つの数字として保存されます。タブ譜、五線譜、再生音、書き出したファイルはすべてその一つの記録から作られるため、互いに食い違うことがありません。五線に G が見えていれば、鳴っているのも同じ G です。
途中の工程に推測はありません。どれもギターを手にして紙の上で計算し直せる、ごく普通の算数です。このページではそのうち特に大切な三つを取り上げます。フレットが音になる仕組み、移調が計算していること、そして音の出どころです。
フレット番号が実際の音になるまで
弦ごとに開放弦 (どこも押さえずに鳴らした状態) の音が決まっていて、フレットを一つ上がるたびにその音が半音ずつ高くなります。半音は西洋音楽でいちばん小さい音程の単位です。つまりどの音も、開放弦の音にフレット番号を足した高さになります。フレット 0 は開放弦を指します。
レギュラーチューニングでは、細い 1 弦から太い 6 弦まで順に E4 B3 G3 D3 A2 E2 が鳴ります。弦番号はギターを習い始めるときと同じ数え方で、1 弦がいちばん細く、いちばん高い音です。仮想フレットボードが各ポジションについて示す音名も同じ足し算の結果であり、あらかじめ描いた図を読み出しているのではありません。
チューニング・プリセット (Drop D、半音下げ、全音下げ、Open G、Open D、DADGAD) を選ぶと変わるのは各弦の出発点の音だけで、指板上のすべてのフレットは新しい出発点から計算し直されます。カポの位置はチューニングとともに譜面に保存され、譜面エンジンにそのまま渡されます。頭の中だけに残る情報ではなく、ファイルと一緒に持ち運ばれます。
意図的に単純化している点が一つあります。音名は常にシャープで表記します。そのため変ニの位置にある音は嬰ハとして表示されます。音の高さはまったく同じですが、教則本や指導者は逆の書き方をすることがあります。
移調ボタンが計算していること
移調とは、すべての音を同じ距離だけ動かすことです。全部が同じだけ動くので曲の形が保たれ、別の曲になってしまうことがありません。半音二つ上げるなら、すべての音の高さに 2 を足します。そのうえで二つ目の問いが残ります。その新しい音は指板のどこにあるのか、ということです。
まずは無理のない選択肢から試します。新しい音が 12 フレット以内に収まるなら、もとと同じ弦をそのまま使います。それが無理なら、その音をいちばん低いフレットで押さえられる別の弦を探します。一つの和音の二つの音が同じ弦に割り当てられることはありません。一本の弦は一度に一つの音しか鳴らせないからです。指板の 24 フレット以内でどうしても収まらないときだけ、その拍をまるごと 1 オクターブ動かします。この場合、音名はそのままで高さだけが変わります。
キー選択は移調後のキーを表示し、12 のキーを回る道のうち常に短いほうを選びます。半音一つ下げれば済む場面で、十一個上げようと提案することはありません。
知っておくとよい点が二つあります。移調は運指を変えるので、押さえやすかった形が難しくなることがあり、歌に合わせる目的ならカポのほうが楽な答えになる場合が多いです。また、オクターブ移動が必要だった箇所は音そのものは正しくても、原曲とは異なる音域に置かれます。
コードの押さえ方とコード名
コードライブラリは、それぞれの押さえ方を通常の音符とまったく同じ弦とフレットの組として保存しています。押さえ方に含まれない弦は x と表示され、弾かない弦であることを示します。ライブラリのコードを拍に置くと、その組がそのまま譜面に書き込まれるため、画面の図・記譜・音は同じ一つの押さえ方を三通りに読んだ結果になります。
コード名が自動で付くときは、小節内の音を集めてオクターブに関係のない音名に直し、音程パターンの一覧と照合します。四つの音のパターン (メジャーセブンス、セブンス、マイナーセブンス、ディミニッシュセブンス) を三つの音のパターンより先に確認するため、セブンスコードが単純な三和音として誤って表示されることがありません。正確に一致するものがなければ、何も書きません。初心者にとっては誤った名前のほうが、名前がないことよりも混乱を招くからです。
保存された押さえ方は、よく使うコードについて自動テストで確認しています。保存された押さえ方を実際の音の高さに変換し、名前を判定する処理がもとの名前をそのまま返すかを検査します。認識できるのは馴染みのあるコードの系統に限られ、同じ音の組が複数の名前を持ち得る場合もあるため、どの名前も手で書き換えられます。
再生される音の出どころ
仕上がった譜面はオープンソースの譜面エンジン AlphaTab に渡され、このエンジンが描画と内蔵シンセサイザーによる再生の両方を担います。音の高さは前述の数字から、タイミングはテンポと拍子から決まります。
楽器の音色は、無料で配布されている SONiVOX の SoundFont から来ています。SoundFont は短く録音された楽器サンプルの集まりで、シンセサイザーがその音程と形を調整して一つひとつの音を作ります。聞こえているのは合成された音であり、ギタリストの演奏を録音したものではありません。音程・リズム・和声を確かめるには十分に信頼できますが、実際のギターの音色を代わりに示すためのものではありません。
一部の奏法はそもそも近似表現です。チョーキング (ベンド) は指が描く実際の曲線ではなく決まった一つの形で記譜され、プリングはハンマリングと同じ記号で表されます。記譜形式が二つの方向を一つの表記で扱うためです。再生は演奏の録音ではなく、音符を点検するための手段と考えるのが適切です。
拍・小節・音符の長さ
一つの小節は拍の並びで、一つの拍には同時に鳴る音と長さが一つ入ります。長さは全音符から 32 分音符までです。拍子はプリセット (4/4、3/4、6/8、2/4、12/8) から選び、拍子が変わる小節にその変更が記録されて、以降の小節が新しい拍子に従います。テンポは 1 分あたりの拍数として保存され、そのまま再生に使われます。
付点音符と三連符はまだこのモデルにありません。長さは全音符、2 分、4 分、8 分、16 分、32 分のいずれかに揃えられ、付点や三連符を含むファイルを取り込むと、その長さはいちばん近い値に丸められます。
取り込みで残るものと失われるもの
Guitar Pro のファイルは同じ音楽を五線とタブ譜の二通りで持っていることが多く、フレット番号とチューニングを持っているのはタブ譜のほうだけです。取り込み処理はファイルの中を調べ、その両方を備えたほうを選びます。取り込んだ譜面が空の小節ではなく、そのまま演奏できるフレット番号として現れるのはこのためです。
取り込みではファイルの最初のトラックと最初のボイスを使います。ファイルに複数のトラックや複数の譜表があるときは、どれを使ったのかをその場でお知らせするので、後から気づくことになりません。変換が演奏可能な結果を生めなかった場合は、白紙に置き換えるのではなく元の譜面を閲覧専用のまま画面に残します。ファイルを開いただけで内容が黙って消えることはありません。
出典・ライセンス・同梱のサンプル曲については 紹介ページ にまとめています。