:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/4.0/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/4.0/doc/classes/AudioServer.xml. .. _class_AudioServer: AudioServer =========== **Inherits:** :ref:`Object` Server interface for low-level audio access. .. rst-class:: classref-introduction-group Description ----------- **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. .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`Audio buses <../tutorials/audio/audio_buses>` - `Audio Device Changer Demo `__ - `Audio Mic Record Demo `__ - `Audio Spectrum Demo `__ .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------------+------------------------------------------------------------------------------+---------------+ | :ref:`int` | :ref:`bus_count` | ``1`` | +-----------------------------+------------------------------------------------------------------------------+---------------+ | :ref:`String` | :ref:`input_device` | ``"Default"`` | +-----------------------------+------------------------------------------------------------------------------+---------------+ | :ref:`String` | :ref:`output_device` | ``"Default"`` | +-----------------------------+------------------------------------------------------------------------------+---------------+ | :ref:`float` | :ref:`playback_speed_scale` | ``1.0`` | +-----------------------------+------------------------------------------------------------------------------+---------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_bus` **(** :ref:`int` at_position=-1 **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_bus_effect` **(** :ref:`int` bus_idx, :ref:`AudioEffect` effect, :ref:`int` at_position=-1 **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AudioBusLayout` | :ref:`generate_bus_layout` **(** **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_bus_channels` **(** :ref:`int` bus_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AudioEffect` | :ref:`get_bus_effect` **(** :ref:`int` bus_idx, :ref:`int` effect_idx **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_bus_effect_count` **(** :ref:`int` bus_idx **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AudioEffectInstance` | :ref:`get_bus_effect_instance` **(** :ref:`int` bus_idx, :ref:`int` effect_idx, :ref:`int` channel=0 **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_bus_index` **(** :ref:`StringName` bus_name **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_bus_name` **(** :ref:`int` bus_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_bus_peak_volume_left_db` **(** :ref:`int` bus_idx, :ref:`int` channel **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_bus_peak_volume_right_db` **(** :ref:`int` bus_idx, :ref:`int` channel **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_bus_send` **(** :ref:`int` bus_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_bus_volume_db` **(** :ref:`int` bus_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`get_input_device_list` **(** **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_mix_rate` **(** **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`get_output_device_list` **(** **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_output_latency` **(** **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`SpeakerMode` | :ref:`get_speaker_mode` **(** **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_time_since_last_mix` **(** **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_time_to_next_mix` **(** **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_bus_bypassing_effects` **(** :ref:`int` bus_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_bus_effect_enabled` **(** :ref:`int` bus_idx, :ref:`int` effect_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_bus_mute` **(** :ref:`int` bus_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_bus_solo` **(** :ref:`int` bus_idx **)** |const| | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`lock` **(** **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`move_bus` **(** :ref:`int` index, :ref:`int` to_index **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_bus` **(** :ref:`int` index **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_bus_effect` **(** :ref:`int` bus_idx, :ref:`int` effect_idx **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_bypass_effects` **(** :ref:`int` bus_idx, :ref:`bool` enable **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_effect_enabled` **(** :ref:`int` bus_idx, :ref:`int` effect_idx, :ref:`bool` enabled **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_layout` **(** :ref:`AudioBusLayout` bus_layout **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_mute` **(** :ref:`int` bus_idx, :ref:`bool` enable **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_name` **(** :ref:`int` bus_idx, :ref:`String` name **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_send` **(** :ref:`int` bus_idx, :ref:`StringName` send **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_solo` **(** :ref:`int` bus_idx, :ref:`bool` enable **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_bus_volume_db` **(** :ref:`int` bus_idx, :ref:`float` volume_db **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_enable_tagging_used_audio_streams` **(** :ref:`bool` enable **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`swap_bus_effects` **(** :ref:`int` bus_idx, :ref:`int` effect_idx, :ref:`int` by_effect_idx **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`unlock` **(** **)** | +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Signals ------- .. _class_AudioServer_signal_bus_layout_changed: .. rst-class:: classref-signal **bus_layout_changed** **(** **)** Emitted when the :ref:`AudioBusLayout` changes. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_AudioServer_SpeakerMode: .. rst-class:: classref-enumeration enum **SpeakerMode**: .. _class_AudioServer_constant_SPEAKER_MODE_STEREO: .. rst-class:: classref-enumeration-constant :ref:`SpeakerMode` **SPEAKER_MODE_STEREO** = ``0`` Two or fewer speakers were detected. .. _class_AudioServer_constant_SPEAKER_SURROUND_31: .. rst-class:: classref-enumeration-constant :ref:`SpeakerMode` **SPEAKER_SURROUND_31** = ``1`` A 3.1 channel surround setup was detected. .. _class_AudioServer_constant_SPEAKER_SURROUND_51: .. rst-class:: classref-enumeration-constant :ref:`SpeakerMode` **SPEAKER_SURROUND_51** = ``2`` A 5.1 channel surround setup was detected. .. _class_AudioServer_constant_SPEAKER_SURROUND_71: .. rst-class:: classref-enumeration-constant :ref:`SpeakerMode` **SPEAKER_SURROUND_71** = ``3`` A 7.1 channel surround setup was detected. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_AudioServer_property_bus_count: .. rst-class:: classref-property :ref:`int` **bus_count** = ``1`` .. rst-class:: classref-property-setget - void **set_bus_count** **(** :ref:`int` value **)** - :ref:`int` **get_bus_count** **(** **)** Number of available audio buses. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_property_input_device: .. rst-class:: classref-property :ref:`String` **input_device** = ``"Default"`` .. rst-class:: classref-property-setget - void **set_input_device** **(** :ref:`String` value **)** - :ref:`String` **get_input_device** **(** **)** Name of the current device for audio input (see :ref:`get_input_device_list`). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value ``"Default"`` will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to ``"Default"``. \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_property_output_device: .. rst-class:: classref-property :ref:`String` **output_device** = ``"Default"`` .. rst-class:: classref-property-setget - void **set_output_device** **(** :ref:`String` value **)** - :ref:`String` **get_output_device** **(** **)** Name of the current device for audio output (see :ref:`get_output_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 ``"Default"`` will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to ``"Default"``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_property_playback_speed_scale: .. rst-class:: classref-property :ref:`float` **playback_speed_scale** = ``1.0`` .. rst-class:: classref-property-setget - void **set_playback_speed_scale** **(** :ref:`float` value **)** - :ref:`float` **get_playback_speed_scale** **(** **)** Scales the rate at which audio is played (i.e. setting it to ``0.5`` will make the audio be played at half its speed). .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_AudioServer_method_add_bus: .. rst-class:: classref-method void **add_bus** **(** :ref:`int` at_position=-1 **)** Adds a bus at ``at_position``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_add_bus_effect: .. rst-class:: classref-method void **add_bus_effect** **(** :ref:`int` bus_idx, :ref:`AudioEffect` effect, :ref:`int` at_position=-1 **)** Adds an :ref:`AudioEffect` effect to the bus ``bus_idx`` at ``at_position``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_generate_bus_layout: .. rst-class:: classref-method :ref:`AudioBusLayout` **generate_bus_layout** **(** **)** |const| Generates an :ref:`AudioBusLayout` using the available buses and effects. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_channels: .. rst-class:: classref-method :ref:`int` **get_bus_channels** **(** :ref:`int` bus_idx **)** |const| Returns the number of channels of the bus at index ``bus_idx``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_effect: .. rst-class:: classref-method :ref:`AudioEffect` **get_bus_effect** **(** :ref:`int` bus_idx, :ref:`int` effect_idx **)** Returns the :ref:`AudioEffect` at position ``effect_idx`` in bus ``bus_idx``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_effect_count: .. rst-class:: classref-method :ref:`int` **get_bus_effect_count** **(** :ref:`int` bus_idx **)** Returns the number of effects on the bus at ``bus_idx``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_effect_instance: .. rst-class:: classref-method :ref:`AudioEffectInstance` **get_bus_effect_instance** **(** :ref:`int` bus_idx, :ref:`int` effect_idx, :ref:`int` channel=0 **)** Returns the :ref:`AudioEffectInstance` assigned to the given bus and effect indices (and optionally channel). .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_index: .. rst-class:: classref-method :ref:`int` **get_bus_index** **(** :ref:`StringName` bus_name **)** |const| Returns the index of the bus with the name ``bus_name``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_name: .. rst-class:: classref-method :ref:`String` **get_bus_name** **(** :ref:`int` bus_idx **)** |const| Returns the name of the bus with the index ``bus_idx``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_peak_volume_left_db: .. rst-class:: classref-method :ref:`float` **get_bus_peak_volume_left_db** **(** :ref:`int` bus_idx, :ref:`int` channel **)** |const| Returns the peak volume of the left speaker at bus index ``bus_idx`` and channel index ``channel``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_peak_volume_right_db: .. rst-class:: classref-method :ref:`float` **get_bus_peak_volume_right_db** **(** :ref:`int` bus_idx, :ref:`int` channel **)** |const| Returns the peak volume of the right speaker at bus index ``bus_idx`` and channel index ``channel``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_send: .. rst-class:: classref-method :ref:`StringName` **get_bus_send** **(** :ref:`int` bus_idx **)** |const| Returns the name of the bus that the bus at index ``bus_idx`` sends to. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_bus_volume_db: .. rst-class:: classref-method :ref:`float` **get_bus_volume_db** **(** :ref:`int` bus_idx **)** |const| Returns the volume of the bus at index ``bus_idx`` in dB. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_input_device_list: .. rst-class:: classref-method :ref:`PackedStringArray` **get_input_device_list** **(** **)** Returns the names of all audio input devices detected on the system. \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_mix_rate: .. rst-class:: classref-method :ref:`float` **get_mix_rate** **(** **)** |const| Returns the sample rate at the output of the **AudioServer**. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_output_device_list: .. rst-class:: classref-method :ref:`PackedStringArray` **get_output_device_list** **(** **)** Returns the names of all audio output devices detected on the system. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_output_latency: .. rst-class:: classref-method :ref:`float` **get_output_latency** **(** **)** |const| Returns the audio driver's output latency. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_speaker_mode: .. rst-class:: classref-method :ref:`SpeakerMode` **get_speaker_mode** **(** **)** |const| Returns the speaker configuration. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_time_since_last_mix: .. rst-class:: classref-method :ref:`float` **get_time_since_last_mix** **(** **)** |const| Returns the relative time since the last mix occurred. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_get_time_to_next_mix: .. rst-class:: classref-method :ref:`float` **get_time_to_next_mix** **(** **)** |const| Returns the relative time until the next mix occurs. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_is_bus_bypassing_effects: .. rst-class:: classref-method :ref:`bool` **is_bus_bypassing_effects** **(** :ref:`int` bus_idx **)** |const| If ``true``, the bus at index ``bus_idx`` is bypassing effects. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_is_bus_effect_enabled: .. rst-class:: classref-method :ref:`bool` **is_bus_effect_enabled** **(** :ref:`int` bus_idx, :ref:`int` effect_idx **)** |const| If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_is_bus_mute: .. rst-class:: classref-method :ref:`bool` **is_bus_mute** **(** :ref:`int` bus_idx **)** |const| If ``true``, the bus at index ``bus_idx`` is muted. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_is_bus_solo: .. rst-class:: classref-method :ref:`bool` **is_bus_solo** **(** :ref:`int` bus_idx **)** |const| If ``true``, the bus at index ``bus_idx`` is in solo mode. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_lock: .. rst-class:: classref-method void **lock** **(** **)** Locks the audio driver's main loop. \ **Note:** Remember to unlock it afterwards. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_move_bus: .. rst-class:: classref-method void **move_bus** **(** :ref:`int` index, :ref:`int` to_index **)** Moves the bus from index ``index`` to index ``to_index``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_remove_bus: .. rst-class:: classref-method void **remove_bus** **(** :ref:`int` index **)** Removes the bus at index ``index``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_remove_bus_effect: .. rst-class:: classref-method void **remove_bus_effect** **(** :ref:`int` bus_idx, :ref:`int` effect_idx **)** Removes the effect at index ``effect_idx`` from the bus at index ``bus_idx``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_bypass_effects: .. rst-class:: classref-method void **set_bus_bypass_effects** **(** :ref:`int` bus_idx, :ref:`bool` enable **)** If ``true``, the bus at index ``bus_idx`` is bypassing effects. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_effect_enabled: .. rst-class:: classref-method void **set_bus_effect_enabled** **(** :ref:`int` bus_idx, :ref:`int` effect_idx, :ref:`bool` enabled **)** If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_layout: .. rst-class:: classref-method void **set_bus_layout** **(** :ref:`AudioBusLayout` bus_layout **)** Overwrites the currently used :ref:`AudioBusLayout`. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_mute: .. rst-class:: classref-method void **set_bus_mute** **(** :ref:`int` bus_idx, :ref:`bool` enable **)** If ``true``, the bus at index ``bus_idx`` is muted. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_name: .. rst-class:: classref-method void **set_bus_name** **(** :ref:`int` bus_idx, :ref:`String` name **)** Sets the name of the bus at index ``bus_idx`` to ``name``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_send: .. rst-class:: classref-method void **set_bus_send** **(** :ref:`int` bus_idx, :ref:`StringName` send **)** Connects the output of the bus at ``bus_idx`` to the bus named ``send``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_solo: .. rst-class:: classref-method void **set_bus_solo** **(** :ref:`int` bus_idx, :ref:`bool` enable **)** If ``true``, the bus at index ``bus_idx`` is in solo mode. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_bus_volume_db: .. rst-class:: classref-method void **set_bus_volume_db** **(** :ref:`int` bus_idx, :ref:`float` volume_db **)** Sets the volume of the bus at index ``bus_idx`` to ``volume_db``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_set_enable_tagging_used_audio_streams: .. rst-class:: classref-method void **set_enable_tagging_used_audio_streams** **(** :ref:`bool` enable **)** .. container:: contribute There is currently no description for this method. Please help us by :ref:`contributing one `! .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_swap_bus_effects: .. rst-class:: classref-method void **swap_bus_effects** **(** :ref:`int` bus_idx, :ref:`int` effect_idx, :ref:`int` by_effect_idx **)** Swaps the position of two effects in bus ``bus_idx``. .. rst-class:: classref-item-separator ---- .. _class_AudioServer_method_unlock: .. rst-class:: classref-method void **unlock** **(** **)** Unlocks the audio driver's main loop. (After locking it, you should always unlock it.) .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`