func_ready():FmodServer.set_software_format(0,FmodServer.FMOD_SPEAKERMODE_STEREO,0)FmodServer.init(1024,FmodServer.FMOD_STUDIO_INIT_LIVEUPDATE,FmodServer.FMOD_INIT_NORMAL)FmodServer.set_sound_3d_settings(1.0,64.0,1.0)# load banksFmodServer.load_bank("res://Master.bank",FmodServer.FMOD_STUDIO_LOAD_BANK_NORMAL)FmodServer.load_bank("res://Master.strings.bank",FmodServer.FMOD_STUDIO_LOAD_BANK_NORMAL)FmodServer.load_bank("res://Music.bank",FmodServer.FMOD_STUDIO_LOAD_BANK_NORMAL)# register listenerFmodServer.add_listener(0,self)# play some eventsFmodServer.play_one_shot("event:/Music/Level 02",self)varmy_music_event=FmodServer.create_event_instance("event:/Music/Level 01")FmodServer.start_event(my_music_event)vart=Timer.new()t.set_wait_time(3)t.set_one_shot(true)self.add_child(t)t.start()yield(t,"timeout")FmodServer.mute_all_events();t=Timer.new()t.set_wait_time(3)t.set_one_shot(true)self.add_child(t)t.start()yield(t,"timeout")FmodServer.unmute_all_events()
func_ready():# set up FMODFmodServer.set_software_format(0,FmodServer.FMOD_SPEAKERMODE_STEREO,0)FmodServer.init(1024,FmodServer.FMOD_STUDIO_INIT_LIVEUPDATE,FmodServer.FMOD_INIT_NORMAL)FmodServer.set_sound_3d_settings(1/0,64.0,1.0)# load banksFmodServer.load_bank("res://Master.bank",FmodServer.FMOD_STUDIO_LOAD_BANK_NORMAL)FmodServer.load_bank("res://Master.strings.bank",FmodServer.FMOD_STUDIO_LOAD_BANK_NORMAL)FmodServer.load_bank("res://Music.bank",FmodServer.FMOD_STUDIO_LOAD_BANK_NORMAL)# register listenerFmodServer.add_listener(0,self)# play some eventsFmodServer.play_one_shot("event:/Music/Level 02",self)varmy_music_event=FmodServer.create_event_instance("event:/Music/Level 01")FmodServer.start_event(my_music_event)vart=Timer.new()t.set_wait_time(3)t.set_one_shot(true)self.add_child(t)t.start()yield(t,"timeout")FmodServer.pause_all_events(true)t=Timer.new()t.set_wait_time(3)t.set_one_shot(true)self.add_child(t)t.start()yield(t,"timeout")FmodServer.pause_all_events(false)
Changing the default audio output device
By default, FMOD will use the primary audio output device as determined by the operating system. This can be changed at runtime, ideally through your game's Options Menu.
Here, get_available_drivers() returns an Array which contains a Dictionary for every audio driver found. Each Dictionary contains fields such as the name, sample rate
and speaker config of the respective driver. Most importantly, it contains the id for that driver.
1234567
# retrieve all available audio driversvardrivers=FmodServer.get_available_drivers()# change the audio driver# you must pass in the id of the respective driverFmodServer.set_driver(id)# retrieve the id of the currently set drivervarid=FmodServer.get_driver()
Reducing audio playback latency
You may encounter that the audio playback has some latency. This may be caused by the DSP buffer size. You can change the value before initialisation to adjust it:
12345
FmodServer.set_dsp_buffer_size(512,4)# retrieve the buffer lengthFmodServer.get_dsp_buffer_length()# retrieve the number of buffersFmodServer.get_dsp_num_buffers()
Profiling & querying performance data
get_performance_data returns an object which contains current performance stats for CPU, Memory and File Streaming usage of both FMOD Studio and the Core System.
123456
# called every framevarperf_data=FmodServer.get_performance_data()print(perf_data.CPU)print(perf_data.memory)print(perf_data.file)