Achtung: Es kann nur WAV oder HSS/SFX genutzt werten,
sonst kommen sich die PWM-Kanäle ins Gehege und das klingt grausig.8-o
Variabel A enthält Statusinformationen über den Erfolg der Routine.
Das ausschalten sollte vor dem einschalten stehen wenn die beiden Systeme getauscht werden.
ios.admsetsound(ios#SND_WAVOFF) 'wav ausschalten
ios.admsetsound(ios#SND_HSSON) 'hss einschalten
Miniprogramm für Regnatix
**Abspielen von vordeffinierten SFX-sounds**
OBJ
ios: "reg-ios"
CON
_CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000
PUB main | a
'ios initialisieren
a := ios.start
'systemsounds abschalten
ios.admsetsyssnd(0)
ios.admsetsound(ios#SND_WAVOFF) 'wav ausschalten
ios.admsetsound(ios#SND_HSSON) 'hss einschalten
repeat
ios.sfx_fire($f6,1)
waitcnt(clkfreq*2 + cnt)
**Abspielen von selbstdefinierten SFX-Sounds**
CON ' Chip Config
_CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000
OBJ
ios: "reg-ios"
PUB main | a
'ios initialisieren
a := ios.start
'systemsounds abschalten
ios.admsetsyssnd(0)
ios.admsetsound(ios#SND_WAVOFF) 'wav ausschalten
ios.admsetsound(ios#SND_HSSON) 'hss einschalten
'sfx-slots setzen
ios.sfx_setslot(@fx_paddel_links, 0)
ios.sfx_setslot(@fx_paddel_techts, 1)
' endlosschleife
repeat
ios.sfx_fire(0,1)
waitcnt(clkfreq*2 + cnt)
ios.sfx_fire(1,1)
waitcnt(clkfreq*2 + cnt)
DAT ' Spiel SFX Datenblock
fx_paddel_links byte $01, $01, $A0, $0F, $00, $00, $00, $00, $FF, $00, $00, $80
fx_paddel_techts byte $01, $01, $80, $0F, $00, $00, $00, $00, $FF, $00, $00, $80
{{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
seq ?
}}