CON _CLKMODE = XTAL1 + PLL16X _XINFREQ = 5_000_000 OBJ ios: "ios" num: "numbers" CON TIBLEN = 32 VAR byte tib[TIBLEN] 'tastatur-input-buffer PUB main | a,b,c,key,n ios.start ' ios.startram 'code für test im ram, sollte bei bin-datei auskommentiert werden ios.screeninit(@prompt1,4) repeat ios.sfx_setslot2(@fx_puffer,15) ios.sfx_fire(15,1) printfx(@fx_puffer) key := ios.keywait case key "1": ios.printchar($0d) ios.print(string("Basisschwingung Waveform (0..6): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer] := n "2": ios.printchar($0d) ios.print(string("Basisschwingung Länge (0..FE, FF endlos):")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+1] := n "3": ios.printchar($0d) ios.print(string("Basisschwingung Frequenz (0..FF): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+2] := n "4": ios.printchar($0d) ios.print(string("Basisschwingung Volume (0..F): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+3] := n "5": ios.printchar($0d) ios.print(string("Modulation LFO (Speed 01..FF): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+4] := n "6": ios.printchar($0d) ios.print(string("Modulation LFW (Waveform 0..5): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+5] := n "7": ios.printchar($0d) ios.print(string("Modulation FMa (Stärke der FM 0 - off, 01..FF, 01 - MAX): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+6] := n "8": ios.printchar($0d) ios.print(string("Modulation AMa (Stärke der AM 0 - off, 01..FF, 01 - MAX): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+7] := n "9": ios.printchar($0d) ios.print(string("Hüllkurve Attack - Anstieg (0 - off, 1..FF, 1 - lansamster Anstieg): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+8] := n "a": ios.printchar($0d) ios.print(string("Hüllkurve Decay - Abfall (0 - off, 1..FF, 1 - lansamster Abfall): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+9] := n "b": ios.printchar($0d) ios.print(string("Hüllkurve Sustain - Halten Volume (0 - Mute, 1..FF, 1 - Leise): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+10] := n "c": ios.printchar($0d) ios.print(string("Hüllkurve Release - Freigabe (0 - off, 1..FF, 1 - Langsamste Freigabe): ")) ios.input(@tib,TIBLEN) n := num.FromStr(@tib,num#HEX) byte[@fx_puffer+11] := n "m": menu2 ios.screeninit(@prompt1,4) pub menu2 | key,a ios.screeninit(@prompt2,4) key := ios.keywait case key "s": "l": "e": export "r": menu3 "q": ios.stop pub export | i pub menu3 | key,a,n,c,w ios.screeninit(@prompt3,4) w := 0 c := 32 repeat key := ios.keywait case key "r": repeat c a? a := a & $FF byte[@fx_puffer+2] := a ios.sfx_setslot2(@fx_puffer,15) ios.sfx_fire(15,1) printfx(@fx_puffer) if w > 0 waitcnt(clkfreq / w + cnt) "c": ios.printchar($0d) ios.print(string("Anzahl = ")) ios.printdec(c) ios.print(string(" : ")) ios.input(@tib,TIBLEN) c := num.FromStr(@tib,num#DEC) ios.print(string(" ok",$0d)) "w": ios.printchar($0d) ios.print(string("Wait = ")) ios.printdec(w) ios.print(string(" : ")) ios.input(@tib,TIBLEN) w := num.FromStr(@tib,num#DEC) ios.print(string(" ok",$0d)) "b": quit pub printfx(adr)| i,a ios.printchar(ios#char_nl) repeat i from 0 to 11 a := byte[adr+i] ios.print(string("$")) ios.printhex(a,2) ios.print(string(" ")) DAT prompt1 byte "▶Hive: SFX-Tool" byte $0d,"Basisschwingung Modulation Hüllkurve " byte $0d,"Wav Len Fre Vol LFO LFW FMa AMa Att Dec Sus Rel" byte $0d,"[01] [02] [03] [04] [05] [06] [07] [08] [09] [0A] [0B] [0C] [M] ",$0 prompt2 byte "▶SFX-Tool - Menü" byte $0d," " byte $0d," " byte $0d,"[S]ave [L]oad [E]xport [R]and [Q]uit",$0 prompt3 byte "▶SFX-Tool - Random Freq" byte $0d," " byte $0d," " byte $0d,"[R]un [C]ount [W]ait [B]ack",$0 mod1 byte "bd1.hss ",0 mod2 byte "bd2.hss ",0 'basisschwingung modulation hüllkurve 'Wav Len Fre Vol LFO LFW FMa AMa Att Dec Sus Rel fx_puffer byte $01, $01, $80, $0F, $00, $00, $00, $00, $FF, $00, $00, $80 byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 DAT { sfx-struktur: wav len freq vol grundschwingung lfo lfw fma ama modulation att dec sus rel hüllkurve seq (optional) wav wellenform 0 sinus (0..500hz) 1 schneller sinus (0..1khz) 2 dreieck (0..500hz) 3 rechteck (0..1khz) 4 schnelles rechteck (0..4khz) 5 impulse (0..1,333hz) 6 rauschen len tonlänge $0..$fe, $ff endlos freq frequenz $00..$ff vol lautstärke $00..$0f lfo low frequency oscillator $ff..$01 lfw low frequency waveform $00 sinus (0..8hz) $01 fast sine (0..16hz) $02 ramp up (0..8hz) $03 ramp down (0..8hz) $04 square (0..32hz) $05 random $ff sequencer data fma frequency modulation amount $00 no modulation $01..$ff ama amplitude modulation amount $00 no modulation $01..$ff att attack $00..$ff dec decay $00..$ff sus sustain $00..$ff rel release $00..$ff }