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

L'interface sonore de Godot est conçue pour répondre aux attentes des professionnels du design sonore. Pour ce faire, elle utilise principalement l'échelle des décibels.

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

  • L'échelle des décibels (dB) est une échelle relative. Elle représente le rapport de la puissance acoustique en utilisant 20 fois le logarithme de base 10 du rapport (20 × log10(P/P0)).

  • Pour chaque 6 dB, l'amplitude du son double ou diminue de moitié. 12 dB représente un facteur de 4, 18 dB un facteur de 8, 20 dB un facteur de 10, 40 dB un facteur de 100, etc.

  • Puisque l'échelle est logarithmique, le vrai zéro (aucun son) ne peut pas être représenté.

  • 0 dB est l'amplitude maximale possible dans un système audio numérique. Cette limite n'est pas la limite humaine, mais une limite du matériel sonore. L'audio dont les amplitudes sont trop élevées pour être représentées correctement en dessous de 0 dB crée une sorte de distorsion appelée clipping.

  • Pour éviter le clipping, votre mixage de son doit être arrangé de telle sorte que la sortie du master bus (plus d'informations à ce sujet plus tard) ne dépasse jamais 0dB.

  • Tous les 6 dB en dessous de la limite de 0 dB, l'énergie sonore est diminuée de moitié. Cela signifie que le volume sonore à -6 dB est deux fois moins fort que 0 dB. -12 dB est deux fois moins fort que -6 dB et ainsi de suite.

  • Lorsque vous travaillez avec des décibels, le son n'est plus considéré comme audible entre -60 dB et -80 dB. Votre plage de travail se situe donc généralement entre -60 dB et 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

Les bus audio se trouvent dans le panneau inférieur de l'éditeur Godot :

../../_images/audio_buses1.png

Un bus audio (aussi appelé canal audio) peut être considéré comme un endroit par lequel l'audio est canalisé en cours de lecture sur les haut-parleurs d'un appareil. Les données audio peuvent être modifiées et réacheminées par un bus audio. Un bus audio possède un VU-mètre (les barres qui s'allument quand le son est joué) qui indique l'amplitude du signal qui passe à travers.

Le bus le plus à gauche est le bus master. Ce bus transmet le mixage à vos haut-parleurs de sorte que, comme mentionné dans la section Echelle des décibels ci-dessus, assurez-vous que votre niveau de mixage n'atteint pas 0 dB dans ce bus. Le reste des bus audio peut être routé de manière flexible. Après avoir modifié le son, ils l'envoient à un autre bus à gauche. Le bus de destination peut être spécifié pour chacun des bus audio non maîtres. Le routage passe toujours l'audio des bus sur la droite vers les bus plus à gauche. Cela permet d'éviter les boucles de routage infinies.

../../_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

Enfin, basculez la propriété Playing sur On et le son sera diffusé.

Voir aussi

Vous pouvez également être intéressé par la lecture de Flux audio maintenant.

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

Essayez-les tous pour avoir une idée de la façon dont ils modifient le son. Voici une brève description des effets disponibles :

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.

Capturer

L'effet Capture copie les trames audio du bus audio sur lequel il se trouve dans un tampon interne. Cela peut être utilisé pour capturer des données à partir du microphone ou pour transmettre de l'audio sur le réseau en temps réel.

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.

  • Il peut être mis en sidechained. Cela signifie qu'il peut réduire le niveau sonore d'un signal en utilisant le niveau d'un autre bus audio pour la détection de seuil. Cette technique est très courante dans le mixage audio des jeux vidéo pour "baisser" le son de la musique ou des effets sonores lorsque des voix doivent être entendues.

  • Il peut accentuer les transitoires en utilisant une attaque plus lente. Cela peut rendre les effets sonores plus percutants.

Note

Si votre but est d'éviter qu'un signal ne dépasse complètement une amplitude donnée, plutôt que de réduire la plage dynamique du signal, un limiter est probablement un meilleur choix qu'un compresseur.

Délai

Ajoute un effet "écho" avec une boucle de retour. Il peut être utilisé avec Reverb pour simuler des pièces larges, des canyons, etc. où les rebonds sonores sont éloignés.

Distorsion (Distortion)

Rend le son distordu. Godot propose plusieurs types de distorsion : overdrive, tan et bit crushing. La distorsion peut être utilisée pour simuler le son provenant d'un haut-parleur ou d'un appareil de faible qualité.

EQ

EQ est ce dont héritent tous les autres égaliseurs. Il peut être étendu avec des scripts personnalisés pour créer un égaliseur avec un nombre personnalisé de bandes.

EQ6, EQ10, EQ21

Godot fournit trois égaliseurs avec différents nombres de bandes. Un égaliseur sur le bus maître peut être utile pour couper les fréquences que les haut-parleurs de l'appareil ne peuvent pas bien reproduire (par exemple, les haut-parleurs d'un téléphone mobile ne reproduiront pas bien le contenu des basses). L'effet d'égalisation peut être désactivé lorsque le casque est branché.

Filtre

Filter (filtre) est ce dont héritent tous les autres filtres et ne doit pas être utilisé directement.

HighPassFilter

Coupe les fréquences en dessous d'une fréquence spécifique Cutoff. Le HighPassFilter est utilisé pour réduire le contenu en basses fréquences d'un signal.

HighShelfFilter

Réduit toutes les fréquences au-dessus d'une fréquence spécifique Cutoff.

Limiteur (Limiter)

Un limiteur est similaire à un compresseur, mais il est moins flexible et conçu pour empêcher l'amplitude d'un signal de dépasser un seuil donné en dB. L'ajout d'un limiteur au bus maître est une protection contre l'écrêtage.

LowPassFilter

Coupe les fréquences au-dessus d'une fréquence Cutoff spécifique et peut également résonner (amplifie les fréquences proches de la fréquence Cutoff). Des filtres passe-bas peuvent être utilisés pour simuler un son "étouffé". Par exemple, les sons sous-marins, les sons bloqués par les murs ou les sons éloignés.

LowShelfFilter

Réduit toutes les fréquences en dessous d'une fréquence spécifique Cutoff.

Filtre coupe-bande (NotchFilter)

À l'opposé du BandPassFilter, il supprime une bande de son du spectre de fréquences à une fréquence de coupure donnée.

Panner

Le Panner permet de régler l'équilibre stéréo d'un signal entre les canaux gauche et droit (portez un casque pour entendre cet effet).

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 à l'utilisateur d'enregistrer l'audio provenant d'un microphone.

Réverbération (Reverb)

Reverb simule des pièces de différentes tailles. Il possède des paramètres réglables qui peuvent être ajustés pour obtenir le son d'une pièce spécifique. La réverbération est généralement émise à partir de Areas (voir Reverb bus), ou pour appliquer un effet "chambre" à tous les sons.

SpectrumAnalyzer

Cet effet n'altère pas l'audio, au lieu de cela, vous ajoutez cet effet aux bus dont vous voulez une analyse de spectre. Ceci serait typiquement utilisé pour la visualisation audio. Un projet de démonstration l'utilisant peut être trouvé ici.

Amélioration Stéréo (StereoEnhance)

Cet effet utilise quelques algorithmes pour améliorer le spectre stéréo d'un signal.

Désactivation automatique du bus

Il n'est pas nécessaire de désactiver manuellement les bus lorsqu'ils ne sont pas utilisés. Godot détecte que le bus a été silencieux pendant quelques secondes et le désactive (ainsi que tous ses effets).

../../_images/audio_buses5.png

Les bus désactivés sont équipés d'un compteur VU bleu au lieu d'un compteur rouge-vert.

Réarrangement de bus

Les lecteurs de flux (Stream Player) utilisent les noms de bus pour les identifier, ce qui permet d'ajouter, de retirer et de déplacer des bus tout en conservant la référence à ceux-ci. Si un bus est renommé, cependant, la référence sera perdue et le lecteur de flux jouera sur le bus Master. Ce système a été choisi parce que le réorganisation des bus est un processus plus courant que leur renommage.

Disposition des bus par défaut

La disposition de bus par défaut est automatiquement enregistrée dans le fichier res:///default_bus_layout.tres. Les arrangements de bus personnalisés peuvent être sauvegardés et chargés à partir du disque.