## [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_Destroy(soundInstanceID)`]() - [`FAudioGMS_SoundInstance_DestroyWhenFinished(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)`]()   ## [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 Behaviours](Functions-(Global-Behaviours)) - [`FAudioGMS_SetListenerPosition(x, y, z)`]() - [`FAudioGMS_SetListenerVelocity(xVelocity, yVelocity, zVelocity)`]() - [`FAudioGMS_PauseAll()`]() - [`FAudioGMS_ResumeAll()`]() - [`FAudioGMS_StopAll`]()