Bus audio

Introduction

Le code de traitement audio dans Godot a été écrit en pensant aux jeux, dans le but d’obtenir un équilibre optimal entre performance et qualité sonore.

Le moteur audio de Godot permet de créer n’importe quel nombre de bus audio et d’ajouter n’importe quel nombre de processeurs d’effets à chaque bus. Seul le matériel de l’appareil qui exécute votre jeu limitera le nombre de bus et d’effets qui peuvent être utilisés avant que les performances ne commencent à en pâtir.

Échelle de décibels

Godot’s sound interface is designed to meet the expectations of sound design professionals. To this end, it primarily uses the decibel scale.

Pour ceux qui ne la connaissent pas, on peut l’expliquer par quelques faits :

  • The decibel (dB) scale is a relative scale. It represents the ratio of sound power by using 10 times the base 10 logarithm of the ratio (10 × log10(P/P0)).
  • For every 3 dB, sound amplitude doubles or halves. 6 dB represents a factor of 4, 9 dB a factor of 8, 10 dB a factor of 10, 20 dB a factor of 100, etc.
  • Puisque l’échelle est logarithmique, le vrai zéro (aucun son) ne peut pas être représenté.
  • 0 dB is the maximum amplitude possible in a digital audio system. This limit is not the human limit, but a limit from the sound hardware. Audio with amplitudes that are too high to be represented properly below 0 dB create a kind of distortion called clipping.
  • To avoid clipping, your sound mix be arranged so that the output of the master bus (more on that later) never exceeds 0 dB.
  • Every 3 dB below the 0 dB limit, sound energy is halved. It means the sound volume at -3 dB is half as loud as 0dB. -6 dB is half as loud as -3 dB and so on.
  • When working with decibels, sound is considered no longer audible between -60 dB and -80 dB. This makes your working range generally between -60 dB and 0 dB.

Cela peut prendre un peu de temps pour s’y habituer, mais au final, c’est plus agréable et vous permettra de mieux communiquer avec les professionnels de l’audio.

Bus audio

Audio buses can be found in the bottom panel of the Godot editor:

../../_images/audio_buses1.png

An audio bus (also called an audio channel) can be considered a place that audio is channeled through on the way to playback through a device’s speakers. Audio data can be modified and re-routed by an audio bus. An audio bus has a VU meter (the bars that light up when sound is played) which indicates the amplitude of the signal passing through.

The leftmost bus is the master bus. This bus outputs the mix to your speakers so, as mentioned in the Decibel scale section above, make sure that your mix level doesn’t reach 0 dB in this bus. The rest of the audio buses can be flexibly routed. After modifying the sound, they send it to another bus to the left. The destination bus can be specified for each of the non-master audio buses. Routing always passes audio from buses on the right to buses further to the left. This avoids infinite routing loops.

../../_images/audio_buses2.png

Dans l’image ci-dessus, la sortie du Bus 2 a été acheminée vers le bus Master.

Lecture de l’audio à travers un bus

Pour tester le passage de l’audio par un bus, créez un nœud AudioStreamPlayer, chargez un AudioStream et sélectionnez un bus cible pour la lecture :

../../_images/audio_buses3.png

Finally, toggle the Playing property to On and sound will flow.

Voir aussi

You may also be interested in reading about Audio streams now.

Ajouter des effets

Les bus audio peuvent contenir toutes sortes d’effets. Ces effets modifient le son d’une manière ou d’une autre et sont appliqués dans l’ordre.

../../_images/audio_buses4.png

Try them all out to get a sense of how they alter sound. Here follows a short description of the available effects:

Amplifier (Amplify)

Amplifier change l’amplitude du signal. Mais il faut faire attention, régler le niveau trop haut peut créer un écrêtage, ce qui n’est généralement pas souhaitable.

Limite de Bande et Passe-Bande (BandLimit and BandPass)

Ce sont des filtres résonants qui bloquent les fréquences autour du point de coupure. BandPass peut être utilisé pour simuler le son passant par une ancienne ligne téléphonique ou un mégaphone. Moduler la fréquence du filtre BandPass peut simuler le son d’une pédale de guitare wah-wah, comme la guitare dans Voodoo Child (Slight Return) de Jimi Hendrix.

Chœur (Chorus)

L’effet Chorus duplique l’audio entrant, retarde légèrement la copie et utilise un LFO pour moduler en continu la hauteur du signal dupliqué avant de mélanger à nouveau le ou les signaux dupliqués et l’original. Cela crée un effet chatoyant et ajoute une largeur stéréo au son.

Compresseur (Compressor)

Un compresseur à gamme dynamique atténue automatiquement le niveau du signal entrant lorsque son amplitude dépasse un certain seuil. Le niveau d’atténuation appliqué est proportionnel au niveau de dépassement de ce seuil. Le paramètre Ratio du compresseur contrôle le degré d’atténuation. L’une des principales utilisations d’un compresseur est de réduire la plage dynamique des signaux ayant des parties très bruyantes et d’autres silencieuses. Réduire la plage dynamique d’un signal peut faciliter le mixage.

Le compresseur a de nombreuses utilisations. Par exemple :

  • Il peut être utilisé sur le bus maître pour compresser l’ensemble de la sortie.
  • Il peut être utilisé sur les canaux vocaux pour s’assurer qu’ils sont aussi uniformes que possible.
  • It can be sidechained. This means it can reduce the sound level of one signal using the level of another audio bus for threshold detection. This technique is very common in video game mixing to « duck » the level of music or sound effects when voices need to be heard.
  • Il peut accentuer les transitoires en utilisant une attaque plus lente. Cela peut rendre les effets sonores plus percutants.

Note

If your goal is to prevent a signal from exceeding a given amplitude altogether, rather than to reduce the dynamic range of the signal, a limiter is likely a better choice than a compressor.

Délai (Delay)

Adds an « echo » effect with a feedback loop. It can be used together with Reverb to simulate wide rooms, canyons, etc. where sound bounces are far apart.

Distorsion (Distortion)

Distortion effects make the sound « dirty ». Godot offers several types of distortion: overdrive, tan and bit crushing. Distortion can be used to simulate sound coming through a low-quality speaker or device.

EQ, EQ6, EQ10, EQ21

Godot provides four equalizers with different numbers of bands. An equalizer on the Master bus can be useful to cut frequencies that the device’s speakers can’t reproduce well (e.g. a mobile phone’s speakers won’t reproduce bass content well). The equalizer effect can be disabled when headphones are plugged in.

Filtre

Filtre (Filter) est ce dont héritent tous les autres processeurs d’effets et ne doit pas être utilisé directement.

Filtre passe-haut, filtre plateau haut (HighPassFilter, HighShelfFilter)

Ce sont des filtres qui coupent les fréquences en dessous d’une fréquence de coupure (Cutoff) spécifique. HighPassFilter et HighShelfFilter sont utilisés pour réduire les basses d’un signal.

Limiteur (Limiter)

A limiter is similar to a compressor, but it’s less flexible and designed to prevent a signal’s amplitude exceeding a given dB threshold. Adding a limiter to the Master bus is a safeguard against clipping.

Filtre passe-bas, filtre plateau bas (LowPassFilter, LowShelfFilter)

These are the most common filters, they cut frequencies above a specific Cutoff frequency and can also resonate (boost frequencies close to the Cutoff frequency). Low pass filters can be used to simulate « muffled » sound. For instance, underwater sounds, sounds blocked by walls, or distant sounds.

Filtre coupe-bande (NotchFilter)

The opposite of the BandPassFilter, it removes a band of sound from the frequency spectrum at a given Cutoff frequency.

Panner

The Panner allows the stereo balance of a signal to be adjusted between the left and right channels (wear headphones to audition this effect).

Phaser

Il n’est probablement pas très parlant d’expliquer que cet effet est formé par deux signaux qui se déphasent et s’annulent l’un l’autre. Vous pouvez faire une voix de Dark Vador avec, ou des sons de type avion à réaction.

Changement de hauteur (PitchShift)

Cet effet permet de régler la hauteur du signal indépendamment de sa vitesse. Toutes les fréquences peuvent être augmentées/diminuées avec un effet minimal sur les transitoires. PitchShift peut être utile pour créer des voix exceptionnellement hautes ou graves.

Enregistrer (Record)

L’effet Enregistrer permet d’écrire l’audio passant par le bus dans un fichier.

Réverbération (Reverb)

Reverb simulates rooms of different sizes. It has adjustable parameters that can be tweaked to obtain the sound of a specific room. Reverb is commonly outputted from Areas (see Reverb buses), or to apply a « chamber » feel to all sounds.

Amélioration Stéréo (StereoEnhance)

This effect uses a few algorithms to enhance a signal’s stereo spectrum.

Désactivation automatique du bus

There is no need to disable buses manually when not in use. Godot detects that the bus has been silent for a few seconds and disables it (including all effects).

../../_images/audio_buses5.png

Disabled buses have a blue VU meter instead of a red-green one.

Réarrangement de bus

Stream Players use bus names to identify a bus, which allows adding, removing and moving buses around while the reference to them is kept. However, if a bus is renamed, the reference will be lost and the Stream Player will output to Master. This system was chosen because rearranging buses is a more common process than renaming them.

Disposition des bus par défaut

The default bus layout is automatically saved to the res://default_bus_layout.tres file. Custom bus arrangements can be saved and loaded from disk.