## [Essentials](Functions-(Essentials)) !> `FAudioGMS_Init()` and `FAudioGMS_Destroy()` are absolutely essential to FAudio playback. You should run `FAudioGMS_Init()` at the start of your game (usually on boot) and `FAudioGMS_Update()` should be run once every frame, usually in the Step event of a persistent instance. - [`FAudioGMS_Init(spatialDistanceScale, timestep)`](Functions-(Essentials)?id=faudiogms_initspatialdistancescale-timestep) - [`FAudioGMS_Update()`](Functions-(Essentials)?id=faudiogms_update) - [`FAudioGMS_Destroy()`](Functions-(Essentials)?id=faudiogms_destroy)   ## [Loading Sound Assets](Functions-(Loading-Sound-Assets)) - `FAudioGMS_StaticSound_LoadWAV(filePath)` - `FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID)` - `FAudioGMS_StaticSound_Destroy(staticSoundID)` - `FAudioGMS_StreamingSound_LoadOGG(filepath)`   ## [Sound Instances](Functions-(Sound-Instances)) - `FAudioGMS_SoundInstance_Play(soundInstanceID, loop)` - `FAudioGMS_SoundInstance_Pause(soundInstanceID)` - `FAudioGMS_SoundInstance_Stop(soundInstanceID)` - `FAudioGMS_SoundInstance_SetPan(soundInstanceID, pan)` - `FAudioGMS_SoundInstance_SetPitch(soundInstanceID, pitch)` - `FAudioGMS_SoundInstance_SetVolume(soundInstanceID, volume)` - `FAudioGMS_SoundInstance_Set3DPosition(soundInstanceID, x, y, z)` - `FAudioGMS_SoundInstance_Set3DVelocity(soundInstanceID, xVelocity, yVelocity, zVelocity)` - `FAudioGMS_SoundInstance_SetTrackPositionInSeconds(soundInstanceID, trackPositionInSeconds)` - `FAudioGMS_SoundInstance_SetVolumeOverTime(soundInstanceID, volume, milliseconds)` - `FAudioGMS_SoundInstance_SetLowPassFilter(soundInstanceID, lowPassFilter, Q)` - `FAudioGMS_SoundInstance_SetHighPassFilter(soundInstanceID, highPassFilter, Q)` - `FAudioGMS_SoundInstance_SetBandPassFilter(soundInstanceID, bandPassFilter, Q)` - `FAudioGMS_SoundInstance_GetPitch(soundInstanceID)` - `FAudioGMS_SoundInstance_GetVolume(soundInstanceID)` - `FAudioGMS_SoundInstance_GetTrackLengthInSeconds(soundInstanceID)` - `FAudioGMS_SoundInstance_GetTrackPositionInSeconds(soundInstanceID)` - `FAudioGMS_SoundInstance_Destroy(soundInstanceID)` - `FAudioGMS_SoundInstance_DestroyWhenFinished(soundInstanceID)`   ## [Effect Chains](Functions-(Effect-Chains)) - `FAudioGMS_EffectChain_Create()` - `FAudioGMS_EffectChain_AddDefaultReverb(effectChainID)` - `FAudioGMS_EffectChain_AddReverb(...)` - `FAudioGMS_EffectChain_Destroy(effectChainID)` - `FAudioGMS_SoundInstance_SetEffectChain(soundInstanceID, effectChainID, effectGain)` - `FAudioGMS_SoundInstance_SetEffectGain(soundInstanceID, effectGain)` - `FAudioGMS_SetMasteringEffectChain(effectChainID, effectGain)` - `FAudioGMS_SetMasteringEffectGain(effectGain)`   ## [Global Properties](Functions-(Global-Properties)) - `FAudioGMS_SetListenerPosition(x, y, z)` - `FAudioGMS_SetListenerVelocity(xVelocity, yVelocity, zVelocity)` - `FAudioGMS_PauseAll()` - `FAudioGMS_ResumeAll()` - `FAudioGMS_StopAll`