HeartyLadderで演奏を(続の続)

演奏がらみの話題をもう一つ。オタク度全開モードですが、おつきあいください。

電子ピアノなどの中には、次に押すべき鍵盤を光って知らせるガイド機能がついているものがあります。HeartyLadderでも同じような機能を再現できないものでしょうか。視線を使っている関係上、楽譜を見ながら演奏することは非常に困難ですが、ガイド機能がついていれば、画面を見たままで演奏を続けることができます。便利ですよね。

実は、「HeartyLadderで演奏を」を書いた時点では無理でした。アイディアはあったのですが、HeartyLadderの仕様がマッチしていなかったのです。しかし、この問題も今は解決していただいて、ガイド機能が使えるようになりました。

HeartyLadderには、もともと「パネル呼び出し機能」がついています。表示されているパネルから、別のパネルを呼び出す機能です。この機能があるおかげで、HeartyLadderのパネルは多彩な使い道を生み出すことができます。では、ガイド機能を実現するにはどうしたらいいのでしょう?

たとえば、ドレミと演奏するようにしたいのであれば、鍵盤のドを明るくしたパネル、レを明るくしたパネル、ミを明るくしたパネルを作って、該当する鍵盤を押すたびに、その音を鳴らしてから次のパネルを呼び出せばいいのです。

まず、「ド」のパネルを作りますが、その前にこのガイド付き鍵盤のパネルデータを入れるフォルダの名前を適当に決めます(適当に、と言っても「パネルデータ」で始まらなくてはいけないというルールがあります)。たとえば、「パネルデータ_ガイド付き鍵盤」とでもしておきましょう。このフォルダにwavデータを入れたwavフォルダを作るのは、前回記事と同様です。パネルもほぼ同じですが、一カ所、違うところがあります。まずはtblファイルを見てみましょう。ご存じと思いますが、起動直後に表示されるパネルは、「50音.tbl」にしておく必要があります。後述のように、ガイド付き鍵盤として使う場合は、50音.tblをメニュー的に使うと便利になりますが、まずは50音.tblから始まるものとしておきましょう。では、その中身です。

ド.bmp
200,500,3,1
B1>dB2  B3
<ワンタッチ文章>
1,$\パネルデータ_ガイド付き鍵盤\wav\ド.wav
2,$\パネルデータ_ガイド付き鍵盤\wav\レ.wav
3,$\パネルデータ_ガイド付き鍵盤\wav\ミ.wav
<END>

パネルの画像は、「ド」を黄色くして、ここを押すよう求めます。tblファイル三行目の最初が、B1>dとなっています。これが「ド」の音を鳴らしてから別のパネル(ここではレのパネル)を呼び出すコマンドになっています。「レ」のパネルを>dで呼び出すためには、「レ」のパネルにMainPaneld.tblという名前をつけておく必要があります(レはcdefgabのdの音ですので、dにしましたが、他の文字を割り当てても問題ありません)。

もともと、たとえばMainPaneld.tblを呼び出すためには、専用のコマンド、Gd(これは、一つのボタンに割り当てられた半角4文字分のうち1文字目と2文字目に記述します。3,4文字目は半角スペースにします)というものが割り当てられていますが、あるボタンを押したとき、単に別のパネルを呼び出すだけでなく、「何かをしてから」別のパネルを呼び出すという動作を可能にするために、>dというコマンド(1文字目と2文字目には「何かをする」のコマンドを記述し、3文字目と4文字目に>dを記述します)が導入されています。ここではそれを使っています。

MainPaneld.tblは、「ド」のパネルとほとんど同じになりますが、すでにお察しの通り、今度はB2のところが、B2>eとなります。こうすることで、「レ」を押すと、「レ」を鳴らしてから次のパネル(MainPanele.tbl)を呼び出してくれます。もちろん、画像ファイルは今度は「レ」が黄色くなった「レ.bmp」になっています。

レ.bmp
200,500,3,1
B1  B2>eB3
<ワンタッチ文章>
1,$\パネルデータ_ガイド付き鍵盤\wav\ド.wav
2,$\パネルデータ_ガイド付き鍵盤\wav\レ.wav
3,$\パネルデータ_ガイド付き鍵盤\wav\ミ.wav
<END>

MainPanel*.tblというファイルは、*のところに、いずれも半角で、0~9、a~z(大文字小文字は区別なし)、ア~ンを入れることが出来ますので、全部で82ファイルまで作ることができます。つまりガイド機能付きの鍵盤を作ろうと思うと、最大83音まで(起動時の50音.tblも含めた場合)、という制限が生じます。視線で素早いパッセージを演奏することはもともと難しいですので、2分音符、4分音符が主体で、それに時々8分音符がまざる、といった曲を選ぶことになると思います。そうすると、4分の4拍子の曲であれば、おおよそ20小節前後が目安になるでしょう。短い曲しか演奏できませんが、仕様なのでやむを得ません。それにこれ以上長いと、演奏するのも、パネルを作る作業も、大変になりますので、ちょうどいいくらいではないでしょうか。

実際の作業としては、まず、画像ファイルとしてド.bmp、レ.bmp・・・を指定した「ド.tbl」「レ.tbl」などのtblファイルのひな形を作っておきます。これは、曲に使う音すべての分を作っておきます。半音やオクターブ上(下)の音を使う場合も、たとえば、ド#.tblとか、ド高.tblのようにして、わかりやすい名前にしておくといいでしょう。

次に、曲の中で、どんな音がどんな順に使われているか、確認します。童謡の「ちょうちょう」」の冒頭部分を使ってやり方を説明します。ドレミの右の行に書いてある0~cの記号が、最終的なtblファイルのファイル名の識別に使われます。

ちょ  ソ  0
う   ミ  1
ちょう ミ  2
ちょ  ファ 3
う   レ  4
ちょう レ  5
な   ド  6
の   レ  7
は   ミ  8
に   ファ 9
と   ソ  a
ま   ソ  b
れ   ソ  c

先ほども書きましたが、呼び出されるパネルは、MainPanel*.tblというファイルになり、*に入る文字(0~9,a~z,ア~ンが使用可能)で識別されます。使用可能な文字であればどれをどの順番で使っても動きますが、大量のパネルを作るときは、通常のソートで並ぶ順、つまり0~9、a~z、ア~ンの順番にtblファイルを使っていく方が楽だと思います。また、先ほども触れましたように、曲の冒頭は50音.tblにしてもいいのですが、50音.tblはスタートボタンをつけるとか、終了ボタンを入れておくとか、曲自体以外の用途に残しておく方が何かと便利ですので、曲はMainPanel0から始めた方が無難です。

次に、上記の確認の結果を、今度はドレミ・・・の音ごとに、順番に並べ替えます。次のようになります。

ド  6
レ  4,5,7
ミ  1,2,8
ファ 3,9
ソ  0,a,b,c

これで、必要なパネルが、「ド」が1枚、「レ」が3枚、「ミ」が3枚、「ファ」が2枚、「ソ」が4枚とわかりますので、ひな形を枚数分コピペしておいて、MainPanel0.tblはひな形「ソ.tbl」から、MainPanel1はひな形「ミ.tbl」から、という風にしてtblファイルを作っていきます。また、上に説明しましたように、次の音のパネルを呼び出せるよう、tblファイル内の当該箇所に>*を追加することもお忘れなく。単純作業ですが、けっこう手間がかかります。全体の作業のイメージとしては電子パラパラ漫画の作成とでもいった趣です。

最後にもう一つ。tblファイルの、たとえば

B1  B2>eB3

というところを、

@_  B2>e@_

という風に書いておくと、B2のところ、つまりレ以外の音はしなくなります。@_は「何もしない/何もするな」というコマンド(nop:no operationの略)ですので、そこの場所を押しても、何の反応もしません。こうしておくと、正しい音以外の鍵盤を押しても反応がなく、余計な音がしません。鍵盤を押し間違って違う音ばっかり出てくるとやる気がなくなりますが、こうしておくと、正しい音以外は出てこないので、慣れないうちでも、楽しく練習できると思います。こちらのパターンで作る場合は、ひな形ファイルも最初からこのパターンにしておかないと、後から数十枚のtblファイルを書き換えることになって、泣きを見ます。

2018年7月5日

Posted by ist