home *** CD-ROM | disk | FTP | other *** search
/ Sound Sensations! / sound_sensations.iso / miditool / dxhtotxt / dxhtotxt.bas next >
Encoding:
BASIC Source File  |  1988-12-28  |  14.8 KB  |  297 lines

  1. 0 PRINT"...initializing";:RUN 10
  2. 1 SAVE"dxhtotxt.bas"
  3. 2 END:RUN
  4. 3 '
  5. 10 DEFINT A-Z
  6. 20 DIM D$(32):D$(0)=STRING$(128,0):FOR I=1 TO 32:D$(I)=D$(0):NEXT
  7. 30 DIM D2$(6):FOR I=0 TO 6:READ D2$(I):NEXT:DATA -3,-2,-1," 0",+1,+2,+3
  8. 40 DIM R$(63):FOR I=0 TO 63:READ R$(I):NEXT
  9. 50 DATA " 0.50"," 0.71"," 0.78"," 0.87"," 1.00"," 1.41"," 1.57"," 1.73"
  10. 60 DATA " 2.00"," 2.82"," 3.00"," 3.14"," 3.46"," 4.00"," 4.24"," 4.71"
  11. 70 DATA " 5.00"," 5.19"," 5.65"," 6.00"," 6.28"," 6.92"," 7.00"," 7.07"," 7.85"
  12. 80 DATA " 8.00"," 8.48"," 8.65"," 9.00"," 9.42"," 9,89"
  13. 90 DATA 10.00,10.38,10.99,11.00,11.30,12.00,12.11,12.56,12.72,13.00,13.84
  14. 100 DATA 14.00,14.10,14.13,15.00,15.55,15.57,15.70,16.96,17.27,17.30,18.37
  15. 110 DATA 18.84,19.03,19.78,20.41,20.76,21.20,21.98,22.49,23.55,24.22,25.95
  16. 120 DIM MC$(48),ST$(11):FOR I=0 TO 11:READ ST$(I):NEXT
  17. 130 FOR I=0 TO 48:MC$(I)=ST$(I MOD 12)+MID$(STR$(1+I/12),2,1):NEXT:ERASE ST$
  18. 140 DATA "C ","C#","D ","D#","E ","F ","F#","G ","G#","A ","A#","B "
  19. 150 '
  20. 160 ON ERROR GOTO 0
  21. 170 CLS:PRINT"* - Convert VMEM data to Midicom DX-100 text template - *"
  22. 180 PRINT:LINE INPUT"Enter filename >";F$:IF F$="" THEN END:RUN
  23. 190 ON ERROR GOTO 200:GOTO 220
  24. 200 IF ERR=53 THEN PRINT"> FILE NOT FOUND <":GOSUB 2400:RESUME 160
  25. 210 GOTO 240
  26. 220 OPEN"I",1,F$:CLOSE:PRINT"Loading"
  27. 230 ON ERROR GOTO 240:GOTO 260
  28. 240 PRINT:PRINT ERR;"> VMEM VOICE FILE ERROR <":RESUME 250
  29. 250 ON ERROR GOTO 0:CLOSE:END:RUN
  30. 260 OPEN"R",1,F$,128:FIELD#1,6 AS DP$,122 AS DN$:R=1:GET#1,1:H$=DP$  'header
  31. 270 FOR V=1 TO 32:MID$(D$(V),1)=DN$:R=R+1:GET#1,R:MID$(D$(V),123)=DP$:NEXT
  32. 280 E$=DN$:CLOSE
  33. 290 PRINT"Verify CHECKSUM (Y/n)?";:ON INSTR("Nn",INPUT$(1))/2 GOTO 340
  34. 300 PRINT:PRINT"Verifying CHECKSUM (...please, stand by)"
  35. 310 FOR V=1 TO 32:FOR B=1 TO &H80:E=E+ASC(MID$(D$(V),B)):NEXT:E=E MOD 256:NEXT
  36. 320 E=NOT E AND &HFF:E=E+1 AND &H7F:IF E<>ASC(E$) THEN ERROR
  37. 330 '
  38. 340 ON ERROR GOTO 0
  39. 350 CLS:GOSUB 670  'display filename and voices
  40. 360 PRINT"> Functions <  -  ";
  41. 370 PRINT"[Q]uit,  [S]ave,  [D]isplay,  [P]rint,  [N]ew":PRINT STRING$(80,"-");
  42. 380 LOCATE ,,1
  43. 390 PRINT"Command >";:S=0:WHILE S=0:S=INSTR("QqSsDdPpNn",INPUT$(1))/2:WEND
  44. 400 IF S=5 THEN 170
  45. 410 S=S-1:IF S=0 THEN PRINT:PRINT"> End of Program <":END:GOTO 350
  46. 420 PRINT:ON S GOTO 430,440,450
  47. 430 PRINT"SAVE ";:GOTO 460
  48. 440 PRINT"DISPLAY ";:GOTO 460
  49. 450 PRINT"PRINT OUT ";
  50. 460 INPUT"which voice # ";VS:IF VS=0 THEN 350
  51. 470 IF VS>0 AND VS<33 THEN 490
  52. 480 PRINT"> A number from 1 to 32 !!! <":GOTO 420
  53. 490 ON S GOSUB 510,580,620:GOSUB 2400:GOTO 350  'do selection then wait
  54. 500 '
  55. 510 LINE INPUT"Enter FileName to SAVE >";FO$:IF FO$="" THEN RETURN
  56. 520 PRINT"Saving";
  57. 530 OPEN"O",1,FO$
  58. 540 GOSUB 740  'stuff template and do I/O routine
  59. 550 CLOSE
  60. 560 RETURN
  61. 570 '
  62. 580 PRINT"Displaying";
  63. 590 GOSUB 740
  64. 600 RETURN
  65. 610 '
  66. 620 PRINT"Printing";
  67. 630 GOSUB 740
  68. 640 RETURN
  69. 650 '
  70. 660 '> Display VMEM file & name
  71. 670 PRINT"  ";F$:PRINT STRING$(80,"-");
  72. 680 FOR V=1 TO 32:R=1+(V-1) MOD 8:C=1+21*FIX((V-1)/8)
  73. 690 LOCATE 2+R,1+C:PRINT USING"##. &";V;MID$(D$(V),58,10);
  74. 700 NEXT:LOCATE R+3,1:PRINT STRING$(80,"-");
  75. 710 RETURN
  76. 720 '
  77. 730 '> Stuff the template & I/O
  78. 740 RESTORE 2440
  79. 750 L$="":GOSUB 2310  'do I/O
  80. 760 'stuff
  81. 770 READ L$:P=INSTR(L$,"."):MID$(L$,P)=MID$(D$(VS),58,10)  'name & ...
  82. 780 P=INSTR(P+10,L$," ."):MID$(L$,P)=STR$(VS):GOSUB 2310  '...number
  83. 790 READ L$:P=INSTR(L$,"."):P$="":MID$(L$,P)=P$:GOSUB 2310  'programmer
  84. 800 READ L$:D=ASC(MID$(D$(VS),41))
  85. 810 P=INSTR(L$,"."):MID$(L$,P)=MID$(STR$(1+(D AND 7)),2)  'algorithm
  86. 820 P=INSTR(P,L$,"."):MID$(L$,P)=MID$(STR$((D AND &H38)/8),2):GOSUB 2310  'FBL
  87. 830 FOR I=1 TO 2:READ L$:GOSUB 2310:NEXT  'no data here
  88. 840 READ L$:P=INSTR(L$,"."):D=ASC(MID$(D$(VS),46))
  89. 850 IF (D AND 3)=0 THEN MID$(L$,P)=">"  'saw up
  90. 860 D=ASC(MID$(D$(VS),42)):P=INSTR(P,L$,":.")+1
  91. 870 MID$(L$,P)=MID$(STR$(D),2)  'speed
  92. 880 D=ASC(MID$(D$(VS),43)):P=INSTR(P,L$,":.")+1
  93. 890 MID$(L$,P)=MID$(STR$(D),2)  'delay
  94. 900 D=ASC(MID$(D$(VS),44)):P=INSTR(P,L$,":.")+1
  95. 910 MID$(L$,P)=MID$(STR$(D),2)  'PMD
  96. 920 D=ASC(MID$(D$(VS),45)):P=INSTR(P,L$,":.")+1
  97. 930 MID$(L$,P)=MID$(STR$(D),2):GOSUB 2310  'AMD
  98. 940 READ L$:D=ASC(MID$(D$(VS),46)):P=INSTR(L$,".")
  99. 950 IF (D AND 3)=1 THEN MID$(L$,P)=">"  'square wave
  100. 960 D=ASC(MID$(D$(VS),41)):P=INSTR(P+1,L$,".")
  101. 970 IF D AND &H40 THEN MID$(L$,P)=">"  'sync on
  102. 980 GOSUB 2310
  103. 990 READ L$:D=ASC(MID$(D$(VS),46)):P=INSTR(L$,".")  'triangle wave
  104. 1000 IF (D AND 3)=2 THEN MID$(L$,P)=">"
  105. 1010 D=ASC(MID$(D$(VS),41)):P=INSTR(P+1,L$,".")  'sync off
  106. 1020 IF (D AND &H40)=0 THEN MID$(L$,P)=">"
  107. 1030 GOSUB 2310
  108. 1040 READ L$:D=ASC(MID$(D$(VS),46)):P=INSTR(L$,".")  's/hold wave
  109. 1050 IF (D AND 3)=3 THEN MID$(L$,P)=">"
  110. 1060 GOSUB 2310
  111. 1070 FOR I=1 TO 3:READ L$:GOSUB 2310:NEXT  'skip three lines
  112. 1080 READ L$:D=ASC(MID$(D$(VS),46)):P=INSTR(L$,".")  'PMS
  113. 1090 MID$(L$,P)=MID$(STR$((D AND &H70)/16),2)
  114. 1100 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$((D AND &HC)/4),2)  'AMS
  115. 1110 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),37))  'AME op1
  116. 1120 IF D AND &H40 THEN MID$(L$,P)=">"
  117. 1130 P=INSTR(P+1,L$,"."):MID$(L$,P)=MID$(STR$((D AND &H38)/8),2)  'EBS op1
  118. 1140 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D AND 7),2)  'KVS op1
  119. 1150 GOSUB 2310
  120. 1160 READ L$:D=ASC(MID$(D$(VS),17))  'AME op2
  121. 1170 P=INSTR(L$,"."):IF D AND &H40 THEN MID$(L$,P)=">"
  122. 1180 P=INSTR(P+1,L$,"."):MID$(L$,P)=MID$(STR$((D AND &H38)/8),2)  'EBS op2
  123. 1190 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D AND 7),2)  'KVS op2
  124. 1200 GOSUB 2310
  125. 1210 READ L$:D=ASC(MID$(D$(VS),27))  'AME op3
  126. 1220 P=INSTR(L$,"."):IF D AND &H40 THEN MID$(L$,P)=">"
  127. 1230 P=INSTR(P+1,L$,"."):MID$(L$,P)=MID$(STR$((D AND &H38)/8),2)  'EBS op3
  128. 1240 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D AND 7),2)  'KVS op3
  129. 1250 GOSUB 2310
  130. 1260 READ L$:D=ASC(MID$(D$(VS),7))  'AME op4
  131. 1270 P=INSTR(L$,"."):IF D AND &H40 THEN MID$(L$,P)=">"
  132. 1280 P=INSTR(P+1,L$,"."):MID$(L$,P)=MID$(STR$((D AND &H38)/8),2)  'EBS op4
  133. 1290 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D AND 7),2)  'KVS op4
  134. 1300 GOSUB 2310
  135. 1310 READ L$:GOSUB 2310  'skip 1
  136. 1320 READ L$:P=INSTR(L$,".")
  137. 1330 D=ASC(MID$(D$(VS),39)):MID$(L$,P)=R$(D AND 63)  'Ratio op1
  138. 1340 P=INSTR(P+6,L$,"."):D=ASC(MID$(D$(VS),40))  'detune op1
  139. 1350 MID$(L$,P)=D2$(D AND 7):GOSUB 2310
  140. 1360 READ L$:P=INSTR(L$,".")
  141. 1370 D=ASC(MID$(D$(VS),19)):MID$(L$,P)=R$(D AND 63)  'Ratio op2
  142. 1380 P=INSTR(P+6,L$,"."):D=ASC(MID$(D$(VS),20))  'detune op2
  143. 1390 MID$(L$,P)=D2$(D AND 7):GOSUB 2310
  144. 1400 READ L$:P=INSTR(L$,".")
  145. 1410 D=ASC(MID$(D$(VS),29)):MID$(L$,P)=R$(D AND 63)  'Ratio op3
  146. 1420 P=INSTR(P+6,L$,"."):D=ASC(MID$(D$(VS),30))  'detune op3
  147. 1430 MID$(L$,P)=D2$(D AND 7):GOSUB 2310
  148. 1440 READ L$:P=INSTR(L$,".")
  149. 1450 D=ASC(MID$(D$(VS),9)):MID$(L$,P)=R$(D AND 63)  'Ratio op4
  150. 1460 P=INSTR(P+6,L$,"."):D=ASC(MID$(D$(VS),10))  'detune op4
  151. 1470 MID$(L$,P)=D2$(D AND 7):GOSUB 2310
  152. 1480 FOR I=1 TO 3:READ L$:GOSUB 2310:NEXT  'skip 3
  153. 1490 READ L$:P=INSTR(L$,".")  'op1
  154. 1500 D=ASC(MID$(D$(VS),31)):MID$(L$,P)=MID$(STR$(D),2)  'AR
  155. 1510 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),32)):MID$(L$,P)=MID$(STR$(D),2) 'D1R
  156. 1520 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),35)):MID$(L$,P)=MID$(STR$(D),2) 'D1L
  157. 1530 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),33)):MID$(L$,P)=MID$(STR$(D),2) 'D2R
  158. 1540 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),34)):MID$(L$,P)=MID$(STR$(D),2) 'RR
  159. 1550 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),38)):MID$(L$,P)=MID$(STR$(D),2) 'OUT
  160. 1560 GOSUB 2310
  161. 1570 READ L$:P=INSTR(L$,".")  'op2
  162. 1580 D=ASC(MID$(D$(VS),11)):MID$(L$,P)=MID$(STR$(D),2)  'AR
  163. 1590 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),12)):MID$(L$,P)=MID$(STR$(D),2) 'D1R
  164. 1600 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),15)):MID$(L$,P)=MID$(STR$(D),2) 'D1L
  165. 1610 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),13)):MID$(L$,P)=MID$(STR$(D),2) 'D2R
  166. 1620 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),14)):MID$(L$,P)=MID$(STR$(D),2) 'RR
  167. 1630 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),18)):MID$(L$,P)=MID$(STR$(D),2) 'OUT
  168. 1640 GOSUB 2310
  169. 1650 READ L$:P=INSTR(L$,".")  'op3
  170. 1660 D=ASC(MID$(D$(VS),21)):MID$(L$,P)=MID$(STR$(D),2)  'AR
  171. 1670 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),22)):MID$(L$,P)=MID$(STR$(D),2) 'D1R
  172. 1680 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),25)):MID$(L$,P)=MID$(STR$(D),2) 'D1L
  173. 1690 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),23)):MID$(L$,P)=MID$(STR$(D),2) 'D2R
  174. 1700 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),24)):MID$(L$,P)=MID$(STR$(D),2) 'RR
  175. 1710 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),28)):MID$(L$,P)=MID$(STR$(D),2) 'OUT
  176. 1720 GOSUB 2310
  177. 1730 READ L$:P=INSTR(L$,".")  'op4
  178. 1740 D=ASC(MID$(D$(VS),1)):MID$(L$,P)=MID$(STR$(D),2)  'AR
  179. 1750 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),2)):MID$(L$,P)=MID$(STR$(D),2) 'D1R
  180. 1760 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),5)):MID$(L$,P)=MID$(STR$(D),2) 'D1L
  181. 1770 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),3)):MID$(L$,P)=MID$(STR$(D),2) 'D2R
  182. 1780 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),4)):MID$(L$,P)=MID$(STR$(D),2) 'RR
  183. 1790 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),8)):MID$(L$,P)=MID$(STR$(D),2) 'OUT
  184. 1800 GOSUB 2310
  185. 1810 READ L$:GOSUB 2310  'skip 1
  186. 1820 READ L$:P=INSTR(L$,"."):D=ASC(MID$(D$(VS),47))
  187. 1830 MID$(L$,P)=MID$(MC$(D),1):GOSUB 2310
  188. 1840 READ L$:P=INSTR(L$,"."):D=ASC(MID$(D$(VS),40))  'op1
  189. 1850 MID$(L$,P)=MID$(STR$((D AND &H18)/8),2)  'Rate scaling
  190. 1860 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),36))
  191. 1870 MID$(L$,P)=MID$(STR$(D),2):GOSUB 2310  'level scaling
  192. 1880 READ L$:P=INSTR(L$,"."):D=ASC(MID$(D$(VS),20))  'op2
  193. 1890 MID$(L$,P)=MID$(STR$((D AND &H18)/8),2)  'Rate scaling
  194. 1900 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),16))
  195. 1910 MID$(L$,P)=MID$(STR$(D),2):GOSUB 2310  'level scaling
  196. 1920 READ L$:P=INSTR(L$,"."):D=ASC(MID$(D$(VS),30))  'op3
  197. 1930 MID$(L$,P)=MID$(STR$((D AND &H18)/8),2)  'Rate scaling
  198. 1940 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),26))
  199. 1950 MID$(L$,P)=MID$(STR$(D),2):GOSUB 2310  'level scaling
  200. 1960 READ L$:P=INSTR(L$,"."):D=ASC(MID$(D$(VS),10))  'op4
  201. 1970 MID$(L$,P)=MID$(STR$((D AND &H18)/8),2)  'Rate scaling
  202. 1980 P=INSTR(P+2,L$,"."):D=ASC(MID$(D$(VS),6))
  203. 1990 MID$(L$,P)=MID$(STR$(D),2):GOSUB 2310  'level scaling
  204. 2000 FOR I=1 TO 2:READ L$:GOSUB 2310:NEXT  'skip 2
  205. 2010 READ L$:D=ASC(MID$(D$(VS),49))  'poly/mono
  206. 2020 P=INSTR(L$,"."):IF (D AND 8)=0 THEN MID$(L$,P)=">"  'poly
  207. 2030 P=INSTR(P+1,L$,"."):IF D AND 8 THEN MID$(L$,P)=">"  'mono
  208. 2040 P=INSTR(P+1,L$,"."):D=ASC(MID$(D$(VS),48))  'pitch bend
  209. 2050 MID$(L$,P)=MID$(STR$(D),2):GOSUB 2310
  210. 2060 FOR I=1 TO 2:READ L$:GOSUB 2310:NEXT  'skip 2
  211. 2070 READ L$:D=ASC(MID$(D$(VS),49))  'porta mode
  212. 2080 P=INSTR(L$,"."):IF (D AND 1)=0 THEN MID$(L$,P)=">"  'full t
  213. 2090 P=INSTR(P+1,L$,"."):IF D AND 1 THEN MID$(L$,P)=">"  'fingered
  214. 2100 D=ASC(MID$(D$(VS),50))  'porta time
  215. 2110 P=INSTR(P+1,L$,"."):MID$(L$,P)=MID$(STR$(D),2)
  216. 2120 D=ASC(MID$(D$(VS),49)) 'foot sw assign
  217. 2130 P=INSTR(P+2,L$,"."):IF D AND 4 THEN MID$(L$,P)=">"  'sus
  218. 2140 P=INSTR(P+2,L$,"."):IF D AND 2 THEN MID$(L$,P)=">"  'porta
  219. 2150 GOSUB 2310:READ L$:GOSUB 2310  'skip 1
  220. 2160 READ L$:D=ASC(MID$(D$(VS),52))  'wheel pitch range
  221. 2170 P=INSTR(L$,"."):MID$(L$,P)=MID$(STR$(D),2)
  222. 2180 D=ASC(MID$(D$(VS),53))  'wheel amplitude range
  223. 2190 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D),2):GOSUB 2310
  224. 2200 FOR I=1 TO 2:READ L$:GOSUB 2310:NEXT  'skip 2
  225. 2210 READ L$:D=ASC(MID$(D$(VS),54))  'Breath
  226. 2220 P=INSTR(L$,"."):MID$(L$,P)=MID$(STR$(D),2)  'pitch range
  227. 2230 D=ASC(MID$(D$(VS),55))  'amplitude range
  228. 2240 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D),2)
  229. 2250 D=ASC(MID$(D$(VS),56))  'pitch bias
  230. 2260 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D),2)
  231. 2270 D=ASC(MID$(D$(VS),57))  'EG bias
  232. 2280 P=INSTR(P+2,L$,"."):MID$(L$,P)=MID$(STR$(D),2)
  233. 2290 GOSUB 2310
  234. 2300 WHILE L$<>"":READ L$:GOSUB 2310:WEND:RETURN  'ALL DONE!
  235. 2310 ON S GOSUB 2350,2360,2370  'do I/O
  236. 2320 RETURN
  237. 2330 '
  238. 2340 'I/O
  239. 2350 PRINT#1,L$:RETURN
  240. 2360 PRINT L$:RETURN
  241. 2370 LPRINT L$:RETURN
  242. 2380 '
  243. 2390 'Wait for keypress
  244. 2400 WHILE INKEY$<>"":WEND:PRINT:PRINT"( any key to resume )":A=LEN(INPUT$(1))
  245. 2410 RETURN
  246. 2420 '
  247. 2430 '* DX-100 VOICE PROGAMMING TEXT TEMPLATE *
  248. 2440 DATA "DX-100 Voice/Function Data   Voice Name: ..........  Number: ......."
  249. 2450 DATA "==========================   Programmer: ..........................."
  250. 2460 DATA "1-Algorithm:.   2-Feedback:."
  251. 2470 DATA "--------------------------------------------------------------------"
  252. 2480 DATA "LFO    3-              4-        5-        6-      7-      8-"
  253. 2490 DATA "       Wave:.saw up    Speed:.   Delay:.   PMD:.   AMD:.   Sync:"
  254. 2500 DATA "            .square                                        .on"
  255. 2510 DATA "            .triangle                                      .off"
  256. 2520 DATA "            .S/Hold "
  257. 2530 DATA "--------------------------------------------------------------------"
  258. 2540 DATA "Modulation Sensitivity"
  259. 2550 DATA "9-        10-Amplitude          11-             12-"
  260. 2560 DATA "Pitch:.   AMS:.   Enable:.op1   EG Bias op1:.   Key Velocity op1:."
  261. 2570 DATA "                         .op2           op2:.                op2:."
  262. 2580 DATA "                         .op3           op3:.                op3:."
  263. 2590 DATA "                         .op4           op4:.                op4:."
  264. 2600 DATA "--------------------------------------------------------------------"
  265. 2610 DATA "Oscillator    13-Freq Ratio op1:.....   14-Detune op1:.."
  266. 2620 DATA "                            op2:.....             op2:.."
  267. 2630 DATA "                            op3:.....             op3:.."
  268. 2640 DATA "                            op4:.....             op4:.."
  269. 2650 DATA "--------------------------------------------------------------------"
  270. 2660 DATA "Envelope Generator"
  271. 2670 DATA " 15-AR   16-D1R   17-D1L   18-D2R   19-RR    20-Out Level"
  272. 2680 DATA "op1:.   op1:.    op1:.    op1:.    op1:.    op1:. "
  273. 2690 DATA "op2:.   op2:.    op2:.    op2:.    op2:.    op2:. "
  274. 2700 DATA "op3:.   op3:.    op3:.    op3:.    op3:.    op3:. "
  275. 2710 DATA "op4:.   op4:.    op4:.    op4:.    op4:.    op4:. "
  276. 2720 DATA "--------------------------------------------------------------------"
  277. 2730 DATA "Keyboard Scaling    21-Rate  22-Level  23-Transpose:C=..."
  278. 2740 DATA "                   op1:.    op1:. "
  279. 2750 DATA "                   op2:.    op2:. "
  280. 2760 DATA "                   op3:.    op3:. "
  281. 2770 DATA "                   op4:.    op4:. "
  282. 2780 DATA "--------------------------------------------------------------------"
  283. 2790 DATA "Function"
  284. 2800 DATA "13-.Poly/.Mono  14-Pitch Bend Range:. "
  285. 2810 DATA "--------------------------------------------------------------------"
  286. 2820 DATA "Portamento"
  287. 2830 DATA "15-Mode:.Full T/.Fingered  16-Time:.   17-Foot Sw Assign:.Sus/.Por"
  288. 2840 DATA "--------------------------------------------------------------------"
  289. 2850 DATA "Wheel Range    18-Pitch:.   19-Amplitude:. "
  290. 2860 DATA "--------------------------------------------------------------------"
  291. 2870 DATA "Breath Range"
  292. 2880 DATA "20-Pitch:.   21-Amplitude:.   22-Pitch Bias:.   23-EG Bias:. "
  293. 2890 DATA "===================================================================="
  294. 2900 DATA ""
  295. 2910 '
  296. 2920 '* Last line *
  297.