2017-09-12 20:42:36 +00:00
<?xml version="1.0" encoding="UTF-8" ?>
2021-11-05 14:02:42 +00:00
<class name= "AudioServer" inherits= "Object" version= "3.5" >
2017-09-12 20:42:36 +00:00
<brief_description >
2019-06-21 23:04:47 +00:00
Server interface for low-level audio access.
2017-09-12 20:42:36 +00:00
</brief_description>
<description >
2020-01-23 10:14:14 +00:00
[AudioServer] is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
2017-09-12 20:42:36 +00:00
</description>
<tutorials >
2021-11-15 16:11:20 +00:00
<link title= "Audio buses" > $DOCS_URL/tutorials/audio/audio_buses.html</link>
2020-10-01 08:34:47 +00:00
<link title= "Audio Device Changer Demo" > https://godotengine.org/asset-library/asset/525</link>
<link title= "Audio Mic Record Demo" > https://godotengine.org/asset-library/asset/527</link>
<link title= "Audio Spectrum Demo" > https://godotengine.org/asset-library/asset/528</link>
2017-09-12 20:42:36 +00:00
</tutorials>
<methods >
<method name= "add_bus" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "at_position" type= "int" default= "-1" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Adds a bus at [code]at_position[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "add_bus_effect" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "effect" type= "AudioEffect" />
<argument index= "2" name= "at_position" type= "int" default= "-1" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Adds an [AudioEffect] effect to the bus [code]bus_idx[/code] at [code]at_position[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
2020-01-20 12:11:47 +00:00
<method name= "capture_get_device" >
2021-07-30 13:28:05 +00:00
<return type= "String" />
2018-08-20 22:35:30 +00:00
<description >
2022-02-14 17:03:34 +00:00
Name of the current device for audio input (see [method capture_get_device_list]). The value [code]"Default"[/code] means that the system-wide default audio input is currently used.
2018-08-20 22:35:30 +00:00
</description>
</method>
2020-01-20 12:11:47 +00:00
<method name= "capture_get_device_list" >
2021-07-30 13:28:05 +00:00
<return type= "Array" />
2019-07-09 17:11:11 +00:00
<description >
2020-01-20 12:11:47 +00:00
Returns the names of all audio input devices detected on the system.
2019-07-09 17:11:11 +00:00
</description>
</method>
2020-01-20 12:11:47 +00:00
<method name= "capture_set_device" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "name" type= "String" />
2019-07-09 17:11:11 +00:00
<description >
2022-02-14 17:03:34 +00:00
Sets which audio input device is used for audio capture. On systems with multiple audio inputs (such as analog and USB), this can be used to select the audio input device. Setting the value [code]"Default"[/code] will record audio from the system-wide default audio input. If an invalid device name is set, the value will be reverted back to [code]"Default"[/code].
2019-07-09 17:11:11 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "generate_bus_layout" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "AudioBusLayout" />
2017-09-12 20:42:36 +00:00
<description >
2019-02-13 08:23:29 +00:00
Generates an [AudioBusLayout] using the available buses and effects.
2017-09-12 20:42:36 +00:00
</description>
</method>
2018-12-07 16:38:40 +00:00
<method name= "get_bus_channels" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "int" />
<argument index= "0" name= "bus_idx" type= "int" />
2018-12-07 16:38:40 +00:00
<description >
Returns the amount of channels of the bus at index [code]bus_idx[/code].
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "get_bus_effect" >
2021-07-30 13:28:05 +00:00
<return type= "AudioEffect" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "effect_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the [AudioEffect] at position [code]effect_idx[/code] in bus [code]bus_idx[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "get_bus_effect_count" >
2021-07-30 13:28:05 +00:00
<return type= "int" />
<argument index= "0" name= "bus_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the number of effects on the bus at [code]bus_idx[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
2019-04-15 12:49:41 +00:00
<method name= "get_bus_effect_instance" >
2021-07-30 13:28:05 +00:00
<return type= "AudioEffectInstance" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "effect_idx" type= "int" />
<argument index= "2" name= "channel" type= "int" default= "0" />
2019-04-15 12:49:41 +00:00
<description >
2020-01-23 10:14:14 +00:00
Returns the [AudioEffectInstance] assigned to the given bus and effect indices (and optionally channel).
2019-04-15 12:49:41 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "get_bus_index" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "int" />
<argument index= "0" name= "bus_name" type= "String" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the index of the bus with the name [code]bus_name[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "get_bus_name" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "String" />
<argument index= "0" name= "bus_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the name of the bus with the index [code]bus_idx[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "get_bus_peak_volume_left_db" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "float" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "channel" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the peak volume of the left speaker at bus index [code]bus_idx[/code] and channel index [code]channel[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "get_bus_peak_volume_right_db" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "float" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "channel" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the peak volume of the right speaker at bus index [code]bus_idx[/code] and channel index [code]channel[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "get_bus_send" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "String" />
<argument index= "0" name= "bus_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the name of the bus that the bus at index [code]bus_idx[/code] sends to.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "get_bus_volume_db" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "float" />
<argument index= "0" name= "bus_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the volume of the bus at index [code]bus_idx[/code] in dB.
2017-09-12 20:42:36 +00:00
</description>
</method>
2018-04-10 08:12:42 +00:00
<method name= "get_device_list" >
2021-07-30 13:28:05 +00:00
<return type= "Array" />
2018-04-10 08:12:42 +00:00
<description >
2020-01-20 12:11:47 +00:00
Returns the names of all audio devices detected on the system.
2019-06-02 23:01:42 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "get_mix_rate" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "float" />
2017-09-12 20:42:36 +00:00
<description >
2019-07-02 10:04:26 +00:00
Returns the sample rate at the output of the [AudioServer].
2017-09-12 20:42:36 +00:00
</description>
</method>
2019-04-27 17:11:39 +00:00
<method name= "get_output_latency" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "float" />
2019-04-27 17:11:39 +00:00
<description >
2019-07-02 10:04:26 +00:00
Returns the audio driver's output latency.
2019-04-27 17:11:39 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "get_speaker_mode" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "int" enum= "AudioServer.SpeakerMode" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Returns the speaker configuration.
2017-09-12 20:42:36 +00:00
</description>
</method>
2019-04-27 17:11:39 +00:00
<method name= "get_time_since_last_mix" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "float" />
2019-04-27 17:11:39 +00:00
<description >
2020-01-23 10:14:14 +00:00
Returns the relative time since the last mix occurred.
2019-04-27 17:11:39 +00:00
</description>
</method>
<method name= "get_time_to_next_mix" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "float" />
2019-04-27 17:11:39 +00:00
<description >
2020-01-23 10:14:14 +00:00
Returns the relative time until the next mix occurs.
2019-04-27 17:11:39 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "is_bus_bypassing_effects" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "bool" />
<argument index= "0" name= "bus_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the bus at index [code]bus_idx[/code] is bypassing effects.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "is_bus_effect_enabled" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "bool" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "effect_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the effect at index [code]effect_idx[/code] on the bus at index [code]bus_idx[/code] is enabled.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "is_bus_mute" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "bool" />
<argument index= "0" name= "bus_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the bus at index [code]bus_idx[/code] is muted.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "is_bus_solo" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "bool" />
<argument index= "0" name= "bus_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the bus at index [code]bus_idx[/code] is in solo mode.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "lock" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2017-09-12 20:42:36 +00:00
<description >
2020-01-23 10:14:14 +00:00
Locks the audio driver's main loop.
[b]Note:[/b] Remember to unlock it afterwards.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "move_bus" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "index" type= "int" />
<argument index= "1" name= "to_index" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Moves the bus from index [code]index[/code] to index [code]to_index[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "remove_bus" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "index" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Removes the bus at index [code]index[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "remove_bus_effect" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "effect_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Removes the effect at index [code]effect_idx[/code] from the bus at index [code]bus_idx[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_bypass_effects" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "enable" type= "bool" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the bus at index [code]bus_idx[/code] is bypassing effects.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_effect_enabled" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "effect_idx" type= "int" />
<argument index= "2" name= "enabled" type= "bool" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the effect at index [code]effect_idx[/code] on the bus at index [code]bus_idx[/code] is enabled.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_layout" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_layout" type= "AudioBusLayout" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Overwrites the currently used [AudioBusLayout].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_mute" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "enable" type= "bool" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the bus at index [code]bus_idx[/code] is muted.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_name" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "name" type= "String" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Sets the name of the bus at index [code]bus_idx[/code] to [code]name[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_send" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "send" type= "String" />
2017-09-12 20:42:36 +00:00
<description >
2017-11-18 00:29:32 +00:00
Connects the output of the bus at [code]bus_idx[/code] to the bus named [code]send[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_solo" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "enable" type= "bool" />
2017-09-12 20:42:36 +00:00
<description >
2018-12-20 12:46:54 +00:00
If [code]true[/code], the bus at index [code]bus_idx[/code] is in solo mode.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "set_bus_volume_db" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "volume_db" type= "float" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Sets the volume of the bus at index [code]bus_idx[/code] to [code]volume_db[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "swap_bus_effects" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "bus_idx" type= "int" />
<argument index= "1" name= "effect_idx" type= "int" />
<argument index= "2" name= "by_effect_idx" type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2017-10-10 14:00:10 +00:00
Swaps the position of two effects in bus [code]bus_idx[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "unlock" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2017-09-12 20:42:36 +00:00
<description >
2019-06-21 23:04:47 +00:00
Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)
2017-09-12 20:42:36 +00:00
</description>
</method>
</methods>
2019-06-02 23:01:42 +00:00
<members >
2019-07-02 10:04:26 +00:00
<member name= "bus_count" type= "int" setter= "set_bus_count" getter= "get_bus_count" default= "1" >
Number of available audio buses.
2019-06-02 23:01:42 +00:00
</member>
2019-07-02 10:04:26 +00:00
<member name= "device" type= "String" setter= "set_device" getter= "get_device" default= ""Default"" >
2022-02-14 17:03:34 +00:00
Name of the current device for audio output (see [method get_device_list]). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value [code]"Default"[/code] will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to [code]"Default"[/code].
2019-07-09 17:11:11 +00:00
</member>
2019-07-02 10:04:26 +00:00
<member name= "global_rate_scale" type= "float" setter= "set_global_rate_scale" getter= "get_global_rate_scale" default= "1.0" >
2019-06-02 23:01:42 +00:00
Scales the rate at which audio is played (i.e. setting it to [code]0.5[/code] will make the audio be played twice as fast).
</member>
</members>
2017-09-12 20:42:36 +00:00
<signals >
<signal name= "bus_layout_changed" >
<description >
2017-10-10 14:00:10 +00:00
Emitted when the [AudioBusLayout] changes.
2017-09-12 20:42:36 +00:00
</description>
</signal>
</signals>
<constants >
2017-11-24 22:16:30 +00:00
<constant name= "SPEAKER_MODE_STEREO" value= "0" enum= "SpeakerMode" >
2019-07-02 10:04:26 +00:00
Two or fewer speakers were detected.
2017-09-15 23:46:14 +00:00
</constant>
2018-10-25 13:14:36 +00:00
<constant name= "SPEAKER_SURROUND_31" value= "1" enum= "SpeakerMode" >
2019-07-02 10:04:26 +00:00
A 3.1 channel surround setup was detected.
2018-10-25 13:14:36 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "SPEAKER_SURROUND_51" value= "2" enum= "SpeakerMode" >
2020-01-23 10:14:14 +00:00
A 5.1 channel surround setup was detected.
2017-09-15 23:46:14 +00:00
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "SPEAKER_SURROUND_71" value= "3" enum= "SpeakerMode" >
2020-01-23 10:14:14 +00:00
A 7.1 channel surround setup was detected.
2017-09-15 23:46:14 +00:00
</constant>
2017-09-12 20:42:36 +00:00
</constants>
</class>