start tok64 d64-yFpfbD 10 REM ////////////////// fx editor /// 20 REM ////////////////// mr.p 1990 /// 100 POKE53280,0:POKE53281,0:PRINT"{cyan}{clear}{reverse on}sound fx editor.. 110 FORi=1TO3:a(i)=.:s(i)=.:l(i)=.:h(i)=.:lp(i)=.:hp(i)=.:w(i)=2:NEXT:vl=15 120 FORi=.TO3:READw$(i),wv(i):NEXT 130 DATAtriangle,17,sawtooth,33,pulse,65,noise,129 140 so=54272 200 PRINT"{cyan}{clear}{reverse on}sound fx editor..mr.p. 1990. 205 GOSUB800 210 PRINT"{home}{down*2}voice to be defined? press 0 to stop. 220 GETa$:IFa$<"0"ORa$>"3"THEN220 230 a=VAL(a$) 235 IFa=.THEN10000 240 PRINT"{home}{down*2}{space*37}{home}{down*2}you're defining voice #"a$ 250 PRINT"{home}{down*4}{green}attack rate{yellow}"TAB(20)a(a)AND15 260 PRINT"{light green}decay rate{yellow}"TAB(20)INT(a(a)/16) 270 PRINT"{red}sustain level{yellow}"TAB(20)s(a)AND15 280 PRINT"{pink}release rate{yellow}"TAB(20)INT(s(a)/16) 290 PRINT"{blue}low frequenzy{yellow}"TAB(20)l(a) 300 PRINT"{light blue}high frequenzy{yellow}"TAB(20)h(a) 310 PRINT"{cyan}waveform{yellow}"TAB(21)w$(w(a)) 320 PRINT"{156}volume (master){yellow}"TAB(20)vl 330 IFw(a)<>2THEN400 340 PRINT"{dark gray}low pulse{yellow}"TAB(20)lp(a) 350 PRINT"{gray}high pulse{yellow}"TAB(20)hp(a) 400 PRINT"{home}{down*4}"; 410 s=.:t=15:GOSUB500:q=b:GOSUB500:a(a)=q+b*16:GOSUB500:q=b:GOSUB500:s(a)=q+b*16 420 s=.:t=255:GOSUB500:l(a)=b:GOSUB500:h(a)=b 430 s=-1:GOSUB500:a$=LEFT$(b$,1):FORi=.TO3:IFa$=LEFT$(w$(i),1)THENw(a)=i:GOTO450 440 NEXT:PRINT"{up}";:GOTO430 450 PRINT"{up}"TAB(21)w$(i)"{space*3}" 460 s=.:t=15:GOSUB500:vl=b 470 IFw(a)<>2THENPRINT"{space*9}"TAB(20)"{space*4}":PRINT"{space*10}"TAB(20)"{space*4}" 475 IFw(a)<>2THEN600 480 PRINT"{dark gray}low pulse{yellow}"TAB(20)lp(a)"{up}":s=.:t=255:GOSUB500:lp(a)=b:t=15 490 PRINT"{gray}high pulse{yellow}"TAB(20)hp(a)"{up}":GOSUB500:hp(a)=b:GOTO600 500 PRINTTAB(19);:INPUTb$:IFs=-1THENRETURN 510 b=VAL(b$):IFbt ORb<>INT(b)THENPRINT"{up}";:GOTO500 520 RETURN 600 POKE646,PEEK(646)+1AND15:IFPEEK(646)=.THENPOKE646,1 605 PRINT"{home}{down*15}this is your sound. ok? ({arrow left}=listen again) 610 lf=so+(a-1)*7:hf=lf+1:lp=hf+1:hp=lp+1:wf=hp+1:ad=wf+1:sr=ad+1:v=so+24 620 POKEad,a(a):POKEsr,s(a):POKElf,l(a):POKEhf,h(a):POKEwf,wv(w(a)):POKEv,vl 630 IFw(a)=2THENPOKElp,lp(a):POKEhp,hp(a) 640 FORi=.TO100:NEXT:POKEwf,wv(w(a))-1 650 GETa$:IFa$="{arrow left}"THEN600 660 IFa$="y"THEN1000 670 IFa$="n"THEN200 680 GOTO650 800 PRINT"{home}{down*15} 820 PRINT"{yellow}NMv{space*5}{brown}NM 830 PRINT"{yellow}{cm n}{cm h}o{space*4}{brown}N{space*2}M 840 PRINT"{yellow}{cm n}{cm h}l{space*3}{brown}N{space*4}{cm y}{yellow}PO{brown}{cm y*2}M 850 PRINT"{yellow}{cm n}{cm h}u{space*2}{brown}N{space*6}{yellow}{cm n}{cm h}{brown}{space*3}M 860 PRINT"{yellow}{cm n}{cm h}m {brown}N{space*7}{yellow}su{brown}{space*4}M 870 PRINT"{yellow}{sh @}Le{brown}N{space*8}{yellow}{sh @}L{brown}{space*5}M{green}timeM 880 PRINT"{space*3}{green}O{cm y}{light green}at{green}{cm y}P{light green}de{green}O{cm y*3}P{cm y}{light green}re{green}P{cm y*4}N 890 PRINT"{light green}at=attack de=decay su=sustan re=release":RETURN 1000 PRINT"{cyan}{clear}{reverse on}sound fx editor..mr.p. 1990. 1010 PRINT"{home}{down*2}";:l=a*1000+1000 1020 PRINTl"poke"ad"{left},"a(a)"{left}:poke"sr"{left},"s(a)"{left}:poke"lf"{left},"l(a)"{left}:poke"hf"{left},"h(a) 1030 PRINTl+10"poke"wf"{left},"wv(w(a))"{left}"; 1040 IFw(a)=2THENPRINT":poke"lp"{left},"lp(a)"{left}:poke"hp"{left},"hp(a); 1050 PRINT:PRINT"1{9*3}poke54296,"vl 1055 PRINT5000+a*100"poke"wf"{left},"wv(w(a))-1 1060 FORi=1TO3:PRINT"a("i"{left})="a(i)"{left}:s("i"{left})="s(i)"{left}:l("i"{left})="l(i); 1070 PRINT"{left}:h("i"{left})="h(i)"{left}:lp("i"{left})="lp(i)"{left}:hp("i"{left})="hp(i)"{left}:w("i"{left})="w(i) 1080 PRINT"{down}":NEXT:PRINT"vl="vl"{left}:goto120{home}"; 1090 FORi=1TO8:POKE630+i,13:NEXT:POKE198,8:END 5000 FORi=.TO100:NEXT 10000 POKE2,. 10010 s=PEEK(2)*100 10020 PRINT"{clear}{down*2}";:IFs>1500THEN10100 10030 FORi=.TO9:PRINTs+i*10:POKE631+i,13:NEXT:PRINT"poke2,peek(2)+1:run10010":POKE641,13 10040 POKE198,11:PRINT"{home}";:END 10100 PRINT"{clear}{down*2}205{down}235{down}475{down}605{down}1055{down}goto10200{home}";:FORi=1TO6:POKE630+i,13:NEXT:POKE198,6 10110 END 10200 s=10000 10210 PRINT"{clear}{down*2}";:FORi=.TO80STEP10:PRINTs+i:NEXT:s=s+i:FORi=1TO10:POKE630+i,13:NEXT 10220 POKE198,10:PRINT"s="s":goto10210{home}";:END stop tok64 (bastext 1.0)