プチコンのプ その8 鍵盤楽器を作ろう
プチコンのプ今年の第一弾は、下画面で鍵盤楽器を作ります。というわけでざっくりと白鍵を表示。http://t.co/ucO3snve http://t.co/nleoXEOk まだ突いても音は出ません、念のため^^; #petitcom #p4petitcom
2013-01-07 00:13:26音を出すメインループ。15行がミソで、タッチ地点のX座標を16で割って白鍵の番号を割り出し、それがドレミファソラシ(CDEFGAB)のどれにあたるかを、7で割った余りで求めます。#p4petitcom http://t.co/xwPmEXce
2013-01-07 00:26:12しかしまあいろいろ雑ですね。タッチしてる間鍵盤連打してるし、ドレミファソラシと順番に叩いても次のドで最初に戻っちゃう^^; #p4petitcom
2013-01-07 00:30:08オクターブに対応するため、13行の'オトと21行の間を差し替えます。Kは白鍵の番号、Oはオクターブ(3以上)。#p4petitcom http://t.co/AA7nuU6q
2013-01-07 00:43:14連打対策は、2行追加するだけ。23行でタッチ状態を変数PTCHSTに保存して、12行でこれが1だったら=前のフレームでタッチしていたら音を出しません。原因と結果が逆転してるからわかりにくいかな? #p4petitcom http://t.co/XKluN7ya
2013-01-07 00:55:32これできらきら星くらいは弾けます。でも、鍵盤をタッチしたままずらしても音がしない…(´・_・`) これはさびしいから何とかしたいな。つづく #p4petitcom
2013-01-07 01:01:20タッチ調整
前回追加した12・26行は削除して、20〜24行を修正追加。前に出た音をPP$に記録して、音がかぶったらBGMPLAYをスキップします。これでタッチペンをスライドしてダララララッと鳴らせます。 #p4petitcom http://t.co/Eu7RqNXv
2013-01-07 10:54:52でも今度はきらきら星が弾けない問題が! ドドソソララソ、と同じ音が続くとハネられます。そりゃそうだ、そうプログラムしたもの/ _ ; #p4petitcom
2013-01-07 10:57:58この対策は簡単で、11行のTHENのあとでPP$をクリアします。つまり、タッチペンを離したら同じ音を出せるようにするわけです。 #p4petitcom http://t.co/I3SIHxS0
2013-01-07 11:03:41黒鍵で半音
やっぱり白鍵だけでは楽器にならないので、黒鍵を組み込みます。まずは表示。 #p4petitcom http://t.co/WsBrTUyI
2013-01-07 21:18:56黒鍵判定。タッチした点が黒なら、X座標から4を引いて白鍵と対応させます。で、鳴らす音程に#を足す。 #p4petitcom http://t.co/WBHWSgzc
2013-01-07 21:34:14楽器音パネル
プチコンmkⅡでは128種類の楽器音を演奏できます。そこで、楽器音パネルを作りましょう。まず0〜127の色でモザイク状のパターンを描き込みます。 #p4petitcom http://t.co/6zok0xcY
2013-01-08 00:57:38モザイクのエリアがタッチされたら、GSPOITで拾った色を楽器音としてセットします。 #p4petitcom http://t.co/pkK6bVFe
2013-01-08 01:01:00こんな画面になります。何番が何の楽器にあたるかは、マニュアル参照^^; #p4petitcom http://t.co/gddzXi20
2013-01-08 01:03:31音を伸ばすには
音を伸ばす改良をします。音の長さとして1、つまり全音符を指定してやります。 #p4petitcom http://t.co/6HliFiOC
2013-01-10 09:13:25すると今度、タッチペンを離しても音が鳴り続けるので、音を消す処理を入れます。THENのあとがだんだん長くなってきたので、タッチしたら音出しへジャンプ、タッチされてなければ音消しを実行とします。 #p4petitcom http://t.co/L10osv7p
2013-01-10 09:18:32鍵盤の位置調整
鍵盤の配置を調整します。変数Mに数字を設定した分、黒鍵の描画位置が変化。変数Mは後でも使います。 http://t.co/FQGnk29w
2013-01-10 19:39:03