10 NT=0:FORT=0TO9:READCO(T),CH(T):NEXT 20 DATA 1,18,8,6,4,7,2,1,14,3,5,4,12,6,9,7,5,1,6,3 30 POKE53280,6:POKE53281,15 40 PRINT"[147][144]","THE GRAND IMPROVISOR":PRINT"","  SHORT-TUNES " 50 PRINT" TYPE F1[146] KEY, AND C-64 GOES RANDOM.":REM FLAG=0 AND RA=1 60 PRINT"[151] TYPE F3[146] KEY, AND C-64 WILL COMPOSE.":REM IF TUNE=0 70 PRINT" TYPE F5[146] KEY, AND YOU CAN PLAY ALONG.":FLAG=0:REM AND TUNE=0 80 PRINT"[129] TYPE F7[146] KEY, AND YOU WILL HEAR TUNES.":TUNE=1:PRINT:REM FLAG=0 90 PRINT"[154] THESE ARE THE TUNES WHICH I MEMORIZED." 100 DATA 144,31,5,28,144,31,156,144,31,30,5,28,156,31,30,5 110 DIMH1(32),L1(32),H2(32),L2(32),IN(16),TUNES(512) 120 PRINT"[151]":GOTO330 130 REM ARRAY VALUES FOR ACCOMPANIMENT TO THE IMPROVISATIONS 140 DATA0,0,0,0,5,152,11,48,14,24,22,96,4,48,8,97,14,25,22,96 150 DATA5,152,11,48,14,24,22,96,4,48,8,97,4,112,8,225 160 DATA4,180,9,104,15,210,22,96,3,35,6,71,15,210,22,96 170 DATA4,180,9,104,15,210,22,96,3,35,6,71,3,244,7,233 180 DATA4,48,8,97,14,239,21,31,3,35,6,71,14,239,21,31 190 DATA4,48,8,97,14,239,21,31,3,35,6,71,3,187,7,119 200 DATA4,48,16,195,4,180,14,239,4,251,14,24,5,71,12,143 210 DATA5,152,11,48,4,48,14,24,5,152,11,48,0,0,0,0 220 REM A SHORT ROUTINE TO GIVE THE C-64 A LITTLE A.I. IN MUSIC COMPOSITION 230 AI=INT(RND(0)*23)+1:NE=131 240 IFAI>16THENON(AI-16)GOTO260,270,280,290,300,310,320 250 R=TU((AI*16)+P):RETURN 260 R=0:RETURN 270 R=2:RETURN 280 R=3:RETURN 290 R=5:RETURN 300 R=7:RETURN 310 R=8:RETURN 320 R=0:RETURN 330 PRINT"[154] I AM MEMORIZING SIXTEEN TUNES NOW. " 340 FORK=1TO16:READIN(K):NEXT 350 FORI=0TO32:READH1(I),L1(I),H2(I),L2(I):NEXTI 360 FORT=0TO9:READH3(T),L3(T):NEXTT 370 FORTN=1TO512:READTUNES(TN):NEXT:TUNE=1 380 FORS=1TO20:POKE1823+S,32:POKE1863-S,32:FORD=1TO33:NEXTD:NEXTS 390 L1=54272:L2=54279:L3=54286 400 H1=L1+1:H2=L2+1:H3=L3+1 410 V1=L1+4:V2=L2+4:V3=L3+4 420 POKE54296,12:CH=1874:CO=56146 430 POKEV1+1,10:POKEV1+2,70 440 POKEV2+1,10:POKEV2+2,70 450 POKEV3+1,10:POKEV3+2,75:POKEV3-1,8 460 P=1:REM PLAY ACCOMPANIMENT AND GET MELODY NOTE FROM MELODY ARRAY 470 Q=Q+1:IFQ=17THENFORT=1TO1111:NEXT:POKE53281,7:GOTO930 480 PRINT"[144] 0 1 2 3 4 5 6 7 8 9 " 490 PRINT"" 500 PRINT"[154]"SPC(7)" NOW PLAYING IMPROV."CHR$(IN(Q))" #";Q;"[157] " 510 POKEV1,32:POKEV2,32:POKEV3,64:NT=NT+1 520 GETA$:NE=150:IFA$=""THENA$="5" 530 IFA$="[136]"THENFLAG=0:TUNE=1:RA=0:PRINT"[129]","  SHORT-TUNES ":GOSUB920 540 IFA$="[135]"THENFLAG=0:TUNE=0:RA=0:PRINT"","  NOW YOU PLAY. ":GOSUB910 550 IFA$="[134]"THENFLAG=1:TUNE=0:RA=0:PRINT"[151]","  C-64 COMPOSES.":GOSUB900 560 IFA$="[133]"THENFLAG=0:TUNE=0:RA=1:PRINT"","  C-64 RANDOM. ":GOSUB890 570 R=VAL(A$):IFFLAGTHENGOSUB230 580 IFRATHENR=INT(RND(1)*10) 590 IFTUNETHENR=TUNES(NT) 600 IFR>9THENR=0 610 POKEH1,H1(P):POKEL1,L1(P):POKEH2,H2(P):POKEL2,L2(P) 620 IFP=31THENR=1 630 IFP=32THENR=0 640 IFH3(R)=0GOTO660 650 POKEH3,H3(R):POKEL3,L3(R):POKEV3,65 660 POKEV1,33:POKEV2,33:POKECH+40+(R*2),CH(R):POKECO+40+(R*2),CO(R) 670 FORT=1TONE:NEXT 680 POKECH+40+(R*2),32:P=P+1:IFP=33THENP=1:GOTO470 690 A$="":GOTO510 700 DATA0,0,22,96,25,30,28,49,33,135,37,162,44,193,50,60,56,99,67,15 710 REM EACH LINE OF DATA CONTAINS THE NOTES FOR ONE LITTLE IMPROV.--16 DIFF. 720 DATA4,4,0,5,6,7,8,0,7,7,0,8,7,6,5,0,4,4,0,2,4,7,9,0,9,8,7,4,6,0,1,0 730 DATA4,5,6,5,4,5,6,5,7,8,7,8,7,0,0,8,7,8,9,8,7,8,9,8,6,7,6,5,6,0,1,0 740 DATA4,4,5,4,8,8,7,6,7,8,7,6,5,0,6,5,4,9,7,9,4,9,7,0,9,9,4,4,6,0,1,0 750 DATA1,2,3,4,1,2,3,0,7,6,5,0,7,6,5,0,4,4,9,9,4,4,7,0,9,8,7,8,6,4,1,0 760 DATA4,4,3,5,4,0,3,0,7,7,6,5,7,0,5,0,4,4,2,3,4,4,4,0,9,9,8,7,8,6,1,0 770 DATA4,4,8,6,4,4,8,6,7,7,6,5,7,8,7,0,4,4,9,0,9,9,4,0,7,4,5,4,3,1,1,0 780 DATA1,2,3,4,5,6,7,8,7,0,5,0,7,6,5,0,4,9,7,9,4,0,7,0,9,7,4,5,6,0,1,0 790 DATA3,3,3,0,3,3,3,0,2,2,2,3,2,0,5,0,4,4,4,0,9,9,9,0,4,9,4,9,6,4,1,0 800 DATA3,4,5,3,4,5,4,3,2,3,2,7,2,0,5,0,4,9,4,7,9,7,4,0,9,8,7,5,6,0,1,0 810 DATA4,4,5,4,8,8,7,6,7,7,5,5,7,0,6,5,4,2,4,5,4,2,4,0,9,4,5,4,3,1,1,0 820 DATA3,0,3,2,1,0,1,0,2,3,2,5,2,3,2,0,4,4,4,9,4,4,4,0,9,8,7,4,6,6,1,0 830 DATA8,9,9,0,8,7,6,0,7,8,9,8,7,0,5,0,4,4,5,4,9,0,4,0,7,6,5,4,6,4,1,0 840 DATA5,5,4,0,5,5,4,0,3,3,2,0,3,3,2,0,4,4,7,0,4,4,9,0,4,4,5,4,3,1,1,0 850 DATA1,3,4,5,6,5,4,3,2,3,2,0,7,8,7,0,4,5,4,9,4,5,4,0,8,7,6,5,6,0,1,0 860 DATA9,8,7,6,5,4,3,4,2,3,4,5,7,6,5,0,9,4,4,5,4,9,4,0,9,8,7,4,6,6,1,0 870 DATA4,5,4,6,4,5,4,0,2,3,2,5,2,3,2,0,4,5,4,7,4,4,4,0,9,8,7,4,5,6,1,0 880 REM INSTRUCTIONS FOR EACH FUNCTION 890 PRINT" NOTE SEQUENCES USING A RANDOM FUNCTION.":RETURN 900 PRINT"[151] THE C-64'S A. I. IN MUSIC COMPOSITION. ":RETURN 910 PRINT" NUMBERS FOR NOTES - LETTERS FOR RESTS. ":RETURN 920 PRINT"[154] THESE ARE THE TUNES WHICH I MEMORIZED. ":RETURN 930 PRINT"[147]THAT'S ALL THE GRAND IMPROVISOR" 940 PRINT"WILL PLAY FOR NOW."