class_audioserver.rst 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the AudioServer.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_AudioServer:
  6. AudioServer
  7. ===========
  8. **Inherits:** :ref:`Object<class_Object>`
  9. **Category:** Core
  10. Brief Description
  11. -----------------
  12. Server interface for low level audio access.
  13. Methods
  14. -------
  15. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  16. | void | :ref:`add_bus<class_AudioServer_method_add_bus>` **(** :ref:`int<class_int>` at_position=-1 **)** |
  17. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  18. | void | :ref:`add_bus_effect<class_AudioServer_method_add_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_AudioEffect>` effect, :ref:`int<class_int>` at_position=-1 **)** |
  19. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  20. | :ref:`String<class_String>` | :ref:`capture_get_device<class_AudioServer_method_capture_get_device>` **(** **)** |
  21. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  22. | :ref:`Array<class_Array>` | :ref:`capture_get_device_list<class_AudioServer_method_capture_get_device_list>` **(** **)** |
  23. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  24. | void | :ref:`capture_set_device<class_AudioServer_method_capture_set_device>` **(** :ref:`String<class_String>` name **)** |
  25. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  26. | :ref:`AudioBusLayout<class_AudioBusLayout>` | :ref:`generate_bus_layout<class_AudioServer_method_generate_bus_layout>` **(** **)** const |
  27. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`int<class_int>` | :ref:`get_bus_channels<class_AudioServer_method_get_bus_channels>` **(** :ref:`int<class_int>` bus_idx **)** const |
  29. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`int<class_int>` | :ref:`get_bus_count<class_AudioServer_method_get_bus_count>` **(** **)** const |
  31. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`AudioEffect<class_AudioEffect>` | :ref:`get_bus_effect<class_AudioServer_method_get_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** |
  33. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`int<class_int>` | :ref:`get_bus_effect_count<class_AudioServer_method_get_bus_effect_count>` **(** :ref:`int<class_int>` bus_idx **)** |
  35. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. | :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`get_bus_effect_instance<class_AudioServer_method_get_bus_effect_instance>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` channel=0 **)** |
  37. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`int<class_int>` | :ref:`get_bus_index<class_AudioServer_method_get_bus_index>` **(** :ref:`String<class_String>` bus_name **)** const |
  39. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`String<class_String>` | :ref:`get_bus_name<class_AudioServer_method_get_bus_name>` **(** :ref:`int<class_int>` bus_idx **)** const |
  41. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`float<class_float>` | :ref:`get_bus_peak_volume_left_db<class_AudioServer_method_get_bus_peak_volume_left_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** const |
  43. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`float<class_float>` | :ref:`get_bus_peak_volume_right_db<class_AudioServer_method_get_bus_peak_volume_right_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** const |
  45. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`String<class_String>` | :ref:`get_bus_send<class_AudioServer_method_get_bus_send>` **(** :ref:`int<class_int>` bus_idx **)** const |
  47. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`float<class_float>` | :ref:`get_bus_volume_db<class_AudioServer_method_get_bus_volume_db>` **(** :ref:`int<class_int>` bus_idx **)** const |
  49. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`String<class_String>` | :ref:`get_device<class_AudioServer_method_get_device>` **(** **)** |
  51. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`Array<class_Array>` | :ref:`get_device_list<class_AudioServer_method_get_device_list>` **(** **)** |
  53. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`float<class_float>` | :ref:`get_mix_rate<class_AudioServer_method_get_mix_rate>` **(** **)** const |
  55. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` | :ref:`get_speaker_mode<class_AudioServer_method_get_speaker_mode>` **(** **)** const |
  57. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | :ref:`bool<class_bool>` | :ref:`is_bus_bypassing_effects<class_AudioServer_method_is_bus_bypassing_effects>` **(** :ref:`int<class_int>` bus_idx **)** const |
  59. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`bool<class_bool>` | :ref:`is_bus_effect_enabled<class_AudioServer_method_is_bus_effect_enabled>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** const |
  61. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`bool<class_bool>` | :ref:`is_bus_mute<class_AudioServer_method_is_bus_mute>` **(** :ref:`int<class_int>` bus_idx **)** const |
  63. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`bool<class_bool>` | :ref:`is_bus_solo<class_AudioServer_method_is_bus_solo>` **(** :ref:`int<class_int>` bus_idx **)** const |
  65. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | void | :ref:`lock<class_AudioServer_method_lock>` **(** **)** |
  67. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | void | :ref:`move_bus<class_AudioServer_method_move_bus>` **(** :ref:`int<class_int>` index, :ref:`int<class_int>` to_index **)** |
  69. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | void | :ref:`remove_bus<class_AudioServer_method_remove_bus>` **(** :ref:`int<class_int>` index **)** |
  71. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | void | :ref:`remove_bus_effect<class_AudioServer_method_remove_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** |
  73. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | void | :ref:`set_bus_bypass_effects<class_AudioServer_method_set_bus_bypass_effects>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)** |
  75. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | void | :ref:`set_bus_count<class_AudioServer_method_set_bus_count>` **(** :ref:`int<class_int>` amount **)** |
  77. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | void | :ref:`set_bus_effect_enabled<class_AudioServer_method_set_bus_effect_enabled>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`bool<class_bool>` enabled **)** |
  79. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | void | :ref:`set_bus_layout<class_AudioServer_method_set_bus_layout>` **(** :ref:`AudioBusLayout<class_AudioBusLayout>` bus_layout **)** |
  81. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | void | :ref:`set_bus_mute<class_AudioServer_method_set_bus_mute>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)** |
  83. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. | void | :ref:`set_bus_name<class_AudioServer_method_set_bus_name>` **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` name **)** |
  85. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  86. | void | :ref:`set_bus_send<class_AudioServer_method_set_bus_send>` **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` send **)** |
  87. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  88. | void | :ref:`set_bus_solo<class_AudioServer_method_set_bus_solo>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)** |
  89. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  90. | void | :ref:`set_bus_volume_db<class_AudioServer_method_set_bus_volume_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db **)** |
  91. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  92. | void | :ref:`set_device<class_AudioServer_method_set_device>` **(** :ref:`String<class_String>` device **)** |
  93. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  94. | void | :ref:`swap_bus_effects<class_AudioServer_method_swap_bus_effects>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)** |
  95. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  96. | void | :ref:`unlock<class_AudioServer_method_unlock>` **(** **)** |
  97. +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  98. Signals
  99. -------
  100. .. _class_AudioServer_signal_bus_layout_changed:
  101. - **bus_layout_changed** **(** **)**
  102. Emitted when the :ref:`AudioBusLayout<class_AudioBusLayout>` changes.
  103. Enumerations
  104. ------------
  105. .. _enum_AudioServer_SpeakerMode:
  106. .. _class_AudioServer_constant_SPEAKER_MODE_STEREO:
  107. .. _class_AudioServer_constant_SPEAKER_SURROUND_31:
  108. .. _class_AudioServer_constant_SPEAKER_SURROUND_51:
  109. .. _class_AudioServer_constant_SPEAKER_SURROUND_71:
  110. enum **SpeakerMode**:
  111. - **SPEAKER_MODE_STEREO** = **0** --- Two or fewer speakers are detected.
  112. - **SPEAKER_SURROUND_31** = **1**
  113. - **SPEAKER_SURROUND_51** = **2** --- A 5.1 channel surround setup detected.
  114. - **SPEAKER_SURROUND_71** = **3** --- A 7.1 channel surround setup detected.
  115. Description
  116. -----------
  117. 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.
  118. Tutorials
  119. ---------
  120. - :doc:`../tutorials/audio/audio_buses`
  121. Method Descriptions
  122. -------------------
  123. .. _class_AudioServer_method_add_bus:
  124. - void **add_bus** **(** :ref:`int<class_int>` at_position=-1 **)**
  125. Adds a bus at ``at_position``.
  126. .. _class_AudioServer_method_add_bus_effect:
  127. - void **add_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_AudioEffect>` effect, :ref:`int<class_int>` at_position=-1 **)**
  128. Adds an :ref:`AudioEffect<class_AudioEffect>` effect to the bus ``bus_idx`` at ``at_position``.
  129. .. _class_AudioServer_method_capture_get_device:
  130. - :ref:`String<class_String>` **capture_get_device** **(** **)**
  131. .. _class_AudioServer_method_capture_get_device_list:
  132. - :ref:`Array<class_Array>` **capture_get_device_list** **(** **)**
  133. .. _class_AudioServer_method_capture_set_device:
  134. - void **capture_set_device** **(** :ref:`String<class_String>` name **)**
  135. .. _class_AudioServer_method_generate_bus_layout:
  136. - :ref:`AudioBusLayout<class_AudioBusLayout>` **generate_bus_layout** **(** **)** const
  137. Generates an :ref:`AudioBusLayout<class_AudioBusLayout>` using the available buses and effects.
  138. .. _class_AudioServer_method_get_bus_channels:
  139. - :ref:`int<class_int>` **get_bus_channels** **(** :ref:`int<class_int>` bus_idx **)** const
  140. Returns the amount of channels of the bus at index ``bus_idx``.
  141. .. _class_AudioServer_method_get_bus_count:
  142. - :ref:`int<class_int>` **get_bus_count** **(** **)** const
  143. Returns the number of available buses.
  144. .. _class_AudioServer_method_get_bus_effect:
  145. - :ref:`AudioEffect<class_AudioEffect>` **get_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**
  146. Returns the :ref:`AudioEffect<class_AudioEffect>` at position ``effect_idx`` in bus ``bus_idx``.
  147. .. _class_AudioServer_method_get_bus_effect_count:
  148. - :ref:`int<class_int>` **get_bus_effect_count** **(** :ref:`int<class_int>` bus_idx **)**
  149. Returns the number of effects on the bus at ``bus_idx``.
  150. .. _class_AudioServer_method_get_bus_effect_instance:
  151. - :ref:`AudioEffectInstance<class_AudioEffectInstance>` **get_bus_effect_instance** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` channel=0 **)**
  152. .. _class_AudioServer_method_get_bus_index:
  153. - :ref:`int<class_int>` **get_bus_index** **(** :ref:`String<class_String>` bus_name **)** const
  154. Returns the index of the bus with the name ``bus_name``.
  155. .. _class_AudioServer_method_get_bus_name:
  156. - :ref:`String<class_String>` **get_bus_name** **(** :ref:`int<class_int>` bus_idx **)** const
  157. Returns the name of the bus with the index ``bus_idx``.
  158. .. _class_AudioServer_method_get_bus_peak_volume_left_db:
  159. - :ref:`float<class_float>` **get_bus_peak_volume_left_db** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** const
  160. Returns the peak volume of the left speaker at bus index ``bus_idx`` and channel index ``channel``.
  161. .. _class_AudioServer_method_get_bus_peak_volume_right_db:
  162. - :ref:`float<class_float>` **get_bus_peak_volume_right_db** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** const
  163. Returns the peak volume of the right speaker at bus index ``bus_idx`` and channel index ``channel``.
  164. .. _class_AudioServer_method_get_bus_send:
  165. - :ref:`String<class_String>` **get_bus_send** **(** :ref:`int<class_int>` bus_idx **)** const
  166. Returns the name of the bus that the bus at index ``bus_idx`` sends to.
  167. .. _class_AudioServer_method_get_bus_volume_db:
  168. - :ref:`float<class_float>` **get_bus_volume_db** **(** :ref:`int<class_int>` bus_idx **)** const
  169. Returns the volume of the bus at index ``bus_idx`` in dB.
  170. .. _class_AudioServer_method_get_device:
  171. - :ref:`String<class_String>` **get_device** **(** **)**
  172. .. _class_AudioServer_method_get_device_list:
  173. - :ref:`Array<class_Array>` **get_device_list** **(** **)**
  174. .. _class_AudioServer_method_get_mix_rate:
  175. - :ref:`float<class_float>` **get_mix_rate** **(** **)** const
  176. Returns the sample rate at the output of the audioserver.
  177. .. _class_AudioServer_method_get_speaker_mode:
  178. - :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **get_speaker_mode** **(** **)** const
  179. Returns the speaker configuration.
  180. .. _class_AudioServer_method_is_bus_bypassing_effects:
  181. - :ref:`bool<class_bool>` **is_bus_bypassing_effects** **(** :ref:`int<class_int>` bus_idx **)** const
  182. If ``true``, the bus at index ``bus_idx`` is bypassing effects.
  183. .. _class_AudioServer_method_is_bus_effect_enabled:
  184. - :ref:`bool<class_bool>` **is_bus_effect_enabled** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** const
  185. If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
  186. .. _class_AudioServer_method_is_bus_mute:
  187. - :ref:`bool<class_bool>` **is_bus_mute** **(** :ref:`int<class_int>` bus_idx **)** const
  188. If ``true``, the bus at index ``bus_idx`` is muted.
  189. .. _class_AudioServer_method_is_bus_solo:
  190. - :ref:`bool<class_bool>` **is_bus_solo** **(** :ref:`int<class_int>` bus_idx **)** const
  191. If ``true``, the bus at index ``bus_idx`` is in solo mode.
  192. .. _class_AudioServer_method_lock:
  193. - void **lock** **(** **)**
  194. Locks the audio drivers mainloop. Remember to unlock it afterwards.
  195. .. _class_AudioServer_method_move_bus:
  196. - void **move_bus** **(** :ref:`int<class_int>` index, :ref:`int<class_int>` to_index **)**
  197. Moves the bus from index ``index`` to index ``to_index``.
  198. .. _class_AudioServer_method_remove_bus:
  199. - void **remove_bus** **(** :ref:`int<class_int>` index **)**
  200. Removes the bus at index ``index``.
  201. .. _class_AudioServer_method_remove_bus_effect:
  202. - void **remove_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**
  203. Removes the effect at index ``effect_idx`` from the bus at index ``bus_idx``.
  204. .. _class_AudioServer_method_set_bus_bypass_effects:
  205. - void **set_bus_bypass_effects** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
  206. If ``true``, the bus at index ``bus_idx`` is bypassing effects.
  207. .. _class_AudioServer_method_set_bus_count:
  208. - void **set_bus_count** **(** :ref:`int<class_int>` amount **)**
  209. Adds and removes buses to make the number of buses match ``amount``.
  210. .. _class_AudioServer_method_set_bus_effect_enabled:
  211. - void **set_bus_effect_enabled** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`bool<class_bool>` enabled **)**
  212. If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
  213. .. _class_AudioServer_method_set_bus_layout:
  214. - void **set_bus_layout** **(** :ref:`AudioBusLayout<class_AudioBusLayout>` bus_layout **)**
  215. Overwrites the currently used :ref:`AudioBusLayout<class_AudioBusLayout>`.
  216. .. _class_AudioServer_method_set_bus_mute:
  217. - void **set_bus_mute** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
  218. If ``true``, the bus at index ``bus_idx`` is muted.
  219. .. _class_AudioServer_method_set_bus_name:
  220. - void **set_bus_name** **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` name **)**
  221. Sets the name of the bus at index ``bus_idx`` to ``name``.
  222. .. _class_AudioServer_method_set_bus_send:
  223. - void **set_bus_send** **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` send **)**
  224. Connects the output of the bus at ``bus_idx`` to the bus named ``send``.
  225. .. _class_AudioServer_method_set_bus_solo:
  226. - void **set_bus_solo** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
  227. If ``true``, the bus at index ``bus_idx`` is in solo mode.
  228. .. _class_AudioServer_method_set_bus_volume_db:
  229. - void **set_bus_volume_db** **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db **)**
  230. Sets the volume of the bus at index ``bus_idx`` to ``volume_db``.
  231. .. _class_AudioServer_method_set_device:
  232. - void **set_device** **(** :ref:`String<class_String>` device **)**
  233. .. _class_AudioServer_method_swap_bus_effects:
  234. - void **swap_bus_effects** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)**
  235. Swaps the position of two effects in bus ``bus_idx``.
  236. .. _class_AudioServer_method_unlock:
  237. - void **unlock** **(** **)**
  238. Unlocks the audiodriver's main loop. After locking it always unlock it.