NERD HPCで電子ピアノプログラムを作ってみた。
先週開催されたレトロゲームDEアソビバin東京にて手に入れた
NERD HPCなる同人ベースのポケコンで何か実用的なものを作ろうと思い立ち、
楽曲打込時の耳コピ用途に使えそうな(?)電子ピアノプログラムを組んでみた。
取っ掛かりは13行で書かれた公式サンプルのピアノプログラム。
このマシン、音を鳴らすまでの敷居がすこぶる低くて良きポイントだと言えよう。
なお、リテラル値や冗長的な記述が多いのは現在の言語仕様故であり、
今後の進化・発展に期待を寄せる次第である。
■説明 HERD HPC本体キーボードのキー行4段を使った電子ピアノプログラムです。 ■使い方 1段目に半音高い(低い)黒鍵盤音を、2段目に通常の白鍵盤音を割り当てています。 また、3~4段目には1オクターブ下げた音を割り当てています。 ↑または→を押す事で鍵盤全体の音が1オクターブ上がり、 ↓または←を押す事で鍵盤全体の音が1オクターブ下がります。 オクターブは0~8の範囲で選択、ローテーションします。(初期オクターブは4です。) Escを押す事でプログラムを中断(終了)します。 ■キー情報 キー,機能 1,ド♯4 2,レ♯4 3,ミ♭4 4,ファ♯4 5,ソ♯4 6,ラ♯4 7,シ♭4 8,ド♯5 9,レ♯5 0,ミ♭5 Q,ド4 W,レ4 E,ミ4 R,ファ4 T,ソ4 Y,ラ4 U,シ4 I,ド5 O,レ5 P,ミ5 A,ド♯3 S,レ♯3 D,ミ♭3 F,ファ♯3 G,ソ♯3 H,ラ♯3 J,シ♭3 K,ド♯4 L,レ♯4 ;,ミ♭4 Z,ド3 X,レ3 C,ミ3 V,ファ3 B,ソ3 N,ラ3 M,シ3 ,,ド4 .,レ4 /,ミ4 ↑,鍵盤音を1オクターブ上げる →,鍵盤音を1オクターブ上げる ↓,鍵盤音を1オクターブ下げる ←,鍵盤音を1オクターブ下げる Esc,プログラムの中断
■キーマップ表

■プログラム
NERD ELE Piano(ELEPIANO.TXT)
0 REM 'MAIN' 10 GOSUB 1000; REM 'initialize' 20 GOSUB 2000; REM 'loop' 1000 REM 'INITIALIZE' 1010 CLS 1020 GCLS 1030 A=0; REM 'key now' 1040 B=0; REM 'key old' 1050 C=4; REM 'octave' 1060 PRINT 'NERD ELE Piano' 1070 PRINT 'v1.0.0' 1080 PRINT '' 1090 PRINT '28 Jun, 2025' 1100 PRINT '(C)REGEKATSU SOFT' 1110 PRINT '' 1999 RETURN 2000 REM 'LOOP' 2100 REM 'INPUT' 2110 B=A 2120 A=GETKEY(0) 2200 REM 'UPDATE' 2210 IF ((A=249)+(A=252))*(A#B) C=C+1; IF C>8 C=0 2220 IF ((A=250)+(A=251))*(A#B) C=C-1; IF C<0 C=8 2230 IF ((A>=249)*(A<=252))*(A#B) PRINT "OCTAVE:",C 2300 REM 'OUTPUT' 2305 IF C=0 GOSUB 3000; GOSUB 6400; REM 'KEYBOARD OCTAVE0 BLOCK1 & OCTAVE8 BLOCK2' 2310 IF C=1 GOSUB 3400; GOSUB 3200; REM 'KEYBOARD OCTAVE1 BLOCK1 & OCTAVE0 BLOCK2' 2320 IF C=2 GOSUB 3800; GOSUB 3600; REM 'KEYBOARD OCTAVE2 BLOCK1 & OCTAVE1 BLOCK2' 2330 IF C=3 GOSUB 4200; GOSUB 4000; REM 'KEYBOARD OCTAVE3 BLOCK1 & OCTAVE2 BLOCK2' 2340 IF C=4 GOSUB 4600; GOSUB 4400; REM 'KEYBOARD OCTAVE4 BLOCK1 & OCTAVE3 BLOCK2' 2350 IF C=5 GOSUB 5000; GOSUB 4800; REM 'KEYBOARD OCTAVE5 BLOCK1 & OCTAVE4 BLOCK2' 2360 IF C=6 GOSUB 5400; GOSUB 5200; REM 'KEYBOARD OCTAVE6 BLOCK1 & OCTAVE5 BLOCK2' 2370 IF C=7 GOSUB 5800; GOSUB 5600; REM 'KEYBOARD OCTAVE7 BLOCK1 & OCTAVE6 BLOCK2' 2380 IF C=8 GOSUB 6200; GOSUB 6000; REM 'KEYBOARD OCTAVE8 BLOCK1 & OCTAVE7 BLOCK2' 2990 IF A=0 STPSND 2999 GOTO 2000 3000 REM 'keyboard #/b octave0 block1 line1' 3005 IF (A=49)*(A#B) PLYSND 17,0; PRINT 'C#0 (17Hz)' 3010 IF (A=50)*(A#B) PLYSND 19,0; PRINT 'D#0 (19Hz)' 3020 IF (A=51)*(A#B) PLYSND 19,0; PRINT 'Eb0 (19Hz)' 3030 IF (A=52)*(A#B) PLYSND 23,0; PRINT 'F#0 (23Hz)' 3040 IF (A=53)*(A#B) PLYSND 26,0; PRINT 'G#0 (26Hz)' 3050 IF (A=54)*(A#B) PLYSND 29,0; PRINT 'A#0 (29Hz)' 3060 IF (A=55)*(A#B) PLYSND 29,0; PRINT 'Bb0 (29Hz)' 3070 IF (A=56)*(A#B) PLYSND 35,0; PRINT 'C#1 (35Hz)' 3080 IF (A=57)*(A#B) PLYSND 39,0; PRINT 'D#1 (39Hz)' 3090 IF (A=48)*(A#B) PLYSND 39,0; PRINT 'Eb1 (39Hz)' 3100 REM 'keyboard normal octave0 block1 line2' 3105 IF (A=113)*(A#B) PLYSND 16,0; PRINT 'C0 (16Hz)' 3110 IF (A=119)*(A#B) PLYSND 18,0; PRINT 'D0 (18Hz)' 3120 IF (A=101)*(A#B) PLYSND 21,0; PRINT 'E0 (21Hz)' 3130 IF (A=114)*(A#B) PLYSND 22,0; PRINT 'F0 (22Hz)' 3140 IF (A=116)*(A#B) PLYSND 24,0; PRINT 'G0 (24Hz)' 3150 IF (A=121)*(A#B) PLYSND 28,0; PRINT 'A0 (28Hz)' 3160 IF (A=117)*(A#B) PLYSND 31,0; PRINT 'B0 (31Hz)' 3170 IF (A=105)*(A#B) PLYSND 33,0; PRINT 'C1 (33Hz)' 3180 IF (A=111)*(A#B) PLYSND 37,0; PRINT 'D1 (37Hz)' 3190 IF (A=112)*(A#B) PLYSND 41,0; PRINT 'E1 (41Hz)' 3199 RETURN 3200 REM 'keyboard #/b octave0 block2 line3' 3205 IF (A=97)*(A#B) PLYSND 17,0; PRINT 'C#0 (17Hz)' 3210 IF (A=115)*(A#B) PLYSND 19,0; PRINT 'D#0 (19Hz)' 3220 IF (A=100)*(A#B) PLYSND 19,0; PRINT 'Eb0 (19Hz)' 3230 IF (A=102)*(A#B) PLYSND 23,0; PRINT 'F#0 (23Hz)' 3240 IF (A=103)*(A#B) PLYSND 26,0; PRINT 'G#0 (26Hz)' 3250 IF (A=104)*(A#B) PLYSND 29,0; PRINT 'A#0 (29Hz)' 3260 IF (A=106)*(A#B) PLYSND 29,0; PRINT 'Bb0 (29Hz)' 3270 IF (A=107)*(A#B) PLYSND 35,0; PRINT 'C#1 (35Hz)' 3280 IF (A=108)*(A#B) PLYSND 39,0; PRINT 'D#1 (39Hz)' 3290 IF (A=59)*(A#B) PLYSND 39,0; PRINT 'Eb1 (39Hz)' 3300 REM 'keyboard normal octave0 block2 line4' 3305 IF (A=122)*(A#B) PLYSND 16,0; PRINT 'C0 (16Hz)' 3310 IF (A=120)*(A#B) PLYSND 18,0; PRINT 'D0 (18Hz)' 3320 IF (A=99)*(A#B) PLYSND 21,0; PRINT 'E0 (21Hz)' 3330 IF (A=118)*(A#B) PLYSND 22,0; PRINT 'F0 (22Hz)' 3340 IF (A=98)*(A#B) PLYSND 24,0; PRINT 'G0 (24Hz)' 3350 IF (A=110)*(A#B) PLYSND 28,0; PRINT 'A0 (28Hz)' 3360 IF (A=109)*(A#B) PLYSND 31,0; PRINT 'B0 (31Hz)' 3370 IF (A=44)*(A#B) PLYSND 33,0; PRINT 'C1 (33Hz)' 3380 IF (A=46)*(A#B) PLYSND 37,0; PRINT 'D1 (37Hz)' 3390 IF (A=47)*(A#B) PLYSND 41,0; PRINT 'E1 (41Hz)' 3399 RETURN 3400 REM 'keyboard #/b octave1 block1 line1' 3405 IF (A=49)*(A#B) PLYSND 35,0; PRINT 'C#1 (35Hz)' 3410 IF (A=50)*(A#B) PLYSND 39,0; PRINT 'D#1 (39Hz)' 3420 IF (A=51)*(A#B) PLYSND 39,0; PRINT 'Eb1 (39Hz)' 3430 IF (A=52)*(A#B) PLYSND 46,0; PRINT 'F#1 (46Hz)' 3440 IF (A=53)*(A#B) PLYSND 52,0; PRINT 'G#1 (52Hz)' 3450 IF (A=54)*(A#B) PLYSND 58,0; PRINT 'A#1 (58Hz)' 3460 IF (A=55)*(A#B) PLYSND 58,0; PRINT 'Bb1 (58Hz)' 3470 IF (A=56)*(A#B) PLYSND 69,0; PRINT 'C#2 (69Hz)' 3480 IF (A=57)*(A#B) PLYSND 78,0; PRINT 'D#2 (78Hz)' 3490 IF (A=48)*(A#B) PLYSND 78,0; PRINT 'Eb2 (78Hz)' 3500 REM 'keyboard normal octave1 block1 line2' 3505 IF (A=113)*(A#B) PLYSND 33,0; PRINT 'C1 (33Hz)' 3510 IF (A=119)*(A#B) PLYSND 37,0; PRINT 'D1 (37Hz)' 3520 IF (A=101)*(A#B) PLYSND 41,0; PRINT 'E1 (41Hz)' 3530 IF (A=114)*(A#B) PLYSND 44,0; PRINT 'F1 (44Hz)' 3540 IF (A=116)*(A#B) PLYSND 49,0; PRINT 'G1 (49Hz)' 3550 IF (A=121)*(A#B) PLYSND 55,0; PRINT 'A1 (55Hz)' 3560 IF (A=117)*(A#B) PLYSND 62,0; PRINT 'B1 (62Hz)' 3570 IF (A=105)*(A#B) PLYSND 65,0; PRINT 'C2 (65Hz)' 3580 IF (A=111)*(A#B) PLYSND 73,0; PRINT 'D2 (73Hz)' 3590 IF (A=112)*(A#B) PLYSND 82,0; PRINT 'E2 (82Hz)' 3599 RETURN 3600 REM 'keyboard #/b octave1 block2 line3' 3605 IF (A=97)*(A#B) PLYSND 35,0; PRINT 'C#1 (35Hz)' 3610 IF (A=115)*(A#B) PLYSND 39,0; PRINT 'D#1 (39Hz)' 3620 IF (A=100)*(A#B) PLYSND 39,0; PRINT 'Eb1 (39Hz)' 3630 IF (A=102)*(A#B) PLYSND 46,0; PRINT 'F#1 (46Hz)' 3640 IF (A=103)*(A#B) PLYSND 52,0; PRINT 'G#1 (52Hz)' 3650 IF (A=104)*(A#B) PLYSND 58,0; PRINT 'A#1 (58Hz)' 3660 IF (A=106)*(A#B) PLYSND 58,0; PRINT 'Bb1 (58Hz)' 3670 IF (A=107)*(A#B) PLYSND 69,0; PRINT 'C#2 (69Hz)' 3680 IF (A=108)*(A#B) PLYSND 78,0; PRINT 'D#2 (78Hz)' 3690 IF (A=59)*(A#B) PLYSND 78,0; PRINT 'Eb2 (78Hz)' 3700 REM 'keyboard normal octave1 block2 line4' 3705 IF (A=122)*(A#B) PLYSND 33,0; PRINT 'C1 (33Hz)' 3710 IF (A=120)*(A#B) PLYSND 37,0; PRINT 'D1 (37Hz)' 3720 IF (A=99)*(A#B) PLYSND 41,0; PRINT 'E1 (41Hz)' 3730 IF (A=118)*(A#B) PLYSND 44,0; PRINT 'F1 (44Hz)' 3740 IF (A=98)*(A#B) PLYSND 49,0; PRINT 'G1 (49Hz)' 3750 IF (A=110)*(A#B) PLYSND 55,0; PRINT 'A1 (55Hz)' 3760 IF (A=109)*(A#B) PLYSND 62,0; PRINT 'B1 (62Hz)' 3770 IF (A=44)*(A#B) PLYSND 65,0; PRINT 'C2 (65Hz)' 3780 IF (A=46)*(A#B) PLYSND 73,0; PRINT 'D2 (73Hz)' 3790 IF (A=47)*(A#B) PLYSND 82,0; PRINT 'E2 (82Hz)' 3799 RETURN 3800 REM 'keyboard #/b octave2 block1 line1' 3805 IF (A=49)*(A#B) PLYSND 69,0; PRINT 'C#2 (69Hz)' 3810 IF (A=50)*(A#B) PLYSND 78,0; PRINT 'D#2 (78Hz)' 3820 IF (A=51)*(A#B) PLYSND 78,0; PRINT 'Eb2 (78Hz)' 3830 IF (A=52)*(A#B) PLYSND 92,0; PRINT 'F#2 (92Hz)' 3840 IF (A=53)*(A#B) PLYSND 104,0; PRINT 'G#2 (104Hz)' 3850 IF (A=54)*(A#B) PLYSND 117,0; PRINT 'A#2 (117Hz)' 3860 IF (A=55)*(A#B) PLYSND 117,0; PRINT 'Bb2 (117Hz)' 3870 IF (A=56)*(A#B) PLYSND 139,0; PRINT 'C#3 (139Hz)' 3880 IF (A=57)*(A#B) PLYSND 156,0; PRINT 'D#3 (156Hz)' 3890 IF (A=48)*(A#B) PLYSND 156,0; PRINT 'Eb3 (156Hz)' 3900 REM 'keyboard normal octave2 block1 line2' 3905 IF (A=113)*(A#B) PLYSND 65,0; PRINT 'C2 (65Hz)' 3910 IF (A=119)*(A#B) PLYSND 73,0; PRINT 'D2 (73Hz)' 3920 IF (A=101)*(A#B) PLYSND 82,0; PRINT 'E2 (82Hz)' 3930 IF (A=114)*(A#B) PLYSND 87,0; PRINT 'F2 (87Hz)' 3940 IF (A=116)*(A#B) PLYSND 98,0; PRINT 'G2 (98Hz)' 3950 IF (A=121)*(A#B) PLYSND 110,0; PRINT 'A2 (110Hz)' 3960 IF (A=117)*(A#B) PLYSND 123,0; PRINT 'B2 (123Hz)' 3970 IF (A=105)*(A#B) PLYSND 131,0; PRINT 'C3 (131Hz)' 3980 IF (A=111)*(A#B) PLYSND 147,0; PRINT 'D3 (147Hz)' 3990 IF (A=112)*(A#B) PLYSND 165,0; PRINT 'E3 (165Hz)' 3999 RETURN 4000 REM 'keyboard #/b octave2 block2 line3' 4005 IF (A=97)*(A#B) PLYSND 69,0; PRINT 'C#2 (69Hz)' 4010 IF (A=115)*(A#B) PLYSND 78,0; PRINT 'D#2 (78Hz)' 4020 IF (A=100)*(A#B) PLYSND 78,0; PRINT 'Eb2 (78Hz)' 4030 IF (A=102)*(A#B) PLYSND 92,0; PRINT 'F#2 (92Hz)' 4040 IF (A=103)*(A#B) PLYSND 104,0; PRINT 'G#2 (104Hz)' 4050 IF (A=104)*(A#B) PLYSND 117,0; PRINT 'A#2 (117Hz)' 4060 IF (A=106)*(A#B) PLYSND 117,0; PRINT 'Bb2 (117Hz)' 4070 IF (A=107)*(A#B) PLYSND 139,0; PRINT 'C#3 (139Hz)' 4080 IF (A=108)*(A#B) PLYSND 156,0; PRINT 'D#3 (156Hz)' 4090 IF (A=59)*(A#B) PLYSND 156,0; PRINT 'Eb3 (156Hz)' 4100 REM 'keyboard normal octave2 block2 line4' 4105 IF (A=122)*(A#B) PLYSND 65,0; PRINT 'C2 (65Hz)' 4110 IF (A=120)*(A#B) PLYSND 73,0; PRINT 'D2 (73Hz)' 4120 IF (A=99)*(A#B) PLYSND 82,0; PRINT 'E2 (82Hz)' 4130 IF (A=118)*(A#B) PLYSND 87,0; PRINT 'F2 (87Hz)' 4140 IF (A=98)*(A#B) PLYSND 98,0; PRINT 'G2 (98Hz)' 4150 IF (A=110)*(A#B) PLYSND 110,0; PRINT 'A2 (110Hz)' 4160 IF (A=109)*(A#B) PLYSND 123,0; PRINT 'B2 (123Hz)' 4170 IF (A=44)*(A#B) PLYSND 131,0; PRINT 'C3 (131Hz)' 4180 IF (A=46)*(A#B) PLYSND 147,0; PRINT 'D3 (147Hz)' 4190 IF (A=47)*(A#B) PLYSND 165,0; PRINT 'E3 (165Hz)' 4199 RETURN 4200 REM 'keyboard #/b octave3 block1 line1' 4205 IF (A=49)*(A#B) PLYSND 139,0; PRINT 'C#3 (139Hz)' 4210 IF (A=50)*(A#B) PLYSND 156,0; PRINT 'D#3 (156Hz)' 4220 IF (A=51)*(A#B) PLYSND 156,0; PRINT 'Eb3 (156Hz)' 4230 IF (A=52)*(A#B) PLYSND 185,0; PRINT 'F#3 (185Hz)' 4240 IF (A=53)*(A#B) PLYSND 208,0; PRINT 'G#3 (208Hz)' 4250 IF (A=54)*(A#B) PLYSND 233,0; PRINT 'A#3 (233Hz)' 4260 IF (A=55)*(A#B) PLYSND 233,0; PRINT 'Bb3 (233Hz)' 4270 IF (A=56)*(A#B) PLYSND 277,0; PRINT 'C#4 (277Hz)' 4280 IF (A=57)*(A#B) PLYSND 311,0; PRINT 'D#4 (311Hz)' 4290 IF (A=48)*(A#B) PLYSND 311,0; PRINT 'Eb4 (311Hz)' 4300 REM 'keyboard normal octave3 block1 line2' 4305 IF (A=113)*(A#B) PLYSND 131,0; PRINT 'C3 (131Hz)' 4310 IF (A=119)*(A#B) PLYSND 147,0; PRINT 'D3 (147Hz)' 4320 IF (A=101)*(A#B) PLYSND 165,0; PRINT 'E3 (165Hz)' 4330 IF (A=114)*(A#B) PLYSND 175,0; PRINT 'F3 (175Hz)' 4340 IF (A=116)*(A#B) PLYSND 196,0; PRINT 'G3 (196Hz)' 4350 IF (A=121)*(A#B) PLYSND 220,0; PRINT 'A3 (220Hz)' 4360 IF (A=117)*(A#B) PLYSND 247,0; PRINT 'B3 (247Hz)' 4370 IF (A=105)*(A#B) PLYSND 262,0; PRINT 'C4 (262Hz)' 4380 IF (A=111)*(A#B) PLYSND 294,0; PRINT 'D4 (294Hz)' 4390 IF (A=112)*(A#B) PLYSND 330,0; PRINT 'E4 (330Hz)' 4399 RETURN 4400 REM 'keyboard #/b octave3 block2 line3' 4405 IF (A=97)*(A#B) PLYSND 139,0; PRINT 'C#3 (139Hz)' 4410 IF (A=115)*(A#B) PLYSND 156,0; PRINT 'D#3 (156Hz)' 4420 IF (A=100)*(A#B) PLYSND 156,0; PRINT 'Eb3 (156Hz)' 4430 IF (A=102)*(A#B) PLYSND 185,0; PRINT 'F#3 (185Hz)' 4440 IF (A=103)*(A#B) PLYSND 208,0; PRINT 'G#3 (208Hz)' 4450 IF (A=104)*(A#B) PLYSND 233,0; PRINT 'A#3 (233Hz)' 4460 IF (A=106)*(A#B) PLYSND 233,0; PRINT 'Bb3 (233Hz)' 4470 IF (A=107)*(A#B) PLYSND 277,0; PRINT 'C#4 (277Hz)' 4480 IF (A=108)*(A#B) PLYSND 311,0; PRINT 'D#4 (311Hz)' 4490 IF (A=59)*(A#B) PLYSND 311,0; PRINT 'Eb4 (311Hz)' 4500 REM 'keyboard normal octave3 block2 line4' 4505 IF (A=122)*(A#B) PLYSND 131,0; PRINT 'C3 (131Hz)' 4510 IF (A=120)*(A#B) PLYSND 147,0; PRINT 'D3 (147Hz)' 4520 IF (A=99)*(A#B) PLYSND 165,0; PRINT 'E3 (165Hz)' 4530 IF (A=118)*(A#B) PLYSND 175,0; PRINT 'F3 (175Hz)' 4540 IF (A=98)*(A#B) PLYSND 196,0; PRINT 'G3 (196Hz)' 4550 IF (A=110)*(A#B) PLYSND 220,0; PRINT 'A3 (220Hz)' 4560 IF (A=109)*(A#B) PLYSND 247,0; PRINT 'B3 (247Hz)' 4570 IF (A=44)*(A#B) PLYSND 262,0; PRINT 'C4 (262Hz)' 4580 IF (A=46)*(A#B) PLYSND 294,0; PRINT 'D4 (294Hz)' 4590 IF (A=47)*(A#B) PLYSND 330,0; PRINT 'E4 (330Hz)' 4599 RETURN 4600 REM 'keyboard #/b octave4 block1 line1' 4605 IF (A=49)*(A#B) PLYSND 277,0; PRINT 'C#4 (277Hz)' 4610 IF (A=50)*(A#B) PLYSND 311,0; PRINT 'D#4 (311Hz)' 4620 IF (A=51)*(A#B) PLYSND 311,0; PRINT 'Eb4 (311Hz)' 4630 IF (A=52)*(A#B) PLYSND 370,0; PRINT 'F#4 (370Hz)' 4640 IF (A=53)*(A#B) PLYSND 415,0; PRINT 'G#4 (415Hz)' 4650 IF (A=54)*(A#B) PLYSND 466,0; PRINT 'A#4 (466Hz)' 4660 IF (A=55)*(A#B) PLYSND 466,0; PRINT 'Bb4 (466Hz)' 4670 IF (A=56)*(A#B) PLYSND 554,0; PRINT 'C#5 (554Hz)' 4680 IF (A=57)*(A#B) PLYSND 622,0; PRINT 'D#5 (622Hz)' 4690 IF (A=48)*(A#B) PLYSND 622,0; PRINT 'Eb5 (622Hz)' 4700 REM 'keyboard normal octave4 block1 line2' 4705 IF (A=113)*(A#B) PLYSND 262,0; PRINT 'C4 (262Hz)' 4710 IF (A=119)*(A#B) PLYSND 294,0; PRINT 'D4 (294Hz)' 4720 IF (A=101)*(A#B) PLYSND 330,0; PRINT 'E4 (330Hz)' 4730 IF (A=114)*(A#B) PLYSND 349,0; PRINT 'F4 (349Hz)' 4740 IF (A=116)*(A#B) PLYSND 392,0; PRINT 'G4 (392Hz)' 4750 IF (A=121)*(A#B) PLYSND 440,0; PRINT 'A4 (440Hz)' 4760 IF (A=117)*(A#B) PLYSND 494,0; PRINT 'B4 (494Hz)' 4770 IF (A=105)*(A#B) PLYSND 523,0; PRINT 'C5 (523Hz)' 4780 IF (A=111)*(A#B) PLYSND 587,0; PRINT 'D5 (587Hz)' 4790 IF (A=112)*(A#B) PLYSND 659,0; PRINT 'E5 (659Hz)' 4799 RETURN 4800 REM 'keyboard #/b octave4 block2 line3' 4805 IF (A=97)*(A#B) PLYSND 277,0; PRINT 'C#4 (277Hz)' 4810 IF (A=115)*(A#B) PLYSND 311,0; PRINT 'D#4 (311Hz)' 4820 IF (A=100)*(A#B) PLYSND 311,0; PRINT 'Eb4 (311Hz)' 4830 IF (A=102)*(A#B) PLYSND 370,0; PRINT 'F#4 (370Hz)' 4840 IF (A=103)*(A#B) PLYSND 415,0; PRINT 'G#4 (415Hz)' 4850 IF (A=104)*(A#B) PLYSND 466,0; PRINT 'A#4 (466Hz)' 4860 IF (A=106)*(A#B) PLYSND 466,0; PRINT 'Bb4 (466Hz)' 4870 IF (A=107)*(A#B) PLYSND 554,0; PRINT 'C#5 (554Hz)' 4880 IF (A=108)*(A#B) PLYSND 622,0; PRINT 'D#5 (622Hz)' 4890 IF (A=59)*(A#B) PLYSND 622,0; PRINT 'Eb5 (622Hz)' 4900 REM 'keyboard normal octave4 block2 line4' 4905 IF (A=122)*(A#B) PLYSND 262,0; PRINT 'C4 (262Hz)' 4910 IF (A=120)*(A#B) PLYSND 294,0; PRINT 'D4 (294Hz)' 4920 IF (A=99)*(A#B) PLYSND 330,0; PRINT 'E4 (330Hz)' 4930 IF (A=118)*(A#B) PLYSND 349,0; PRINT 'F4 (349Hz)' 4940 IF (A=98)*(A#B) PLYSND 392,0; PRINT 'G4 (392Hz)' 4950 IF (A=110)*(A#B) PLYSND 440,0; PRINT 'A4 (440Hz)' 4960 IF (A=109)*(A#B) PLYSND 494,0; PRINT 'B4 (494Hz)' 4970 IF (A=44)*(A#B) PLYSND 523,0; PRINT 'C5 (523Hz)' 4980 IF (A=46)*(A#B) PLYSND 587,0; PRINT 'D5 (587Hz)' 4990 IF (A=47)*(A#B) PLYSND 659,0; PRINT 'E5 (659Hz)' 4999 RETURN 5000 REM 'keyboard #/b octave5 block1 line1' 5005 IF (A=49)*(A#B) PLYSND 554,0; PRINT 'C#5 (554Hz)' 5010 IF (A=50)*(A#B) PLYSND 622,0; PRINT 'D#5 (622Hz)' 5020 IF (A=51)*(A#B) PLYSND 622,0; PRINT 'Eb5 (622Hz)' 5030 IF (A=52)*(A#B) PLYSND 740,0; PRINT 'F#5 (740Hz)' 5040 IF (A=53)*(A#B) PLYSND 831,0; PRINT 'G#5 (831Hz)' 5050 IF (A=54)*(A#B) PLYSND 932,0; PRINT 'A#5 (932Hz)' 5060 IF (A=55)*(A#B) PLYSND 932,0; PRINT 'Bb5 (932Hz)' 5070 IF (A=56)*(A#B) PLYSND 1109,0; PRINT 'C#6 (1109Hz)' 5080 IF (A=57)*(A#B) PLYSND 1245,0; PRINT 'D#6 (1245Hz)' 5090 IF (A=48)*(A#B) PLYSND 1245,0; PRINT 'Eb6 (1245Hz)' 5100 REM 'keyboard normal octave5 block1 line2' 5105 IF (A=113)*(A#B) PLYSND 523,0; PRINT 'C5 (523Hz)' 5110 IF (A=119)*(A#B) PLYSND 587,0; PRINT 'D5 (587Hz)' 5120 IF (A=101)*(A#B) PLYSND 659,0; PRINT 'E5 (659Hz)' 5130 IF (A=114)*(A#B) PLYSND 698,0; PRINT 'F5 (698Hz)' 5140 IF (A=116)*(A#B) PLYSND 784,0; PRINT 'G5 (784Hz)' 5150 IF (A=121)*(A#B) PLYSND 880,0; PRINT 'A5 (880Hz)' 5160 IF (A=117)*(A#B) PLYSND 988,0; PRINT 'B5 (988Hz)' 5170 IF (A=105)*(A#B) PLYSND 1047,0; PRINT 'C6 (1047Hz)' 5180 IF (A=111)*(A#B) PLYSND 1175,0; PRINT 'D6 (1175Hz)' 5190 IF (A=112)*(A#B) PLYSND 1319,0; PRINT 'E6 (1319Hz)' 5199 RETURN 5200 REM 'keyboard #/b octave5 block2 line3' 5205 IF (A=97)*(A#B) PLYSND 554,0; PRINT 'C#5 (554Hz)' 5210 IF (A=115)*(A#B) PLYSND 622,0; PRINT 'D#5 (622Hz)' 5220 IF (A=100)*(A#B) PLYSND 622,0; PRINT 'Eb5 (622Hz)' 5230 IF (A=102)*(A#B) PLYSND 740,0; PRINT 'F#5 (740Hz)' 5240 IF (A=103)*(A#B) PLYSND 831,0; PRINT 'G#5 (831Hz)' 5250 IF (A=104)*(A#B) PLYSND 932,0; PRINT 'A#5 (932Hz)' 5260 IF (A=106)*(A#B) PLYSND 932,0; PRINT 'Bb5 (932Hz)' 5270 IF (A=107)*(A#B) PLYSND 1109,0; PRINT 'C#6 (1109Hz)' 5280 IF (A=108)*(A#B) PLYSND 1245,0; PRINT 'D#6 (1245Hz)' 5290 IF (A=59)*(A#B) PLYSND 1245,0; PRINT 'Eb6 (1245Hz)' 5300 REM 'keyboard normal octave5 block2 line4' 5305 IF (A=122)*(A#B) PLYSND 523,0; PRINT 'C5 (523Hz)' 5310 IF (A=120)*(A#B) PLYSND 587,0; PRINT 'D5 (587Hz)' 5320 IF (A=99)*(A#B) PLYSND 659,0; PRINT 'E5 (659Hz)' 5330 IF (A=118)*(A#B) PLYSND 698,0; PRINT 'F5 (698Hz)' 5340 IF (A=98)*(A#B) PLYSND 784,0; PRINT 'G5 (784Hz)' 5350 IF (A=110)*(A#B) PLYSND 880,0; PRINT 'A5 (880Hz)' 5360 IF (A=109)*(A#B) PLYSND 988,0; PRINT 'B5 (988Hz)' 5370 IF (A=44)*(A#B) PLYSND 1047,0; PRINT 'C6 (1047Hz)' 5380 IF (A=46)*(A#B) PLYSND 1175,0; PRINT 'D6 (1175Hz)' 5390 IF (A=47)*(A#B) PLYSND 1319,0; PRINT 'E6 (1319Hz)' 5399 RETURN 5400 REM 'keyboard #/b octave6 block1 line1' 5405 IF (A=49)*(A#B) PLYSND 1109,0; PRINT 'C#6 (1109Hz)' 5410 IF (A=50)*(A#B) PLYSND 1245,0; PRINT 'D#6 (1245Hz)' 5420 IF (A=51)*(A#B) PLYSND 1245,0; PRINT 'Eb6 (1245Hz)' 5430 IF (A=52)*(A#B) PLYSND 1480,0; PRINT 'F#6 (1480Hz)' 5440 IF (A=53)*(A#B) PLYSND 1661,0; PRINT 'G#6 (1661Hz)' 5450 IF (A=54)*(A#B) PLYSND 1865,0; PRINT 'A#6 (1865Hz)' 5460 IF (A=55)*(A#B) PLYSND 1865,0; PRINT 'Bb6 (1865Hz)' 5470 IF (A=56)*(A#B) PLYSND 2217,0; PRINT 'C#7 (2217Hz)' 5480 IF (A=57)*(A#B) PLYSND 2489,0; PRINT 'D#7 (2489Hz)' 5490 IF (A=48)*(A#B) PLYSND 2489,0; PRINT 'Eb7 (2489Hz)' 5500 REM 'keyboard normal octave6 block1 line2' 5505 IF (A=113)*(A#B) PLYSND 1047,0; PRINT 'C6 (1047Hz)' 5510 IF (A=119)*(A#B) PLYSND 1175,0; PRINT 'D6 (1175Hz)' 5520 IF (A=101)*(A#B) PLYSND 1319,0; PRINT 'E6 (1319Hz)' 5530 IF (A=114)*(A#B) PLYSND 1397,0; PRINT 'F6 (1397Hz)' 5540 IF (A=116)*(A#B) PLYSND 1568,0; PRINT 'G6 (1568Hz)' 5550 IF (A=121)*(A#B) PLYSND 1760,0; PRINT 'A6 (1760Hz)' 5560 IF (A=117)*(A#B) PLYSND 1976,0; PRINT 'B6 (1976Hz)' 5570 IF (A=105)*(A#B) PLYSND 2093,0; PRINT 'C7 (2093Hz)' 5580 IF (A=111)*(A#B) PLYSND 2349,0; PRINT 'D7 (2349Hz)' 5590 IF (A=112)*(A#B) PLYSND 2637,0; PRINT 'E7 (2637Hz)' 5599 RETURN 5600 REM 'keyboard #/b octave6 block2 line3' 5605 IF (A=97)*(A#B) PLYSND 1109,0; PRINT 'C#6 (1109Hz)' 5610 IF (A=115)*(A#B) PLYSND 1245,0; PRINT 'D#6 (1245Hz)' 5620 IF (A=100)*(A#B) PLYSND 1245,0; PRINT 'Eb6 (1245Hz)' 5630 IF (A=102)*(A#B) PLYSND 1480,0; PRINT 'F#6 (1480Hz)' 5640 IF (A=103)*(A#B) PLYSND 1661,0; PRINT 'G#6 (1661Hz)' 5650 IF (A=104)*(A#B) PLYSND 1865,0; PRINT 'A#6 (1865Hz)' 5660 IF (A=106)*(A#B) PLYSND 1865,0; PRINT 'Bb6 (1865Hz)' 5670 IF (A=107)*(A#B) PLYSND 2217,0; PRINT 'C#7 (2217Hz)' 5680 IF (A=108)*(A#B) PLYSND 2489,0; PRINT 'D#7 (2489Hz)' 5690 IF (A=59)*(A#B) PLYSND 2489,0; PRINT 'Eb7 (2489Hz)' 5700 REM 'keyboard normal octave6 block2 line4' 5705 IF (A=122)*(A#B) PLYSND 1047,0; PRINT 'C6 (1047Hz)' 5710 IF (A=120)*(A#B) PLYSND 1175,0; PRINT 'D6 (1175Hz)' 5720 IF (A=99)*(A#B) PLYSND 1319,0; PRINT 'E6 (1319Hz)' 5730 IF (A=118)*(A#B) PLYSND 1397,0; PRINT 'F6 (1397Hz)' 5740 IF (A=98)*(A#B) PLYSND 1568,0; PRINT 'G6 (1568Hz)' 5750 IF (A=110)*(A#B) PLYSND 1760,0; PRINT 'A6 (1760Hz)' 5760 IF (A=109)*(A#B) PLYSND 1976,0; PRINT 'B6 (1976Hz)' 5770 IF (A=44)*(A#B) PLYSND 2093,0; PRINT 'C7 (2093Hz)' 5780 IF (A=46)*(A#B) PLYSND 2349,0; PRINT 'D7 (2349Hz)' 5790 IF (A=47)*(A#B) PLYSND 2637,0; PRINT 'E7 (2637Hz)' 5799 RETURN 5800 REM 'keyboard #/b octave7 block1 line1' 5805 IF (A=49)*(A#B) PLYSND 2217,0; PRINT 'C#7 (2217Hz)' 5810 IF (A=50)*(A#B) PLYSND 2489,0; PRINT 'D#7 (2489Hz)' 5820 IF (A=51)*(A#B) PLYSND 2489,0; PRINT 'Eb7 (2489Hz)' 5830 IF (A=52)*(A#B) PLYSND 2960,0; PRINT 'F#7 (2960Hz)' 5840 IF (A=53)*(A#B) PLYSND 3322,0; PRINT 'G#7 (3322Hz)' 5850 IF (A=54)*(A#B) PLYSND 3729,0; PRINT 'A#7 (3729Hz)' 5860 IF (A=55)*(A#B) PLYSND 3729,0; PRINT 'Bb7 (3729Hz)' 5870 IF (A=56)*(A#B) PLYSND 4435,0; PRINT 'C#8 (4435Hz)' 5880 IF (A=57)*(A#B) PLYSND 4978,0; PRINT 'D#8 (4978Hz)' 5890 IF (A=48)*(A#B) PLYSND 4978,0; PRINT 'Eb8 (4978Hz)' 5900 REM 'keyboard normal octave7 block1 line2' 5905 IF (A=113)*(A#B) PLYSND 2093,0; PRINT 'C7 (2093Hz)' 5910 IF (A=119)*(A#B) PLYSND 2349,0; PRINT 'D7 (2349Hz)' 5920 IF (A=101)*(A#B) PLYSND 2637,0; PRINT 'E7 (2637Hz)' 5930 IF (A=114)*(A#B) PLYSND 2794,0; PRINT 'F7 (2794Hz)' 5940 IF (A=116)*(A#B) PLYSND 3136,0; PRINT 'G7 (3136Hz)' 5950 IF (A=121)*(A#B) PLYSND 3520,0; PRINT 'A7 (3520Hz)' 5960 IF (A=117)*(A#B) PLYSND 3951,0; PRINT 'B7 (3951Hz)' 5970 IF (A=105)*(A#B) PLYSND 4186,0; PRINT 'C8 (4186Hz)' 5980 IF (A=111)*(A#B) PLYSND 4699,0; PRINT 'D8 (4699Hz)' 5990 IF (A=112)*(A#B) PLYSND 5274,0; PRINT 'E8 (5274Hz)' 5999 RETURN 6000 REM 'keyboard #/b octave7 block2 line3' 6005 IF (A=97)*(A#B) PLYSND 2217,0; PRINT 'C#7 (2217Hz)' 6010 IF (A=115)*(A#B) PLYSND 2489,0; PRINT 'D#7 (2489Hz)' 6020 IF (A=100)*(A#B) PLYSND 2489,0; PRINT 'Eb7 (2489Hz)' 6030 IF (A=102)*(A#B) PLYSND 2960,0; PRINT 'F#7 (2960Hz)' 6040 IF (A=103)*(A#B) PLYSND 3322,0; PRINT 'G#7 (3322Hz)' 6050 IF (A=104)*(A#B) PLYSND 3729,0; PRINT 'A#7 (3729Hz)' 6060 IF (A=106)*(A#B) PLYSND 3729,0; PRINT 'Bb7 (3729Hz)' 6070 IF (A=107)*(A#B) PLYSND 4435,0; PRINT 'C#8 (4435Hz)' 6080 IF (A=108)*(A#B) PLYSND 4978,0; PRINT 'D#8 (4978Hz)' 6090 IF (A=59)*(A#B) PLYSND 4978,0; PRINT 'Eb8 (4978Hz)' 6100 REM 'keyboard normal octave7 block2 line4' 6105 IF (A=122)*(A#B) PLYSND 2093,0; PRINT 'C7 (2093Hz)' 6110 IF (A=120)*(A#B) PLYSND 2349,0; PRINT 'D7 (2349Hz)' 6120 IF (A=99)*(A#B) PLYSND 2637,0; PRINT 'E7 (2637Hz)' 6130 IF (A=118)*(A#B) PLYSND 2794,0; PRINT 'F7 (2794Hz)' 6140 IF (A=98)*(A#B) PLYSND 3136,0; PRINT 'G7 (3136Hz)' 6150 IF (A=110)*(A#B) PLYSND 3520,0; PRINT 'A7 (3520Hz)' 6160 IF (A=109)*(A#B) PLYSND 3951,0; PRINT 'B7 (3951Hz)' 6170 IF (A=44)*(A#B) PLYSND 4186,0; PRINT 'C8 (4186Hz)' 6180 IF (A=46)*(A#B) PLYSND 4699,0; PRINT 'D8 (4699Hz)' 6190 IF (A=47)*(A#B) PLYSND 5274,0; PRINT 'E8 (5274Hz)' 6199 RETURN 6200 REM 'keyboard #/b octave8 block1 line1' 6205 IF (A=49)*(A#B) PLYSND 4435,0; PRINT 'C#8 (4435Hz)' 6210 IF (A=50)*(A#B) PLYSND 4978,0; PRINT 'D#8 (4978Hz)' 6220 IF (A=51)*(A#B) PLYSND 4978,0; PRINT 'Eb8 (4978Hz)' 6230 IF (A=52)*(A#B) PLYSND 5920,0; PRINT 'F#8 (5920Hz)' 6240 IF (A=53)*(A#B) PLYSND 6645,0; PRINT 'G#8 (6645Hz)' 6250 IF (A=54)*(A#B) PLYSND 7459,0; PRINT 'A#8 (7459Hz)' 6260 IF (A=55)*(A#B) PLYSND 7459,0; PRINT 'Bb8 (7459Hz)' 6270 IF (A=56)*(A#B) PLYSND 17,0; PRINT 'C#0 (17Hz)' 6280 IF (A=57)*(A#B) PLYSND 19,0; PRINT 'D#0 (19Hz)' 6290 IF (A=48)*(A#B) PLYSND 19,0; PRINT 'Eb0 (19Hz)' 6300 REM 'keyboard normal octave8 block1 line2' 6305 IF (A=113)*(A#B) PLYSND 4186,0; PRINT 'C8 (4186Hz)' 6310 IF (A=119)*(A#B) PLYSND 4699,0; PRINT 'D8 (4699Hz)' 6320 IF (A=101)*(A#B) PLYSND 5274,0; PRINT 'E8 (5274Hz)' 6330 IF (A=114)*(A#B) PLYSND 5588,0; PRINT 'F8 (5588Hz)' 6340 IF (A=116)*(A#B) PLYSND 6272,0; PRINT 'G8 (6272Hz)' 6350 IF (A=121)*(A#B) PLYSND 7040,0; PRINT 'A8 (7040Hz)' 6360 IF (A=117)*(A#B) PLYSND 7902,0; PRINT 'B8 (7902Hz)' 6370 IF (A=105)*(A#B) PLYSND 16,0; PRINT 'C0 (16Hz)' 6380 IF (A=111)*(A#B) PLYSND 18,0; PRINT 'D0 (18Hz)' 6390 IF (A=112)*(A#B) PLYSND 21,0; PRINT 'E0 (21Hz)' 6399 RETURN 6400 REM 'keyboard #/b octave8 block2 line3' 6405 IF (A=97)*(A#B) PLYSND 4435,0; PRINT 'C#8 (4435Hz)' 6410 IF (A=115)*(A#B) PLYSND 4978,0; PRINT 'D#8 (4978Hz)' 6420 IF (A=100)*(A#B) PLYSND 4978,0; PRINT 'Eb8 (4978Hz)' 6430 IF (A=102)*(A#B) PLYSND 5920,0; PRINT 'F#8 (5920Hz)' 6440 IF (A=103)*(A#B) PLYSND 6645,0; PRINT 'G#8 (6645Hz)' 6450 IF (A=104)*(A#B) PLYSND 7459,0; PRINT 'A#8 (7459Hz)' 6460 IF (A=106)*(A#B) PLYSND 7459,0; PRINT 'Bb8 (7459Hz)' 6470 IF (A=107)*(A#B) PLYSND 17,0; PRINT 'C#0 (17Hz)' 6480 IF (A=108)*(A#B) PLYSND 19,0; PRINT 'D#0 (19Hz)' 6490 IF (A=59)*(A#B) PLYSND 19,0; PRINT 'Eb0 (19Hz)' 6500 REM 'keyboard normal octave8 block2 line4' 6505 IF (A=122)*(A#B) PLYSND 4186,0; PRINT 'C8 (4186Hz)' 6510 IF (A=120)*(A#B) PLYSND 4699,0; PRINT 'D8 (4699Hz)' 6520 IF (A=99)*(A#B) PLYSND 5274,0; PRINT 'E8 (5274Hz)' 6530 IF (A=118)*(A#B) PLYSND 5588,0; PRINT 'F8 (5588Hz)' 6540 IF (A=98)*(A#B) PLYSND 6272,0; PRINT 'G8 (6272Hz)' 6550 IF (A=110)*(A#B) PLYSND 7040,0; PRINT 'A8 (7040Hz)' 6560 IF (A=109)*(A#B) PLYSND 7902,0; PRINT 'B8 (7902Hz)' 6570 IF (A=44)*(A#B) PLYSND 16,0; PRINT 'C0 (16Hz)' 6580 IF (A=46)*(A#B) PLYSND 18,0; PRINT 'D0 (18Hz)' 6590 IF (A=47)*(A#B) PLYSND 21,0; PRINT 'E0 (21Hz)' 6599 RETURN