100 :: 110 REMark QL_TUNE_bas, by S.Poole, v2sept2003. 120 REMark Unreliable when EXECed under SMSQ. 130 : 140 CLEAR: OPEN_NEW#1,con_32: WINDOW 512,256,0,0: CLS 150 init: pr=0: main 160 : 170 DEFine PROCedure main 180 REPeat loop 190 LIST#1,230 TO 340: PRINT\\ 'Which Tune no? (or any key to quit)' 200 i$=INKEY$(#1,-1): tune='0'&i$ 210 : 220 SELect ON tune 230 =1: RESTORE 910 240 tp=moderato: play minim: REMark The Elfin Knight 250 =2: RESTORE 1010 260 tp=moderato: play crochet: REMark The Two Brothers 270 =3: RESTORE 1110 280 tp=moderato: play minim: REMark The Wife of Ushers Well 290 =4: RESTORE 1220 300 tp=moderato: play crochet: REMark The Cuckoo 310 =5: RESTORE 1300 320 tp=moderato: play minim: REMark Katie Morey 330 =6: RESTORE 1420 340 tp=moderato: play crochet: REMark The Bridle and Saddle 350 =REMAINDER : CLS: RETurn 360 END SELect : CLS 370 END REPeat loop 380 END DEFine 390 : 400 DEFine PROCedure play(time_signature) 410 tempo tp: READ notes,name$ 420 AT 15,0: CLS 3: PRINT !!name$ 430 FOR f=1 TO notes 440 READ nbr: IF pr: AT 1,0: PRINT !nbr, 450 READ dr : IF pr: AT 2,0: PRINT !dr, 460 READ pt : IF pr: AT 3,0: PRINT !pt, 470 IF (pt=ps) THEN 480 PAUSE dr 490 ELSE 500 BEEP 0,pt: PAUSE dr-1: BEEP: PAUSE 1 510 END IF : IF pr: PAUSE -1 520 END FOR f 530 END DEFine 540 : 550 DEFine PROCedure init 560 REMark e.g: c0 is highest note, d3 is in lowest octave: 570 REMark e.g: ab2 is A_sharp or B_flat in second octave: 580 c0=0: b1=1: a1=2: ga1=3: g1=4: fg1=5: f1=6: e1=7: de1=8: d1=9: cd1=10 590 c1=11: b2=12: ab2=14: a2=15: ga2=17: g2=18: fg2=20: f2=22: e2=24 600 de2=26: d2=28: cd2=30: c2=32: b3=35: ab3=38: a3=41: ca3=44: g3=47 610 fg3=50: f3=54: e3=57: de3=61: d3=65: gd3=70: c3=75: ps=-1 620 REMark ps is a rest_note, sec is a 50-unit pause for inkey$: 640 REMark These successive tempos are approximate: 650 prestissimo=1: presto=2: allegro=3: allegretto=4: moderato=5 660 andante=6: andantino=7: adagio=8: larghetto=9: largo=10 665 crochet=1: minim=2: REMark Time signatures: crochet (3)/4 : minim (3)/2 670 END DEFine 680 : 690 DEFine PROCedure tempo(temp) 700 tmpo=temp: sec=50*time_signature 710 SELect ON tmpo 720 =1 : value=sec*sec/204 730 =2 : value=sec*sec/184 740 =3 : value=sec*sec/144 750 =4 : value=sec*sec/134 760 =5 : value=sec*sec/124 770 =6 : value=sec*sec/114 780 =7 : value=sec*sec/103 790 =8 : value=sec*sec/92 800 =9 : value=sec*sec*.71 805 =10: value=sec 810 =REMAINDER : STOP 820 END SELect 830 REMark semibreve,minim,crochet,quaver,semiquaver,demisemiquaver: 840 sbv=value: mim=sbv/2: crt=sbv/4 850 qvr=sbv/8: sqv=sbv/16: dsq=sbv/32 860 REMark dotted notes: 870 sbv_=sbv*1.5: mim_=mim*1.5: crt_=crt*1.5 880 qvr_=qvr*1.5: sqv_=sqv*1.5 890 END DEFine 900 : 910 DATA 41,'The Elfin Knight' 920 DATA 1,crt,d2, 2,crt,b2, 3,crt,d1, 4,crt,b2, 5,crt,a2, 6,crt,g2 930 DATA 7,crt,e2, 8,crt,g2, 9,crt,g2, 10,crt,e2, 11,mim_,d2 940 DATA 12,crt,b3, 13,crt,d2, 14,crt,d2, 15,mim,d2, 16,crt,d2 950 DATA 17,crt,e2, 18,crt,g2, 19,crt,g2, 20,mim,a2, 21,crt,g2 960 DATA 22,crt,b2, 23,crt,d1, 24,crt,b2, 25,crt,a2, 26,crt,g2 970 DATA 27,crt,g2, 28,crt,a2, 29,crt,g2, 30,crt,e2, 31,mim,d2 980 DATA 32,crt,d2, 33,mim,e2, 34,crt,g2, 35,crt,a2, 36,crt,b2 990 DATA 37,crt,a2, 38,crt,g2, 39,crt,g2, 40,crt,e2, 41,mim,d2 1000 : 1010 DATA 38,'The Two Brothers' 1020 DATA 1,crt,d2, 2,mim,g2, 3,qvr,a2, 4,qvr,g2, 5,crt,f2, 6,crt,f2 1030 DATA 7,crt,d2, 8,crt,e2, 9,crt,e2, 10,crt,f2, 11,mim,d2, 12,crt,a2 1040 DATA 13,crt,d1, 14,crt,d1, 15,qvr,e1, 16,qvr,d1, 17,qvr,c1 1050 DATA 18,crt_,a2, 19,crt,c1, 20,mim,d1, 21,crt,a2, 22,mim,d1 1060 DATA 23,crt,e1, 24,qvr,c1, 25,crt_,a2, 26,qvr,d1, 27,qvr,d1 1070 DATA 28,mim,a2, 29,crt,d2, 30,mim,f2, 31,crt,d2, 32,mim,a2 1080 DATA 33,qvr,a2, 34,qvr,g2, 35,crt,f2, 36,crt,d2, 37,crt,e2 1090 DATA 38,mim,d2 1100 : 1110 DATA 48,"The Wife of Usher's Well" 1120 DATA 1,qvr,g2, 2,qvr,a2, 3,qvr,b2, 4,qvr,b2, 5,qvr,b2, 6,qvr,a2 1130 DATA 7,mim,b2, 8,qvr,b2, 9,qvr,a2, 10,qvr,g2, 11,qvr,b2, 12,qvr,a2 1140 DATA 13,qvr,g2, 14,crt,d2, 15,mim_,e2, 16,qvr,g2, 17,qvr,a2 1150 DATA 18,crt,b2, 19,mim,e1, 20,crt,e1, 21,crt,b2, 22,crt,d1, 23,crt,b2 1160 DATA 24,crt,a2, 25,mim_,b2, 26,crt,g2, 27,crt,b2, 28,crt,d1 1170 DATA 29,qvr,e1, 30,qvr,e1, 31,mim_,d1, 32,qvr,g2, 33,qvr,b2 1180 DATA 34,crt,d1, 35,crt,b2, 36,crt,g2, 37,mim_,e2, 38,crt,g2 1190 DATA 39,crt,a2, 40,mim,b2, 41,crt,b2, 42,crt,a2, 43,crt,b2 1200 DATA 44,crt,a2, 45,crt,g2, 46,crt,e2, 47,crt,d2, 48,mim_,e2 1210 : 1220 DATA 32,"The Cuckoo" 1230 DATA 1,crt,d2, 2,crt,e2, 3,crt_,b2, 4,qvr,c1, 5,qvr,d1, 6,qvr,b2 1240 DATA 7,qvr,a2, 8,qvr,f2, 9,mim,d2, 10,crt,d2, 11,crt,e2, 12,crt_,b2 1250 DATA 13,qvr,a2, 14,crt,c1, 15,crt,b2, 16,mim,a2, 17,crt,a2 1260 DATA 18,crt,b2, 19,crt_,e2, 20,qvr,d2, 21,crt,f2, 22,crt,d2 1270 DATA 23,crt,d2, 24,crt,b3, 25,mim,d2, 26,crt,d2, 27,crt,e2 1280 DATA 28,crt,f2, 29,mim,a2, 30,crt,g2, 31,crt,f2, 32,mim_,e2 1290 : 1300 DATA 48,"Katie Morey" 1310 DATA 1,qvr,d2, 2,qvr,b2, 3,qvr,c1, 4,crt_,d1, 5,qvr,d1, 6,qvr,c1 1320 DATA 7,qvr,b2, 8,crt_,c1, 9,qvr,a2, 10,qvr,b2, 11,qvr,c1 1330 DATA 12,crt_,d1, 13,qvr,b2, 14,qvr,c1, 15,crt_,d1, 16,qvr,ps 1340 DATA 17,qvr,d2, 18,qvr,b2, 19,qvr,c1, 20,crt_,d1, 21,qvr,d1 1350 DATA 22,qvr,c1, 23,qvr,a2, 24,crt_,c1, 25,qvr,d1, 26,qvr,b2 1360 DATA 27,qvr,a2, 28,crt_,b2, 29,qvr,a2, 30,qvr,g2, 31,crt_,b2 1370 DATA 32,qvr,ps, 33,qvr,b2, 34,qvr,g2, 35,qvr,g2, 36,qvr,d2 1380 DATA 37,qvr,d2, 38,crt_,b2, 39,qvr,a2, 40,crt,g2, 41,qvr,b2 1390 DATA 42,qvr,a2, 43,qvr,g2, 44,qvr,f2, 45,qvr,g2, 46,qvr,a2 1400 DATA 47,mim,g2, 48,qvr,ps 1410 : 1420 DATA 62,"The Bridle and Saddle" 1430 DATA 1,crt,c1, 2,crt,d1, 3,qvr,c1, 4,qvr,c1, 5,crt,a2, 6,crt,f2 1440 DATA 7,crt,g2, 8,qvr,f2, 9,qvr,f2, 10,mim,d2, 11,crt,c2, 12,crt,d2 1450 DATA 13,crt_,f2, 14,qvr,g2, 15,mim,a2, 16,mim,f2, 17,mim,a2 1460 DATA 18,mim,f2, 19,qvr,a2, 20,qvr,a2, 21,crt,a2, 22,crt,g2 1470 DATA 23,crt,f2, 24,crt,a2, 25,mim,c1, 26,crt,c1, 27,crt,d1 1480 DATA 28,qvr,c1, 29,qvr,c1, 30,crt,a2, 31,crt,f2, 32,crt,g2 1490 DATA 33,qvr,f2, 34,qvr,f2, 35,mim,d2, 36,crt,c2, 37,crt,f2 1500 DATA 38,mim,f2, 39,crt,g2, 40,crt,a2, 41,mim,f2, 42,mim,a2 1510 DATA 43,mim,f2, 44,qvr,a2, 45,qvr,a2, 46,crt,a2, 47,crt,g2 1520 DATA 48,crt,f2, 49,crt,a2, 50,mim,c1, 51,qvr,c1, 52,qvr,c1 1530 DATA 53,crt,d1, 54,qvr,c1, 55,qvr,c1, 56,crt,a2, 57,qvr,f2 1540 DATA 58,qvr,f2, 59,qvr,g2, 60,qvr,g2, 61,crt,f2, 62,crt,d2 1550 ::