福野泰介の一日一創 - create every day

理科の放物線を実験したり、歴史の年号問題をつくったり、勉強のお供になるプログラミング。 音楽とプログラミングの第二弾として、音楽界のBASIC「リコーダー」を入手したので、その運指を覚えるプログラムをIchigoJamで作成。

ドレミと順に表示されるのに合わせて、基礎練する。まずは全音のみから覚える。

1 'RECORDER FINGER for 1.2 100 [ 0]=`11 1111 111111 110 [ 1]=`11 1111 111110 120 [ 2]=`11 1111 111100 130 [ 3]=`11 1111 111000 140 [ 4]=`11 1111 110000 150 [ 5]=`11 1111 100000 160 [ 6]=`11 1111 011111 170 [ 7]=`11 1111 000000 180 [ 8]=`11 1110 111000 190 [ 9]=`11 1110 000000 200 [10]=`11 1001 100000 210 [11]=`11 1000 000000 220 [12]=`11 0110 000000 230 [13]=`00 1110 000000 240 [14]=`00 0110 000000 250 [15]=`00 0111 111100 260 [16]=`01 1111 110000 270 [17]=`01 1111 100000 280 [18]=`01 1111 010011 290 [19]=`01 1111 000000 300 [20]=`01 1111 011111 310 [21]=`01 1110 000000 320 [22]=`01 1110 111100 330 [23]=`01 1110 110000 340 [24]=`01 1000 110000 350 [25]=`01 1101 101111 360 [26]=`01 1001 101110 370 LET[27],0,0,0,1,2,0,2,1,3,1,2,2,2,4,2,5,2,6,3,6,2,7,3,7 375 T="C C+D E-E F F+G G+A B-B" 380 X=12:Y=8:N=0:CLS 390 IF ASC(T+(N%12*2+1))!=32 GOTO 410 392 FOR I=0 TO 22 STEP2 393 LCX+[27+I],Y+7-[28+I]:F=[N]&(1<<(11-I/2)):?CHR$(232+(F!=0)) 394 NEXT 395 LCX,Y+9:?"O";(N/12+2);" ";STR$(T+N%12*2,2) 400 WAIT 60 410 N=(N+1)%27:GOTO 390

配列 0〜26:運指、上位ビットに左手親指から順の2進数データ
配列 27〜50:各指を表示する座標のX,Y順
配列 51〜101:空き領域(楽譜データなどに)
※375、390、395行の音階表示などをなくせば ver 1.1 でも動かせます

400行で進むスピードを調整。390行を消すと、半音も含めた運指を表示するハードモード。好きな楽譜を配列の空き領域に入れて練習に使ってみてください。 プログラム領域が足りなくなったら、375行までを別プログラムで保存しておき、LRUNで連携するのがお手軽です。


(ポップでかわいいNUVOのリコーダーIchigoJam

息を吹き込めばすぐに鳴るリコーダー、音やリズムを楽しんでいる内に、音楽的基礎や、探究心が自然と芽生えて、様々な楽器へとステップアップしていける、まさにBASIC。 プログラミングも様々な興味に合わせて楽しむことで、多様なスキルや、その素養が身につきます。

参考リンク
- IchigoJamはリコーダーである、世界のPCNが集う「第1回PCNサミット in 鯖江」 - about yrm

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像