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 printfxh 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 pub printfxh ios.screeninit(@prompt1,4) 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 "▶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] ",$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, $E0, $1F, $0F, $00, $00, $00, $00, $FF, $FF, $80, $FF 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 }