class_audioserver.rst 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/4.3/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/4.3/doc/classes/AudioServer.xml.
  6. .. _class_AudioServer:
  7. AudioServer
  8. ===========
  9. **Inherits:** :ref:`Object<class_Object>`
  10. Server interface for low-level audio access.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. **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.
  15. .. rst-class:: classref-introduction-group
  16. Tutorials
  17. ---------
  18. - :doc:`Audio buses <../tutorials/audio/audio_buses>`
  19. - `Audio Device Changer Demo <https://godotengine.org/asset-library/asset/2758>`__
  20. - `Audio Microphone Record Demo <https://godotengine.org/asset-library/asset/2760>`__
  21. - `Audio Spectrum Visualizer Demo <https://godotengine.org/asset-library/asset/2762>`__
  22. .. rst-class:: classref-reftable-group
  23. Properties
  24. ----------
  25. .. table::
  26. :widths: auto
  27. +-----------------------------+------------------------------------------------------------------------------+---------------+
  28. | :ref:`int<class_int>` | :ref:`bus_count<class_AudioServer_property_bus_count>` | ``1`` |
  29. +-----------------------------+------------------------------------------------------------------------------+---------------+
  30. | :ref:`String<class_String>` | :ref:`input_device<class_AudioServer_property_input_device>` | ``"Default"`` |
  31. +-----------------------------+------------------------------------------------------------------------------+---------------+
  32. | :ref:`String<class_String>` | :ref:`output_device<class_AudioServer_property_output_device>` | ``"Default"`` |
  33. +-----------------------------+------------------------------------------------------------------------------+---------------+
  34. | :ref:`float<class_float>` | :ref:`playback_speed_scale<class_AudioServer_property_playback_speed_scale>` | ``1.0`` |
  35. +-----------------------------+------------------------------------------------------------------------------+---------------+
  36. .. rst-class:: classref-reftable-group
  37. Methods
  38. -------
  39. .. table::
  40. :widths: auto
  41. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | |void| | :ref:`add_bus<class_AudioServer_method_add_bus>`\ (\ at_position\: :ref:`int<class_int>` = -1\ ) |
  43. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | |void| | :ref:`add_bus_effect<class_AudioServer_method_add_bus_effect>`\ (\ bus_idx\: :ref:`int<class_int>`, effect\: :ref:`AudioEffect<class_AudioEffect>`, at_position\: :ref:`int<class_int>` = -1\ ) |
  45. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`AudioBusLayout<class_AudioBusLayout>` | :ref:`generate_bus_layout<class_AudioServer_method_generate_bus_layout>`\ (\ ) |const| |
  47. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`int<class_int>` | :ref:`get_bus_channels<class_AudioServer_method_get_bus_channels>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
  49. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`AudioEffect<class_AudioEffect>` | :ref:`get_bus_effect<class_AudioServer_method_get_bus_effect>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |
  51. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`int<class_int>` | :ref:`get_bus_effect_count<class_AudioServer_method_get_bus_effect_count>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |
  53. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`get_bus_effect_instance<class_AudioServer_method_get_bus_effect_instance>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>` = 0\ ) |
  55. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | :ref:`int<class_int>` | :ref:`get_bus_index<class_AudioServer_method_get_bus_index>`\ (\ bus_name\: :ref:`StringName<class_StringName>`\ ) |const| |
  57. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | :ref:`String<class_String>` | :ref:`get_bus_name<class_AudioServer_method_get_bus_name>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
  59. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`float<class_float>` | :ref:`get_bus_peak_volume_left_db<class_AudioServer_method_get_bus_peak_volume_left_db>`\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| |
  61. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`float<class_float>` | :ref:`get_bus_peak_volume_right_db<class_AudioServer_method_get_bus_peak_volume_right_db>`\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| |
  63. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`StringName<class_StringName>` | :ref:`get_bus_send<class_AudioServer_method_get_bus_send>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
  65. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`float<class_float>` | :ref:`get_bus_volume_db<class_AudioServer_method_get_bus_volume_db>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
  67. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_input_device_list<class_AudioServer_method_get_input_device_list>`\ (\ ) |
  69. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`float<class_float>` | :ref:`get_mix_rate<class_AudioServer_method_get_mix_rate>`\ (\ ) |const| |
  71. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_output_device_list<class_AudioServer_method_get_output_device_list>`\ (\ ) |
  73. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :ref:`float<class_float>` | :ref:`get_output_latency<class_AudioServer_method_get_output_latency>`\ (\ ) |const| |
  75. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` | :ref:`get_speaker_mode<class_AudioServer_method_get_speaker_mode>`\ (\ ) |const| |
  77. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | :ref:`float<class_float>` | :ref:`get_time_since_last_mix<class_AudioServer_method_get_time_since_last_mix>`\ (\ ) |const| |
  79. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | :ref:`float<class_float>` | :ref:`get_time_to_next_mix<class_AudioServer_method_get_time_to_next_mix>`\ (\ ) |const| |
  81. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | :ref:`bool<class_bool>` | :ref:`is_bus_bypassing_effects<class_AudioServer_method_is_bus_bypassing_effects>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
  83. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. | :ref:`bool<class_bool>` | :ref:`is_bus_effect_enabled<class_AudioServer_method_is_bus_effect_enabled>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |const| |
  85. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  86. | :ref:`bool<class_bool>` | :ref:`is_bus_mute<class_AudioServer_method_is_bus_mute>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
  87. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  88. | :ref:`bool<class_bool>` | :ref:`is_bus_solo<class_AudioServer_method_is_bus_solo>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| |
  89. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  90. | :ref:`bool<class_bool>` | :ref:`is_stream_registered_as_sample<class_AudioServer_method_is_stream_registered_as_sample>`\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) |
  91. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  92. | |void| | :ref:`lock<class_AudioServer_method_lock>`\ (\ ) |
  93. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  94. | |void| | :ref:`move_bus<class_AudioServer_method_move_bus>`\ (\ index\: :ref:`int<class_int>`, to_index\: :ref:`int<class_int>`\ ) |
  95. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  96. | |void| | :ref:`register_stream_as_sample<class_AudioServer_method_register_stream_as_sample>`\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) |
  97. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  98. | |void| | :ref:`remove_bus<class_AudioServer_method_remove_bus>`\ (\ index\: :ref:`int<class_int>`\ ) |
  99. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  100. | |void| | :ref:`remove_bus_effect<class_AudioServer_method_remove_bus_effect>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |
  101. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  102. | |void| | :ref:`set_bus_bypass_effects<class_AudioServer_method_set_bus_bypass_effects>`\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) |
  103. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  104. | |void| | :ref:`set_bus_effect_enabled<class_AudioServer_method_set_bus_effect_enabled>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
  105. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  106. | |void| | :ref:`set_bus_layout<class_AudioServer_method_set_bus_layout>`\ (\ bus_layout\: :ref:`AudioBusLayout<class_AudioBusLayout>`\ ) |
  107. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  108. | |void| | :ref:`set_bus_mute<class_AudioServer_method_set_bus_mute>`\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) |
  109. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  110. | |void| | :ref:`set_bus_name<class_AudioServer_method_set_bus_name>`\ (\ bus_idx\: :ref:`int<class_int>`, name\: :ref:`String<class_String>`\ ) |
  111. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  112. | |void| | :ref:`set_bus_send<class_AudioServer_method_set_bus_send>`\ (\ bus_idx\: :ref:`int<class_int>`, send\: :ref:`StringName<class_StringName>`\ ) |
  113. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  114. | |void| | :ref:`set_bus_solo<class_AudioServer_method_set_bus_solo>`\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) |
  115. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  116. | |void| | :ref:`set_bus_volume_db<class_AudioServer_method_set_bus_volume_db>`\ (\ bus_idx\: :ref:`int<class_int>`, volume_db\: :ref:`float<class_float>`\ ) |
  117. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  118. | |void| | :ref:`set_enable_tagging_used_audio_streams<class_AudioServer_method_set_enable_tagging_used_audio_streams>`\ (\ enable\: :ref:`bool<class_bool>`\ ) |
  119. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  120. | |void| | :ref:`swap_bus_effects<class_AudioServer_method_swap_bus_effects>`\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, by_effect_idx\: :ref:`int<class_int>`\ ) |
  121. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  122. | |void| | :ref:`unlock<class_AudioServer_method_unlock>`\ (\ ) |
  123. +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  124. .. rst-class:: classref-section-separator
  125. ----
  126. .. rst-class:: classref-descriptions-group
  127. Signals
  128. -------
  129. .. _class_AudioServer_signal_bus_layout_changed:
  130. .. rst-class:: classref-signal
  131. **bus_layout_changed**\ (\ ) :ref:`๐Ÿ”—<class_AudioServer_signal_bus_layout_changed>`
  132. Emitted when an audio bus is added, deleted, or moved.
  133. .. rst-class:: classref-item-separator
  134. ----
  135. .. _class_AudioServer_signal_bus_renamed:
  136. .. rst-class:: classref-signal
  137. **bus_renamed**\ (\ bus_index\: :ref:`int<class_int>`, old_name\: :ref:`StringName<class_StringName>`, new_name\: :ref:`StringName<class_StringName>`\ ) :ref:`๐Ÿ”—<class_AudioServer_signal_bus_renamed>`
  138. Emitted when the audio bus at ``bus_index`` is renamed from ``old_name`` to ``new_name``.
  139. .. rst-class:: classref-section-separator
  140. ----
  141. .. rst-class:: classref-descriptions-group
  142. Enumerations
  143. ------------
  144. .. _enum_AudioServer_SpeakerMode:
  145. .. rst-class:: classref-enumeration
  146. enum **SpeakerMode**: :ref:`๐Ÿ”—<enum_AudioServer_SpeakerMode>`
  147. .. _class_AudioServer_constant_SPEAKER_MODE_STEREO:
  148. .. rst-class:: classref-enumeration-constant
  149. :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_MODE_STEREO** = ``0``
  150. Two or fewer speakers were detected.
  151. .. _class_AudioServer_constant_SPEAKER_SURROUND_31:
  152. .. rst-class:: classref-enumeration-constant
  153. :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_31** = ``1``
  154. A 3.1 channel surround setup was detected.
  155. .. _class_AudioServer_constant_SPEAKER_SURROUND_51:
  156. .. rst-class:: classref-enumeration-constant
  157. :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_51** = ``2``
  158. A 5.1 channel surround setup was detected.
  159. .. _class_AudioServer_constant_SPEAKER_SURROUND_71:
  160. .. rst-class:: classref-enumeration-constant
  161. :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_71** = ``3``
  162. A 7.1 channel surround setup was detected.
  163. .. rst-class:: classref-item-separator
  164. ----
  165. .. _enum_AudioServer_PlaybackType:
  166. .. rst-class:: classref-enumeration
  167. enum **PlaybackType**: :ref:`๐Ÿ”—<enum_AudioServer_PlaybackType>`
  168. .. _class_AudioServer_constant_PLAYBACK_TYPE_DEFAULT:
  169. .. rst-class:: classref-enumeration-constant
  170. :ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_DEFAULT** = ``0``
  171. **Experimental:** This constant may be changed or removed in future versions.
  172. The playback will be considered of the type declared at :ref:`ProjectSettings.audio/general/default_playback_type<class_ProjectSettings_property_audio/general/default_playback_type>`.
  173. .. _class_AudioServer_constant_PLAYBACK_TYPE_STREAM:
  174. .. rst-class:: classref-enumeration-constant
  175. :ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_STREAM** = ``1``
  176. **Experimental:** This constant may be changed or removed in future versions.
  177. Force the playback to be considered as a stream.
  178. .. _class_AudioServer_constant_PLAYBACK_TYPE_SAMPLE:
  179. .. rst-class:: classref-enumeration-constant
  180. :ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_SAMPLE** = ``2``
  181. **Experimental:** This constant may be changed or removed in future versions.
  182. Force the playback to be considered as a sample. This can provide lower latency and more stable playback (with less risk of audio crackling), at the cost of having less flexibility.
  183. \ **Note:** Only currently supported on the web platform.
  184. \ **Note:** :ref:`AudioEffect<class_AudioEffect>`\ s are not supported when playback is considered as a sample.
  185. .. _class_AudioServer_constant_PLAYBACK_TYPE_MAX:
  186. .. rst-class:: classref-enumeration-constant
  187. :ref:`PlaybackType<enum_AudioServer_PlaybackType>` **PLAYBACK_TYPE_MAX** = ``3``
  188. **Experimental:** This constant may be changed or removed in future versions.
  189. Represents the size of the :ref:`PlaybackType<enum_AudioServer_PlaybackType>` enum.
  190. .. rst-class:: classref-section-separator
  191. ----
  192. .. rst-class:: classref-descriptions-group
  193. Property Descriptions
  194. ---------------------
  195. .. _class_AudioServer_property_bus_count:
  196. .. rst-class:: classref-property
  197. :ref:`int<class_int>` **bus_count** = ``1`` :ref:`๐Ÿ”—<class_AudioServer_property_bus_count>`
  198. .. rst-class:: classref-property-setget
  199. - |void| **set_bus_count**\ (\ value\: :ref:`int<class_int>`\ )
  200. - :ref:`int<class_int>` **get_bus_count**\ (\ )
  201. Number of available audio buses.
  202. .. rst-class:: classref-item-separator
  203. ----
  204. .. _class_AudioServer_property_input_device:
  205. .. rst-class:: classref-property
  206. :ref:`String<class_String>` **input_device** = ``"Default"`` :ref:`๐Ÿ”—<class_AudioServer_property_input_device>`
  207. .. rst-class:: classref-property-setget
  208. - |void| **set_input_device**\ (\ value\: :ref:`String<class_String>`\ )
  209. - :ref:`String<class_String>` **get_input_device**\ (\ )
  210. Name of the current device for audio input (see :ref:`get_input_device_list<class_AudioServer_method_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"``.
  211. \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_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.
  212. .. rst-class:: classref-item-separator
  213. ----
  214. .. _class_AudioServer_property_output_device:
  215. .. rst-class:: classref-property
  216. :ref:`String<class_String>` **output_device** = ``"Default"`` :ref:`๐Ÿ”—<class_AudioServer_property_output_device>`
  217. .. rst-class:: classref-property-setget
  218. - |void| **set_output_device**\ (\ value\: :ref:`String<class_String>`\ )
  219. - :ref:`String<class_String>` **get_output_device**\ (\ )
  220. Name of the current device for audio output (see :ref:`get_output_device_list<class_AudioServer_method_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"``.
  221. .. rst-class:: classref-item-separator
  222. ----
  223. .. _class_AudioServer_property_playback_speed_scale:
  224. .. rst-class:: classref-property
  225. :ref:`float<class_float>` **playback_speed_scale** = ``1.0`` :ref:`๐Ÿ”—<class_AudioServer_property_playback_speed_scale>`
  226. .. rst-class:: classref-property-setget
  227. - |void| **set_playback_speed_scale**\ (\ value\: :ref:`float<class_float>`\ )
  228. - :ref:`float<class_float>` **get_playback_speed_scale**\ (\ )
  229. 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). See also :ref:`Engine.time_scale<class_Engine_property_time_scale>` to affect the general simulation speed, which is independent from :ref:`playback_speed_scale<class_AudioServer_property_playback_speed_scale>`.
  230. .. rst-class:: classref-section-separator
  231. ----
  232. .. rst-class:: classref-descriptions-group
  233. Method Descriptions
  234. -------------------
  235. .. _class_AudioServer_method_add_bus:
  236. .. rst-class:: classref-method
  237. |void| **add_bus**\ (\ at_position\: :ref:`int<class_int>` = -1\ ) :ref:`๐Ÿ”—<class_AudioServer_method_add_bus>`
  238. Adds a bus at ``at_position``.
  239. .. rst-class:: classref-item-separator
  240. ----
  241. .. _class_AudioServer_method_add_bus_effect:
  242. .. rst-class:: classref-method
  243. |void| **add_bus_effect**\ (\ bus_idx\: :ref:`int<class_int>`, effect\: :ref:`AudioEffect<class_AudioEffect>`, at_position\: :ref:`int<class_int>` = -1\ ) :ref:`๐Ÿ”—<class_AudioServer_method_add_bus_effect>`
  244. Adds an :ref:`AudioEffect<class_AudioEffect>` effect to the bus ``bus_idx`` at ``at_position``.
  245. .. rst-class:: classref-item-separator
  246. ----
  247. .. _class_AudioServer_method_generate_bus_layout:
  248. .. rst-class:: classref-method
  249. :ref:`AudioBusLayout<class_AudioBusLayout>` **generate_bus_layout**\ (\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_generate_bus_layout>`
  250. Generates an :ref:`AudioBusLayout<class_AudioBusLayout>` using the available buses and effects.
  251. .. rst-class:: classref-item-separator
  252. ----
  253. .. _class_AudioServer_method_get_bus_channels:
  254. .. rst-class:: classref-method
  255. :ref:`int<class_int>` **get_bus_channels**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_channels>`
  256. Returns the number of channels of the bus at index ``bus_idx``.
  257. .. rst-class:: classref-item-separator
  258. ----
  259. .. _class_AudioServer_method_get_bus_effect:
  260. .. rst-class:: classref-method
  261. :ref:`AudioEffect<class_AudioEffect>` **get_bus_effect**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_effect>`
  262. Returns the :ref:`AudioEffect<class_AudioEffect>` at position ``effect_idx`` in bus ``bus_idx``.
  263. .. rst-class:: classref-item-separator
  264. ----
  265. .. _class_AudioServer_method_get_bus_effect_count:
  266. .. rst-class:: classref-method
  267. :ref:`int<class_int>` **get_bus_effect_count**\ (\ bus_idx\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_effect_count>`
  268. Returns the number of effects on the bus at ``bus_idx``.
  269. .. rst-class:: classref-item-separator
  270. ----
  271. .. _class_AudioServer_method_get_bus_effect_instance:
  272. .. rst-class:: classref-method
  273. :ref:`AudioEffectInstance<class_AudioEffectInstance>` **get_bus_effect_instance**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>` = 0\ ) :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_effect_instance>`
  274. Returns the :ref:`AudioEffectInstance<class_AudioEffectInstance>` assigned to the given bus and effect indices (and optionally channel).
  275. .. rst-class:: classref-item-separator
  276. ----
  277. .. _class_AudioServer_method_get_bus_index:
  278. .. rst-class:: classref-method
  279. :ref:`int<class_int>` **get_bus_index**\ (\ bus_name\: :ref:`StringName<class_StringName>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_index>`
  280. Returns the index of the bus with the name ``bus_name``. Returns ``-1`` if no bus with the specified name exist.
  281. .. rst-class:: classref-item-separator
  282. ----
  283. .. _class_AudioServer_method_get_bus_name:
  284. .. rst-class:: classref-method
  285. :ref:`String<class_String>` **get_bus_name**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_name>`
  286. Returns the name of the bus with the index ``bus_idx``.
  287. .. rst-class:: classref-item-separator
  288. ----
  289. .. _class_AudioServer_method_get_bus_peak_volume_left_db:
  290. .. rst-class:: classref-method
  291. :ref:`float<class_float>` **get_bus_peak_volume_left_db**\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_peak_volume_left_db>`
  292. Returns the peak volume of the left speaker at bus index ``bus_idx`` and channel index ``channel``.
  293. .. rst-class:: classref-item-separator
  294. ----
  295. .. _class_AudioServer_method_get_bus_peak_volume_right_db:
  296. .. rst-class:: classref-method
  297. :ref:`float<class_float>` **get_bus_peak_volume_right_db**\ (\ bus_idx\: :ref:`int<class_int>`, channel\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_peak_volume_right_db>`
  298. Returns the peak volume of the right speaker at bus index ``bus_idx`` and channel index ``channel``.
  299. .. rst-class:: classref-item-separator
  300. ----
  301. .. _class_AudioServer_method_get_bus_send:
  302. .. rst-class:: classref-method
  303. :ref:`StringName<class_StringName>` **get_bus_send**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_send>`
  304. Returns the name of the bus that the bus at index ``bus_idx`` sends to.
  305. .. rst-class:: classref-item-separator
  306. ----
  307. .. _class_AudioServer_method_get_bus_volume_db:
  308. .. rst-class:: classref-method
  309. :ref:`float<class_float>` **get_bus_volume_db**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_bus_volume_db>`
  310. Returns the volume of the bus at index ``bus_idx`` in dB.
  311. .. rst-class:: classref-item-separator
  312. ----
  313. .. _class_AudioServer_method_get_input_device_list:
  314. .. rst-class:: classref-method
  315. :ref:`PackedStringArray<class_PackedStringArray>` **get_input_device_list**\ (\ ) :ref:`๐Ÿ”—<class_AudioServer_method_get_input_device_list>`
  316. Returns the names of all audio input devices detected on the system.
  317. \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_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.
  318. .. rst-class:: classref-item-separator
  319. ----
  320. .. _class_AudioServer_method_get_mix_rate:
  321. .. rst-class:: classref-method
  322. :ref:`float<class_float>` **get_mix_rate**\ (\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_mix_rate>`
  323. Returns the sample rate at the output of the **AudioServer**.
  324. .. rst-class:: classref-item-separator
  325. ----
  326. .. _class_AudioServer_method_get_output_device_list:
  327. .. rst-class:: classref-method
  328. :ref:`PackedStringArray<class_PackedStringArray>` **get_output_device_list**\ (\ ) :ref:`๐Ÿ”—<class_AudioServer_method_get_output_device_list>`
  329. Returns the names of all audio output devices detected on the system.
  330. .. rst-class:: classref-item-separator
  331. ----
  332. .. _class_AudioServer_method_get_output_latency:
  333. .. rst-class:: classref-method
  334. :ref:`float<class_float>` **get_output_latency**\ (\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_output_latency>`
  335. Returns the audio driver's effective output latency. This is based on :ref:`ProjectSettings.audio/driver/output_latency<class_ProjectSettings_property_audio/driver/output_latency>`, but the exact returned value will differ depending on the operating system and audio driver.
  336. \ **Note:** This can be expensive; it is not recommended to call :ref:`get_output_latency<class_AudioServer_method_get_output_latency>` every frame.
  337. .. rst-class:: classref-item-separator
  338. ----
  339. .. _class_AudioServer_method_get_speaker_mode:
  340. .. rst-class:: classref-method
  341. :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **get_speaker_mode**\ (\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_speaker_mode>`
  342. Returns the speaker configuration.
  343. .. rst-class:: classref-item-separator
  344. ----
  345. .. _class_AudioServer_method_get_time_since_last_mix:
  346. .. rst-class:: classref-method
  347. :ref:`float<class_float>` **get_time_since_last_mix**\ (\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_time_since_last_mix>`
  348. Returns the relative time since the last mix occurred.
  349. .. rst-class:: classref-item-separator
  350. ----
  351. .. _class_AudioServer_method_get_time_to_next_mix:
  352. .. rst-class:: classref-method
  353. :ref:`float<class_float>` **get_time_to_next_mix**\ (\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_get_time_to_next_mix>`
  354. Returns the relative time until the next mix occurs.
  355. .. rst-class:: classref-item-separator
  356. ----
  357. .. _class_AudioServer_method_is_bus_bypassing_effects:
  358. .. rst-class:: classref-method
  359. :ref:`bool<class_bool>` **is_bus_bypassing_effects**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_is_bus_bypassing_effects>`
  360. If ``true``, the bus at index ``bus_idx`` is bypassing effects.
  361. .. rst-class:: classref-item-separator
  362. ----
  363. .. _class_AudioServer_method_is_bus_effect_enabled:
  364. .. rst-class:: classref-method
  365. :ref:`bool<class_bool>` **is_bus_effect_enabled**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_is_bus_effect_enabled>`
  366. If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
  367. .. rst-class:: classref-item-separator
  368. ----
  369. .. _class_AudioServer_method_is_bus_mute:
  370. .. rst-class:: classref-method
  371. :ref:`bool<class_bool>` **is_bus_mute**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_is_bus_mute>`
  372. If ``true``, the bus at index ``bus_idx`` is muted.
  373. .. rst-class:: classref-item-separator
  374. ----
  375. .. _class_AudioServer_method_is_bus_solo:
  376. .. rst-class:: classref-method
  377. :ref:`bool<class_bool>` **is_bus_solo**\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const| :ref:`๐Ÿ”—<class_AudioServer_method_is_bus_solo>`
  378. If ``true``, the bus at index ``bus_idx`` is in solo mode.
  379. .. rst-class:: classref-item-separator
  380. ----
  381. .. _class_AudioServer_method_is_stream_registered_as_sample:
  382. .. rst-class:: classref-method
  383. :ref:`bool<class_bool>` **is_stream_registered_as_sample**\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_is_stream_registered_as_sample>`
  384. **Experimental:** This method may be changed or removed in future versions.
  385. If ``true``, the stream is registered as a sample. The engine will not have to register it before playing the sample.
  386. If ``false``, the stream will have to be registered before playing it. To prevent lag spikes, register the stream as sample with :ref:`register_stream_as_sample<class_AudioServer_method_register_stream_as_sample>`.
  387. .. rst-class:: classref-item-separator
  388. ----
  389. .. _class_AudioServer_method_lock:
  390. .. rst-class:: classref-method
  391. |void| **lock**\ (\ ) :ref:`๐Ÿ”—<class_AudioServer_method_lock>`
  392. Locks the audio driver's main loop.
  393. \ **Note:** Remember to unlock it afterwards.
  394. .. rst-class:: classref-item-separator
  395. ----
  396. .. _class_AudioServer_method_move_bus:
  397. .. rst-class:: classref-method
  398. |void| **move_bus**\ (\ index\: :ref:`int<class_int>`, to_index\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_move_bus>`
  399. Moves the bus from index ``index`` to index ``to_index``.
  400. .. rst-class:: classref-item-separator
  401. ----
  402. .. _class_AudioServer_method_register_stream_as_sample:
  403. .. rst-class:: classref-method
  404. |void| **register_stream_as_sample**\ (\ stream\: :ref:`AudioStream<class_AudioStream>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_register_stream_as_sample>`
  405. **Experimental:** This method may be changed or removed in future versions.
  406. Forces the registration of a stream as a sample.
  407. \ **Note:** Lag spikes may occur when calling this method, especially on single-threaded builds. It is suggested to call this method while loading assets, where the lag spike could be masked, instead of registering the sample right before it needs to be played.
  408. .. rst-class:: classref-item-separator
  409. ----
  410. .. _class_AudioServer_method_remove_bus:
  411. .. rst-class:: classref-method
  412. |void| **remove_bus**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_remove_bus>`
  413. Removes the bus at index ``index``.
  414. .. rst-class:: classref-item-separator
  415. ----
  416. .. _class_AudioServer_method_remove_bus_effect:
  417. .. rst-class:: classref-method
  418. |void| **remove_bus_effect**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_remove_bus_effect>`
  419. Removes the effect at index ``effect_idx`` from the bus at index ``bus_idx``.
  420. .. rst-class:: classref-item-separator
  421. ----
  422. .. _class_AudioServer_method_set_bus_bypass_effects:
  423. .. rst-class:: classref-method
  424. |void| **set_bus_bypass_effects**\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_bypass_effects>`
  425. If ``true``, the bus at index ``bus_idx`` is bypassing effects.
  426. .. rst-class:: classref-item-separator
  427. ----
  428. .. _class_AudioServer_method_set_bus_effect_enabled:
  429. .. rst-class:: classref-method
  430. |void| **set_bus_effect_enabled**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_effect_enabled>`
  431. If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
  432. .. rst-class:: classref-item-separator
  433. ----
  434. .. _class_AudioServer_method_set_bus_layout:
  435. .. rst-class:: classref-method
  436. |void| **set_bus_layout**\ (\ bus_layout\: :ref:`AudioBusLayout<class_AudioBusLayout>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_layout>`
  437. Overwrites the currently used :ref:`AudioBusLayout<class_AudioBusLayout>`.
  438. .. rst-class:: classref-item-separator
  439. ----
  440. .. _class_AudioServer_method_set_bus_mute:
  441. .. rst-class:: classref-method
  442. |void| **set_bus_mute**\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_mute>`
  443. If ``true``, the bus at index ``bus_idx`` is muted.
  444. .. rst-class:: classref-item-separator
  445. ----
  446. .. _class_AudioServer_method_set_bus_name:
  447. .. rst-class:: classref-method
  448. |void| **set_bus_name**\ (\ bus_idx\: :ref:`int<class_int>`, name\: :ref:`String<class_String>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_name>`
  449. Sets the name of the bus at index ``bus_idx`` to ``name``.
  450. .. rst-class:: classref-item-separator
  451. ----
  452. .. _class_AudioServer_method_set_bus_send:
  453. .. rst-class:: classref-method
  454. |void| **set_bus_send**\ (\ bus_idx\: :ref:`int<class_int>`, send\: :ref:`StringName<class_StringName>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_send>`
  455. Connects the output of the bus at ``bus_idx`` to the bus named ``send``.
  456. .. rst-class:: classref-item-separator
  457. ----
  458. .. _class_AudioServer_method_set_bus_solo:
  459. .. rst-class:: classref-method
  460. |void| **set_bus_solo**\ (\ bus_idx\: :ref:`int<class_int>`, enable\: :ref:`bool<class_bool>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_solo>`
  461. If ``true``, the bus at index ``bus_idx`` is in solo mode.
  462. .. rst-class:: classref-item-separator
  463. ----
  464. .. _class_AudioServer_method_set_bus_volume_db:
  465. .. rst-class:: classref-method
  466. |void| **set_bus_volume_db**\ (\ bus_idx\: :ref:`int<class_int>`, volume_db\: :ref:`float<class_float>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_bus_volume_db>`
  467. Sets the volume of the bus at index ``bus_idx`` to ``volume_db``.
  468. .. rst-class:: classref-item-separator
  469. ----
  470. .. _class_AudioServer_method_set_enable_tagging_used_audio_streams:
  471. .. rst-class:: classref-method
  472. |void| **set_enable_tagging_used_audio_streams**\ (\ enable\: :ref:`bool<class_bool>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_set_enable_tagging_used_audio_streams>`
  473. If set to ``true``, all instances of :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` will call :ref:`AudioStreamPlayback._tag_used_streams<class_AudioStreamPlayback_private_method__tag_used_streams>` every mix step.
  474. \ **Note:** This is enabled by default in the editor, as it is used by editor plugins for the audio stream previews.
  475. .. rst-class:: classref-item-separator
  476. ----
  477. .. _class_AudioServer_method_swap_bus_effects:
  478. .. rst-class:: classref-method
  479. |void| **swap_bus_effects**\ (\ bus_idx\: :ref:`int<class_int>`, effect_idx\: :ref:`int<class_int>`, by_effect_idx\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_AudioServer_method_swap_bus_effects>`
  480. Swaps the position of two effects in bus ``bus_idx``.
  481. .. rst-class:: classref-item-separator
  482. ----
  483. .. _class_AudioServer_method_unlock:
  484. .. rst-class:: classref-method
  485. |void| **unlock**\ (\ ) :ref:`๐Ÿ”—<class_AudioServer_method_unlock>`
  486. Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)
  487. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  488. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  489. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  490. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  491. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  492. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  493. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  494. .. |void| replace:: :abbr:`void (No return value.)`