home *** CD-ROM | disk | FTP | other *** search
- 0 rem (w) by jomo walla
- 10 sd=54272:fori=0to24:pokesd+i,0:next:dimhi%(1000):dimlo%(1000):dimtd%(1000,1)
- 20 dimth%(256):dimtl%(256):ze=161
- 30 tb$="zsxdcvgbhnjmq2w3er5t6y7ui9o0p@-*\^"
- 40 for i=1 to len(tb$)
- 50 fr=63508/2^(1/12)^(94-35-i)
- 60 hi%=fr/256:lo%=fr-256*hi%
- 70 ta%=asc(mid$(tb$,i,1))
- 80 th%(ta%)=hi%:tl%(ta%)=lo%:nexti:i=0
- 100 print"[147]menu:":print"1.ton einstellen":print"2.lied aufnehmen"
- 110 print"3.lied spielen":print"4.lied speichern":print"5.lied laden"
- 180 getg$:g=val(g$):ifg<1org>5then180
- 190 on g gosub 1000,2000,3000,4000,5000
- 200 goto 100
- 1000 input"[147]lautstaerke(0-15)";ls
- 1010 input"wellenform(16/32/64/128)";wf
- 1020 input"attack(0-15)";a:input"decay(0-15)";d:input"sustain(0-15)";s
- 1030 input"release(0-15)";r:if wf=64 then input"pulsbreite(0-65535)";pb
- 1040 input"filtermodus(0/1/2/4)";fm:if fm=0 then ff=0:fz=0:goto1100
- 1050 input"filterfrequenz(0-2047)";ff
- 1060 input"filterresonanz(0-15)";fz
- 1100 pokesd+24,16*fm+ls:pokesd+5,16*a+d:pokesd+6,16*s+r:pokesd+23,16*fz+sgn(fm)
- 1110 pokesd+21,ff-int(ff/8)*8:pokesd+22,int(ff/8):pokesd+2,pb-int(pb/256)*256
- 1120 pokesd+3,int(pb/256):return
- 2000 getg$:ifg$=""then2000
- 2010 tp=peek(203):fori=1to1000:pokeze,0:pokeze+1,0:hi%(i)=th%(g):lo%(i)=tl%(g)
- 2030 pokesd,lo%(i):pokesd+1,hi%(i):poke sd+4,wf+1
- 2035 ifpeek(203)=tpthen2035
- 2040 td%(i,0)=peek(ze+1)+256*peek(ze):pokesd+4,wf:poke198,0:wait203,64,255
- 2050 g=peek(60289+peek(203))
- 2060 poke198,0:tp=peek(203):td%(i,1)=peek(ze+1)+256*peek(ze):ifg=95thenreturn
- 2070 nexti:return
- 3000 forj=1toi:pokeze+1,0:pokeze,0:pokesd,lo%(j):pokesd+1,hi%(j)
- 3020 pokesd+4,wf+1:if peek(ze+1)+256*peek(ze)<td%(j,0)then3020
- 3040 pokesd+4,wf:if peek(ze+1)+256*peek(ze)<td%(j,1)then3040
- 3050 next j:return
- 4000 input"name";n$:n$=n$+",s,w":open1,8,2,n$:a$=chr$(13):print#1,ls,a$,wf
- 4010 print#1,pb,a$,a,a$,d,a$,s,a$,r,a$,fm,a$,ff,a$,fz,a$,i:forj=1toi
- 4020 print#1,lo%(j),a$,hi%(j),a$,td%(j,0),a$,td%(j,1):nextj:close1:return
- 5000 input"name";n$:n$=n$+",s,r":open1,8,2,n$:input#1,ls,wf,pb,a,d,s,r,fm,ff,fz
- 5010 input#1,i:gosub1100
- 5020 forj=1toi:input#1,lo%(j),hi%(j),td%(j,0),td%(j,1):nextj:close1:return
-