home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / comdore / 64music / keybrd (.txt) < prev    next >
Commodore BASIC  |  1989-01-27  |  7KB  |  180 lines

  1. 200 GOTO460
  2. 230 REM **********************
  3. 231 REM ** SLIDE SUBROUTINE **
  4. 232 REM **********************
  5. 240 IFRA<0THENRA=R
  6. 250 RB=R:T=S+V*Z7:POKEVN,V*Z7:POKENL,FL(RA):POKENH,FH(RA):SYS S2:POKET+Z4,WV+Z1
  7. 260 FORI=RATORBSTEPSGN(RB-RA)/2:POKET,FL(I):POKET+1,FH(I):NEXT
  8. 270 IFPEEK(IK)=JANDPEEK(IK)-64THEN270
  9. 280 RA=RB:POKET+Z4,WV+P:V=V+MN*(Z1+Z3*(V=Z2)):RETURN
  10. 300 REM **********************
  11. 301 REM ** CHORD SUBROUTINE **
  12. 302 REM **********************
  13. 310 POKEBF,Z0:FORI=Z0TOZ2:A=R+C(C1,C2,I):POKEVN,I*Z7:POKENL,FL(A)
  14. 320 POKENH,FH(A):SYSS2:NEXT:POKES+Z4,WV+Z1:POKES+11,WV+Z1:POKES+18,WV+Z1
  15. 330 IFPEEK(IK)=JANDPEEK(IK)-64THEN330
  16. 340 POKES+Z4,WV+P:POKES+11,WV+P:POKES+18,WV+P:RETURN
  17. 360 REM ***************************
  18. 361 REM ** POLYPHONIC SUBROUTINE **
  19. 362 REM ***************************
  20. 370 A=PEEK(IK):SYSS1:J=PEEK(ET):IFJ=Z0ORA=ZSTHENRETURN
  21. 380 FORI=Z1TOJ:R=K(PEEK(ET+I))+OC:IFR=OCTHENNEXT:RETURN
  22. 390 T(I)=V*Z7:POKEVN,T(I):POKENL,FL(R):POKENH,FH(R):SYSS2
  23. 400 IFMNTHEN V=V+Z1:IFV=Z3THENV=Z0
  24. 410 NEXT:FORI=Z1TOJ:POKES+T(I)+Z4,WV+Z1:NEXT
  25. 420 SYSS1:IFJ=PEEK(ET)ANDA=PEEK(IK)THEN420
  26. 430 FORI=Z1TOJ:POKES+T(I)+Z4,WV+P:NEXT:GOTO370
  27. 460 REM *************************
  28. 461 REM ** INTIALIZE VARIABLES **
  29. 462 REM *************************
  30. 470 PRINT"[147]" CHR$(142);CHR$(8);:POKE53280,0:POKE53281,0
  31. 480 FORI=1TO39:SP$=SP$+" ":LN$=LN$+"#":NEXT
  32. 490 PRINT"OCTAVE=5 VOICE= 1 :C:S:M:[146] :P[146]: VOLUME=10"LN$
  33. 500 POKE214,23:PRINT:PRINTTAB(15)"MUSICMASTER
  34. 510 A$[178]"PLEASE STAND BY":[151]214,21:[153]:[153][163]13)""A$:S[178]54272:[141]1580
  35. 520 [134]FL(134),FH(134),K(255),C(8,2,2):OC[178]48:VL[178]10:MN[178]1:LL[178]1:RA[178][171]1
  36. 530 Z1[178]1:Z2[178]2:Z3[178]3:Z4[178]4:Z7[178]7:ZS[178]64:FF[178]255:HB[178]256
  37. 540 IK[178]197:BF[178]198:VN[178]251:NL[178]900:NH[178]901:ET[178]829:S1[178]49152:S2[178]49408:[129]I[178]Z1[164]41
  38. 550 K([198]([202]("Q2W3ER5T6Y7UI9O0P@-*\^ZSXDCVGBHNJM,L.:/",I)))[178]I:[130]
  39. 560 [153][163]13)"OPENON"A$:R[178]5.8:A[178]10787.4138:J[178]Z2[174]([171]Z1[173]12)
  40. 570 [129]I[178]94[164]0[169][171]1:FH(I)[178][181](A[172]R[173]HB):FL(I)[178]A[172]R[171]HB[172]FH(I):A[178]A[172]J:[130]
  41. 580 [153][163]13)"ON"A$:[141]1310
  42. 600 [143] *******************
  43. 601 [143] ** READ ALL DATA **
  44. 602 [143] *******************
  45. 610 [129]I[178]Z0[164]8:[129]J[178]Z0[164]Z2:[135]C(I,J,0),C(I,J,1),C(I,J,2):[130]:[135]C$(I):[130]
  46. 620 [135]NM$(0),NM$(1),NM$(2):[129]I[178]1[164]8:[135]AD(I),SR(I),WV(I),PL(I),PH(I):[130]
  47. 630 [129]R[178]1[164]2:[135]I,J:[129]A[178]I[164]J:[135]IN:[151]A,IN:[130]:[130]
  48. 640 [153][163]9)"(USE CONTROL-X TO EXIT)":I[178]1:[141]860
  49. 670 [143] *************
  50. 671 [143] ** NUCLEUS **
  51. 672 [143] *************
  52. 680 [146]BF,FF:J[178][194](IK):[161]A$:R[178]K([198](A$))[170]OC:[139]R[178]OC[167][141]800:[137]680
  53. 690 [139]SL[167][141]240:[137] 680
  54. 700 [139]CH[167][141]310:[137] 680
  55. 710 [139]LL[167][141]370:[137]680
  56. 720 T[178]S[170]V[172]Z7:[151]VN,V[172]Z7:[151]NL,FL(R):[151]NH,FH(R):[158]S2:[151]T[170]Z4,WV[170]Z1
  57. 730 [139]MN[167]V[178]V[170]Z1:[139]V[178]Z3[167]V[178]Z0
  58. 740 [139][194](IK)[178]J[175][194](IK)[171]64[167]740
  59. 750 [151]T[170]Z4,WV[170]P:[146]BF,FF:[161]A$:J[178][194](IK):R[178]K([198](A$))[170]OC:[139] R[171]OC[167]720
  60. 760 [141]800:[137]680
  61. 790 [143] *************************
  62. 791 [143] ** PARAMETER FUNCTIONS **
  63. 792 [143] *************************
  64. 800 [139]CH[178]0[167]830
  65. 810 [129]I[178]0[164]2:[139]A$[178][202]("[])",I[170]1,1)[167]C2[178]I:[153]""[163]23)NM$(I):[142]
  66. 820 [130]:A[178][198](A$):[139]A[177]32[175]A[179]42[167]C1[178]A[171]33:[153]""[163]11)C$(C1):[142]
  67. 830 [129]I[178]1[164]8:[139]A$[179][177][202]("STOPOPENCLRSYS",I,1)[167][130]:[137]850
  68. 840 OC[178]12[172](I[171]Z1):[153]""[163]7)[202]([196](I),2):[142]
  69. 850 [129]I[178]1[164]8:[139]A$[179][177][202]("FORVERIFYDEFPOKEPRINT#PRINTCONTLIST",I,1)[167][130]:[137]880
  70. 860 [151]902,PL(I):[151]903,PH(I):WV[178]WV(I):[151]904,WV:[151]905,AD(I):[151]906,SR(I)
  71. 870 [153]""[163]16)[202]([196](I),2):[142]
  72. 880 [139]A$[179][177]"INPUT"[175]A$[179][177]"DIM"[167]930
  73. 890 VL[178]VL[171](VL[179]15[175]A$[178]"INPUT")[170](VL[177]0[175]A$[178]"DIM"):[151]S[170]24,VL
  74. 900 [153]""[163]37)[201]("0"[170][202]([196](VL),2),2):[142]
  75. 920 [143] *********************
  76. 921 [143] ** STYLE FUNCTIONS **
  77. 922 [143] *********************
  78. 930 [139]A$[178]"RUN"[167]P[178]1[171]P:[151]1047,13[170]128[172]P:[137]1580
  79. 940 [139]A$[178]"IF"[167]MN[178]1[171]MN:[151]1049,22[170]128[172]MN:[137]1580
  80. 950 [139]A$[178]"RESTORE"[167]LL[178]1[171]LL:[151]1051,16[170]128[172]LL:[142]
  81. 960 [139]A$[178]"LET"[167]SL[178]1[171]SL:RA[178][171]1:[151]1045,19[170]128[172]SL:CH[178]1:[137]990
  82. 970 [139]A$[179][177]"READ"[167] 1010
  83. 980 [151]1045,19:SL[178]0
  84. 990 CH[178]1[171]CH:[151]1043,3[170]128[172]CH:[139]CH[178]0[167][153]""LN$:[153]SP$:[142]
  85. 1000 [153]""SP$"ONCHORD TYPE:"C$(C1)[163]23)NM$(C2)" INVERSION"LN$:[142]
  86. 1010 [139]A$[178]" "[167] [141]1580:RA[178][171]1:[151]BF,Z0:[142]
  87. 1020 [139] A$[178]""[167][141]1580:[153]"LOAD";:[151]788,49:[128]
  88. 1030 [139]A$[179][177]"GOTO"[167][142]
  89. 1060 [143] ****************************
  90. 1061 [143] ** DISPLAY WAVEFORM PARMS **
  91. 1062 [143] ****************************
  92. 1070 [141]1470:[151]214,13:[153]
  93. 1080 [153]"VOICE TO BE DEFINED (1-8)";:J[178]1:[141]1500
  94. 1090 [139] IN[179]1[176] IN[177]8[167][141]1470:[137]1400
  95. 1100 I[178]IN:[153][163]31)"ATT:"[202]([196]([181](AD(I)[173]16)),2)
  96. 1110 [153][163]31)"DEC:"[202]([196](AD(I)[175]15),2)
  97. 1120 [153][163]31)"SUS:"[202]([196]([181](SR(I)[173]16)),2)
  98. 1130 [153][163]31)"REL:"[202]([196](SR(I)[175]15),2)
  99. 1140 [153][163]31)"WVFM:OPEN"[202]("SAWTRIPULNSE",3[172][188](WV(I))[173][188](2)[171]11,3)"
  100. 1150 IFWV(I)=64THENPRINTTAB(31)"PLS:"MID$(STR$(PH(I)*HB+PL(I)),2)
  101. 1170 REM *************************
  102. 1171 REM ** DEFINE NEW WAVEFORM **
  103. 1172 REM *************************
  104. 1180 POKE 214,14:PRINT:PRINT"ATTACK RATE (0-15)";:J=2:GOSUB1500:IFERTHEN1070
  105. 1190 AD=IN:PRINT"DECAY RATE (0-15)";:GOSUB1500:IFERTHEN1070
  106. 1200 AD=AD*16ORIN:PRINT"SUSTAIN LEVEL (0-15)";:GOSUB1500:IFERTHEN1070
  107. 1210 SR=IN:PRINT"RELEASE RATE (0-15)";:GOSUB1500:IFERTHEN1070
  108. 1220 SR=SR*16ORIN:PRINT"[159]SAW [159]TRIANGLE [159]PULSE [159]NOISE";:J=1:GOSUB1500
  109. 1230 FORJ=1TO4:IFIN$<>MID$("STPN",J,1)THENNEXT:GOTO1070
  110. 1240 WF=2^(J+3):IFWF<>64THEN1260
  111. 1250 PRINT"PULSE RATE (0-4095)";:J=4:GOSUB1500:PU=IN:IFIN<0ORIN>4095THEN1070
  112. 1260 WV(I)=WF:PL(I)=PU-HB*INT(PU/HB):PH(I)=INT(PU/HB):AD(I)=AD:SR(I)=SR
  113. 1270 GOSUB1470:GOSUB1410:GOTO860
  114. 1300 REM ***********************
  115. 1301 REM ** DISPLAY KEYBOARDS **
  116. 1302 REM ***********************
  117. 1310 POKES+24,VL:PRINT""TAB(9)"   [194]    [194]   [194]    "
  118. 1320 PRINT"  LOW     [146]2 [146]3 [221] [146]5 [146]6 [146]7 [221] [146]9 [146]0 [221] [146]- [146]\ [146]  "
  119. 1330 PRINT"KEYBOARD [160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221] [221] "
  120. 1335 PRINTTAB(9)"Q[194]W[194]E[194]R[194]T[194]Y[194]U[194]I[194]O[194]P[194]@[194]*[194]^[194] "
  121. 1340 PRINT:PRINT
  122. 1350 PRINTTAB(9)"   [194]    [194]   [194]    "
  123. 1360 PRINT"  HIGH    [146]S [146]D [194] [146]G [146]H [146]J [194] [146]L [146]: [194] [146]; [146]= [146]  "
  124. 1370 PRINT"KEYBOARD  [194] [194] [194] [194] [194] [194] [194] [194] [194] [194] [194] [194] [194] "
  125. 1380 PRINTTAB(9)"Z[194]X[194]C[194]V[194]B[194]N[194]M[194],[194].[194]/[194] [194] [194] [194] "
  126. 1395 PRINT
  127. 1400 REM ***********************
  128. 1401 REM ** DISPLAY KEYBOARDS **
  129. 1402 REM ***********************
  130. 1410 POKE214,13:PRINT:PRINT"F1 -- LOUDER  F2 -- DEFINE WAVEFORM"
  131. 1420 PRINT"F3 -- SOFTER  F4 -- [159]MAINTAIN
  132. 1430 [153]"F5 -- OPENCHORDS  F6 -- OPENMULTIVOICE
  133. 1440 PRINT"F7 -- [159]SLIDES  F8 -- [159]POLYPHONIC":RETURN
  134. 1460 REM ************************
  135. 1461 REM ** CLEAR DISPLAY AREA **
  136. 1462 REM ************************
  137. 1470 POKE214,12:PRINT:FORJ=1TO11:PRINTSP$:NEXT:RETURN
  138. 1490 REM **********************
  139. 1491 REM ** INPUT SUBROUTINE **
  140. 1492 REM **********************
  141. 1500 IN$="":PRINT"? ";
  142. 1510 PRINT" [146][157]";:WAITBF,FF:GETA$:IFA$=""THEN1020
  143. 1520 A=ASC(A$):IFA=13THENPRINT" ":IN=VAL(IN$):ER=(IN<0ORIN>15)ORIN$="":RETURN
  144. 1530 IFA=20ANDLEN(IN$)THENPRINT" [157][157] [157]";:IN$=LEFT$(IN$,LEN(IN$)-1)
  145. 1540 IF(AAND127)<35ORLEN(IN$)=JTHEN1510
  146. 1550 PRINTA$;:IN$=IN$+A$:GOTO1510
  147. 1570 REM **********************
  148. 1571 REM ** CLEAR MUSIC CHIP **
  149. 1572 REM **********************
  150. 1580 FOR I=4TO18STEP7:POKES+I,0:NEXT:FORI=0TO23:POKES+I,0:NEXT:RETURN
  151. 1610 REM ****************
  152. 1611 REM ** CHORD DATA **
  153. 1612 REM ****************
  154. 1620 DATA,4,7,,3,8,,5,9,"MAJOR   ",,3,7,,4,9,,5,8,"MINOR  "
  155. 1630 DATA,3,6,,3,9,,6,9,"DIMINISHED",,4,8,,4,8,,4,8,"AUGMENTED "
  156. 1640 DATA,4,11,,4,11,,4,11,"MAJOR 7TH ",,3,10,,3,10,,3,10,"MINOR 7TH "
  157. 1650 DATA,4,10,,4,10,,4,10,"DOMIN 7TH",4,7,9,4,7,9,4,7,9,"MAJOR 6TH "
  158. 1660 DATA3,7,9,3,7,9,3,7,9,"MINOR 6TH"," ROOT"," FIRST",SECOND
  159. 1680 REM *************************
  160. 1681 REM ** WAVEFORM PARMS DATA **
  161. 1682 REM *************************
  162. 1690 DATA,249,16,,,,249,32,,,,249,64,160,15,,249,128,,,,240,16,,,204,204,16,,
  163. 1700 DATA,252,64,200,,192,240,32,,
  164. 1720 REM ******************************
  165. 1721 REM ** MULTI-INPUT ASSEMBLY CODE *
  166. 1722 REM ******************************
  167. 1730 DATA49152,49294,120,169,,141,61,3,170,169,254,133,252,165,252,141,,220,173
  168. 1740 DATA 1,220,157,143,192,232,56,38,252,176,239,162,,160,,189,143,192,42,176
  169. 1750 DATA 29,72,132,253,138,10,10,10,5,253,168,185,79,192,238,61,3,172,61,3,153
  170. 1760 DATA 61,3,104,192,3,240,12,164,253,200,192,8,208,219,232,224,8,208,209,88
  171. 1770 DATA96,17,135,134,133,136,29,13,20,0,69,83,90,52,65,87,51,88,84,70,67,54
  172. 1780 DATA68,82,53,86,85,72,66,56,71,89,55,78,79,75,77,48,74,73,57,44,64,58,46
  173. 1790 DATA 45,76,80,43,47,94,61,1,19,59,42,92,3,81,2,32,50,4,95,49
  174. 1810 REM *******************************
  175. 1811 REM ** MUSICLOADER ASSEMBLY CODE **
  176. 1812 REM *******************************
  177. 1820 DATA49408,49454,169,212,133,252,169,,160,6,145,251,136,145,251,170,169,8
  178. 1830 DATA136,145,251,138,145,251,136,192,1,208,249,188,41,193,185,132,3,145,251
  179. 1840 DATA232,224,6,208,243,96,2,3,,1,6,5
  180.