※この記事は「IchigoJam Advent Calendar 2018」にエントリーしています。
先日作った「Ichigo鉄琴」で、マザーグースの有名な曲「ロンドン橋落ちた」(London Bridge Is Falling Down)を叩いてみました。
ただ叩くだけでは面白くないので、ちょっとエモい動きも加えました。
(前作「Ichigoチャイム」のウォームアップが大人気だったので 笑)
動画はこちら。
【IchigoJam】ロンドン橋落ちた
プログラム
以下のメインプログラムをIchigoJam親機と子機のスロット0に、曲データをスロット1に入れて、親機と子機をボタンを押しながら電源ONして自動起動します。親機のボタンを押すと演奏を開始します。
メインプログラム(親機)
1 '*Tekkin London P 2 CLV:LED 1:WAIT 60:UART 0 3 LET [90],200,110,207,115,212,120,220,125:M=165:N=135 4 G=5:LRUN 1 5 @RESTART 6 FOR P=2 TO 5:PWM P,[86+P*2]:NEXT 7 OUT 0:E=0 8 IF !BTN() CONT 9 LED 1:CLK:UART 1:?"*":UART 0 10 @PLAYLOOP 11 FOR I=0 TO L 12 X=[I]&15:Z=[I]&768/256:E=!E 13 B=1:FOR A=1 TO 7 STEP 2 14 P=A/2+2 15 IF A=X GSB @ATTACK ELSE GSB @EMO 16 NEXT 17 WAIT 12 18 B=0:FOR A=1 TO 7 STEP 2 19 P=A/2+2 20 GSB @ATTACK 21 NEXT 22 WAIT 3:IF Z=1 WAIT 15 23 NEXT 24 FOR P=2 TO 5 25 PWM P,N:NEXT 26 WAIT 180 27 GOTO @RESTART 28 @ATTACK 29 PWM P,[86+P*2+B]:RTN 30 @EMO 31 IF E PWM P,M ELSE PWM P,[86+P*2] 32 RTN
メインプログラム(子機)
1 '*Tekkin London C 2 CLV:CLK:LED 1:WAIT 60:UART 1,1 3 LET [90],62,155,75,170,62,160,70,170:M=115:N=145 4 G=5:LRUN 1 5 @RESTART 6 FOR P=2 TO 5:PWM P,[86+P*2]:NEXT 7 OUT 0:E=0 8 IF INKEY()!=42 CONT 9 CLK:LED 1 10 @PLAYLOOP 11 FOR I=0 TO L 12 X=[I]&15:Z=[I]&768/256:E=!E 13 B=1:FOR A=2 TO 8 STEP 2 14 P=A/2+1 15 IF A=X GSB @ATTACK ELSE GSB @EMO 16 NEXT 17 WAIT 12 18 B=0:FOR A=2 TO 8 STEP 2 19 P=A/2+1 20 GSB @ATTACK 21 NEXT 22 WAIT 3:IF Z=1 WAIT 15 23 NEXT 24 FOR P=2 TO 5 25 PWM P,N:NEXT 26 WAIT 180 27 GOTO @RESTART 28 @ATTACK 29 PWM P,[86+P*2+B]:RTN 30 @EMO 31 IF E PWM P,M ELSE PWM P,[86+P*2] 32 RTN
曲データ「ロンドン橋落ちた」(London Bridge Is Falling Down)
10 '*London Bridge 20 LET [ 0],#205,#206,#205,#204,#203,#204,#205,#200 30 LET [ 8],#202,#203,#204,#200,#203,#204,#205,#200 40 LET [16],#205,#206,#205,#204,#203,#204,#205,#200 50 LET [24],#202,#200,#205,#200,#203,#201,#200,#200 60 LET [32],#205,#206,#205,#204,#203,#204,#205,#200 70 LET [40],#202,#203,#204,#200,#203,#204,#205,#200 80 LET [48],#205,#206,#205,#204,#203,#204,#205,#200 90 LET [56],#202,#200,#205,#200,#203,#201,#200,#200 100 L=63 110 LRUN 0,G
※他のマレットのエモい動きと合わせるために、全て8分音符と8分休符にしています。それぞれの音で、マレットが下がる/上がるを交互にくり返します。