audio_buses.rst 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. .. _doc_audio_buses:
  2. Audio buses
  3. ===========
  4. Introduction
  5. ------------
  6. Godot's audio processing code has been written with games in mind, with the aim
  7. of achieving an optimal balance between performance and sound quality.
  8. Godot's audio engine allows any number of audio buses to be created and any
  9. number of effect processors can be added to each bus. Only the hardware of the
  10. device running your game will limit the number of buses and effects that can be
  11. used before performance starts to suffer.
  12. Decibel scale
  13. -------------
  14. Godot's sound interface is designed to meet the expectations of sound design
  15. professionals. To this end, it primarily uses the decibel scale.
  16. For those unfamiliar with it, it can be explained with a few facts:
  17. - The decibel (dB) scale is a relative scale. It represents the ratio of
  18. sound power by using 20 times the base 10 logarithm of the ratio
  19. (20 × log\ :sub:`10`\ (P/P\ :sub:`0`\ )).
  20. - For every 6 dB, sound amplitude doubles or halves. 12 dB represents a factor
  21. of 4, 18 dB a factor of 8, 20 dB a factor of 10, 40 dB a factor of 100, etc.
  22. - Since the scale is logarithmic, true zero (no audio) can't be represented.
  23. - 0 dB is the maximum amplitude possible in a digital audio system.
  24. This limit is not the human limit, but a limit from the sound hardware.
  25. Audio with amplitudes that are too high to be represented properly below 0 dB
  26. create a kind of distortion called *clipping*.
  27. - To avoid clipping, your sound mix should be arranged so that the output of the
  28. *master bus* (more on that later) never exceeds 0 dB.
  29. - Every 6 dB below the 0 dB limit, sound energy is *halved*.
  30. It means the sound volume at -6 dB is half as loud as 0dB.
  31. -12 dB is half as loud as -6 dB and so on.
  32. - When working with decibels, sound is considered no longer audible
  33. between -60 dB and -80 dB. This makes your working range generally
  34. between -60 dB and 0 dB.
  35. This can take a bit getting used to, but it's friendlier in the end
  36. and will allow you to communicate better with audio professionals.
  37. Audio buses
  38. -----------
  39. Audio buses can be found in the bottom panel of the Godot editor:
  40. .. image:: img/audio_buses1.png
  41. An *audio bus* (also called an *audio channel*) can be considered a place that
  42. audio is channeled through on the way to playback through a device's speakers.
  43. Audio data can be *modified* and *re-routed* by an audio bus. An audio bus
  44. has a VU meter (the bars that light up when sound is played) which indicates the
  45. amplitude of the signal passing through.
  46. The leftmost bus is the *master bus*. This bus outputs the mix to your speakers
  47. so, as mentioned in the *Decibel scale* section above, make sure that your mix
  48. level doesn't reach 0 dB in this bus. The rest of the audio buses can be
  49. flexibly routed. After modifying the sound, they send it to another bus to
  50. the left. The destination bus can be specified for each of the non-master audio
  51. buses. Routing always passes audio from buses on the right to buses further
  52. to the left. This avoids infinite routing loops.
  53. .. image:: img/audio_buses2.png
  54. In the above image, the output of *Bus 2* has been routed to the *Master* bus.
  55. Playback of audio through a bus
  56. -------------------------------
  57. To test passing audio to a bus, create an AudioStreamPlayer node, load an
  58. AudioStream and select a target bus for playback:
  59. .. image:: img/audio_buses3.png
  60. Finally, toggle the **Playing** property to **On** and sound will flow.
  61. .. seealso::
  62. You may also be interested in reading about :ref:`doc_audio_streams` now.
  63. Adding effects
  64. --------------
  65. Audio buses can contain all sorts of effects. These effects modify the sound in
  66. one way or another and are applied in order.
  67. .. image:: img/audio_buses4.png
  68. For information on what each effect does, see :ref:`doc_audio_effects`.
  69. Automatic bus disabling
  70. -----------------------
  71. There is no need to disable buses manually when not in use. Godot detects
  72. that the bus has been silent for a few seconds and disables it (including
  73. all effects).
  74. .. figure:: img/audio_buses5.png
  75. Disabled buses have a blue VU meter instead of a red-green one.
  76. Bus rearrangement
  77. -----------------
  78. Stream Players use bus names to identify a bus, which allows adding, removing
  79. and moving buses around while the reference to them is kept. However, if a bus
  80. is renamed, the reference will be lost and the Stream Player will output
  81. to Master. This system was chosen because rearranging buses is a more common
  82. process than renaming them.
  83. Default bus layout
  84. ------------------
  85. The default bus layout is automatically saved to the
  86. ``res://default_bus_layout.tres`` file. Custom bus arrangements can be saved
  87. and loaded from disk.