InitAudioEffects ( )
Parameters
| None. |
Description
|
Enables the audio effects graph for WAV and Ogg playback. Enables the four-group XAudio2 effects graph. Call before the first PCM playback, including EmitSound, non-MIDI PlayMusic and world-driven sound. Loading sounds first is allowed. Repeated successful calls return 1 without resetting state. Late calls or initialization failures return 0. An initialization failure preserves legacy playback; it never reports a partially initialized graph. MIDI alone does not prevent initialization. Call InitAudioEffects before the first WAV/Ogg playback. Configuration commands return 1 on success or 0 on failure; use AudioLastError for the reason. Finite numeric values and valid handles are required in Debug and Release. Queries preserve errors unless the query itself fails. Audio effects process decoded WAV and mono/stereo Ogg at an internal 48 kHz. MIDI uses a separate backend. Sound defaults are copied to independent playing channels. Runtime pause freezes sources, tails and transition time; pausing one channel leaves shared tails running. Event waits service transitions and release completed source resources without ChannelPlaying polling. Lightweight completed handles are retained until program shutdown. The interactive Audio Playground sample demonstrates the whole effects family together. Requires Extended mode. See also: AudioEffectsEnabled, AudioLastError, SoundGroup, AudioReverb. |
Example
; InitAudioEffects Example ; ------------------------ ; Requires Extended mode. ; Effects must be initialized before the first WAV/Ogg playback If Not InitAudioEffects() Then RuntimeError AudioLastError$() Graphics 640,480,0,2 SetBuffer BackBuffer() ; A looping machine hum to hear the effect on sound=LoadSound("../../../samples/audio/media/machine.wav") If sound=0 Then RuntimeError "The audio sample media is missing." LoopSound sound SoundVolume sound,0.25 ; Meters make the audio state visible on screen RequireAudio AudioMasterMeter(True) RequireAudio AudioGroupMeter(0,True) again=1 channel=PlaySound(sound) If channel=0 Then RuntimeError "Unable to play the example sound." While Not KeyDown(1) ; Space calls InitAudioEffects again - repeats return 1 without resetting If KeyHit(57) Then again=InitAudioEffects() Cls Text 0,0,"Space: call InitAudioEffects again Esc: exit" Text 0,20,"InitAudioEffects() succeeded before the first playback" Text 0,40,"Repeated call returned: "+again Text 0,80,"Group 0 peak: "+AudioGroupPeak(0)+" RMS: "+AudioGroupRMS(0) Text 0,100,"Master peak: "+AudioMasterPeak()+" RMS: "+AudioMasterRMS() Flip Wend ; Let shared effect tails fade before the program ends For group=0 To 3 RequireAudio AudioGroupClearEffects(group) Next StopChannel channel FreeSound sound End ; Stop with the recorded reason if an audio-effects call fails Function RequireAudio(success) If Not success Then RuntimeError AudioLastError$() End Function
Index