## [Essentials](Functions-(Essentials)) !> `FAudioGMS_Init()` and `FAudioGMS_Update()` 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. If in doubt, place the `AUDIO` object in the first room in your game. - [`FAudioGMS_Init(spatialDistanceScale, timestep)`](Functions-(Essentials)?id=_initspatialdistancescale-timestep) - [`FAudioGMS_Update()`](Functions-(Essentials)?id=_update) - [`FAudioGMS_Destroy()`](Functions-(Essentials)?id=_destroy)   ## [Loading Sound Assets](Functions-(Loading-Sound-Assets)) - [`FAudioGMS_StaticSound_LoadWAV(filePath)`](Functions-(Loading-Sound-Assets)?id=_staticsound_loadwavfilepath) - [`FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID)`](Functions-(Loading-Sound-Assets)?id=_staticsound_createsoundinstance) - [`FAudioGMS_StaticSound_Destroy(staticSoundID)`](Functions-(Loading-Sound-Assets)?id=_staticsound_destroystaticsoundid) - [`FAudioGMS_StreamingSound_LoadOGG(filePath)`](Functions-(Loading-Sound-Assets)?id=_streamingsound_loadoggfilepath)   ## [Sound Instances](Functions-(Sound-Instances)) - [`FAudioGMS_SoundInstance_Play(soundInstanceID, loop)`](Functions-(Sound-Instances)?id=_soundinstance_playsoundinstanceid-loop) - [`FAudioGMS_SoundInstance_Pause(soundInstanceID)`](Functions-(Sound-Instances)?id=_soundinstance_pausesoundinstanceid) - [`FAudioGMS_SoundInstance_Stop(soundInstanceID)`](Functions-(Sound-Instances)?id=_soundinstance_stopsoundinstanceid) - [`FAudioGMS_SoundInstance_Destroy(soundInstanceID)`](Functions-(Sound-Instances)?id=_soundinstance_destroysoundinstanceid) - [`FAudioGMS_SoundInstance_DestroyWhenFinished(soundInstanceID)`](Functions-(Sound-Instances)?id=_soundinstance_destroywhenfinishedsoundinstanceid) - [`FAudioGMS_SoundInstance_SetPan(soundInstanceID, pan)`](Functions-(Sound-Instances)?id=_soundinstance_setpansoundinstanceid-pan) - [`FAudioGMS_SoundInstance_SetPitch(soundInstanceID, pitch)`](Functions-(Sound-Instances)?id=_soundinstance_setpitchsoundinstanceid-pitch) - [`FAudioGMS_SoundInstance_SetVolume(soundInstanceID, volume)`](Functions-(Sound-Instances)?id=_soundinstance_setvolumesoundinstanceid-volume) - [`FAudioGMS_SoundInstance_Set3DPosition(soundInstanceID, x, y, z)`](Functions-(Sound-Instances)?id=_soundinstance_set3dpositionsoundinstanceid-x-y-z) - [`FAudioGMS_SoundInstance_Set3DVelocity(soundInstanceID, xVelocity, yVelocity, zVelocity)`](Functions-(Sound-Instances)?id=_soundinstance_set3dvelocitysoundinstanceid-xvelocity-yvelocity-zvelocity) - [`FAudioGMS_SoundInstance_SetTrackPositionInSeconds(soundInstanceID, trackPositionInSeconds)`](Functions-(Sound-Instances)?id=_soundinstance_settrackpositioninsecondssoundinstanceid-trackpositioninseconds) - [`FAudioGMS_SoundInstance_SetLoopPoints(soundInstanceID, loopStartInMilliseconds, loopEndInMilliseconds)`](http://moonside.games/docs/FAudioGMS/#/latest/Functions-(Sound-Instances)?id=_soundinstance_setlooppointssoundinstanceid-loopstartinmilliseconds-loopendinmilliseconds)? - [`FAudioGMS_SoundInstance_SetVolumeOverTime(soundInstanceID, volume, milliseconds)`](Functions-(Sound-Instances)?id=_soundinstance_setvolumeovertimesoundinstanceid-volume-milliseconds) - [`FAudioGMS_SoundInstance_SetLowPassFilter(soundInstanceID, lowPassFilter, Q)`](Functions-(Sound-Instances)?id=_soundinstance_setlowpassfiltersoundinstanceid-lowpassfilter-q) - [`FAudioGMS_SoundInstance_SetHighPassFilter(soundInstanceID, highPassFilter, Q)`](Functions-(Sound-Instances)?id=_soundinstance_sethighpassfiltersoundinstanceid-lowpassfilter-q) - [`FAudioGMS_SoundInstance_SetBandPassFilter(soundInstanceID, bandPassFilter, Q)`](Functions-(Sound-Instances)?id=_soundinstance_sethighpassfiltersoundinstanceid-highpassfilter-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()`](Functions-(Effect-Chains)?id=_effectchain_create) - [`FAudioGMS_EffectChain_Destroy(effectChainID)`](Functions-(Effect-Chains)?id=_effectchain_destroyeffectchainid) - [`FAudioGMS_EffectChain_AddDefaultReverb(effectChainID)`](Functions-(Effect-Chains)?id=_effectchain_adddefaultreverbeffectchainid) - [`FAudioGMS_EffectChain_AddReverb(...)`](Functions-(Effect-Chains)?id=_effectchain_addreverb) - [`FAudioGMS_SoundInstance_SetEffectChain(soundInstanceID, effectChainID, effectGain)`](Functions-(Effect-Chains)?id=_soundinstance_seteffectchainsoundinstanceid-effectchainid-effectgain) - [`FAudioGMS_SoundInstance_SetEffectGain(soundInstanceID, effectGain)`](Functions-(Effect-Chains)?id=_soundinstance_seteffectgainsoundinstanceid-effectgain) - [`FAudioGMS_SetMasteringEffectChain(effectChainID, effectGain)`](Functions-(Effect-Chains)?id=_setmasteringeffectchaineffectchainid-effectgain) - [`FAudioGMS_SetMasteringEffectGain(effectGain)`](Functions-(Effect-Chains)?id=_setmasteringeffectgaineffectgain)   ## [Global Behaviours](Functions-(Global-Behaviours)) - [`FAudioGMS_SetListenerPosition(x, y, z)`](Functions-(Global-Behaviours)?id=_setlistenerpositionx-y-z) - [`FAudioGMS_SetListenerVelocity(xVelocity, yVelocity, zVelocity)`](Functions-(Global-Behaviours)?id=_setlistenervelocityxvelocity-yvelocity-zvelocity) - [`FAudioGMS_PauseAll()`](Functions-(Global-Behaviours)?id=_pauseall) - [`FAudioGMS_ResumeAll()`](Functions-(Global-Behaviours)?id=_resumeall) - [`FAudioGMS_StopAll`](Functions-(Global-Behaviours)?id=_stopall)