Звукові шини

Вступ

Код обробки звуку Godot був написаний спеціально для ігор, з метою досягнення оптимального балансу між продуктивністю та якістю звуку.

Аудіо рушій Godot дозволяє створювати будь-яку кількість звукових потоків, і до кожного потоку може бути додана будь-яка кількість ефектів. Тільки апаратне забезпечення пристрою, на якому запущено вашу гру, обмежить кількість потоків і ефектів, які можна використовувати до того, як продуктивність почне падати.

Шкала Децибел

Звуковий інтерфейс Godot розроблявся з орієнтуванням на професіоналів звукового дизайну. З цією метою в основному використовується шкала децибел.

Для тих, хто з нею не знайомий, її можна пояснити кількома фактами:

  • Шкала децибел (дБ) є відносною шкалою. Вона являє собою 20 співвідношень звукової потужності помножених на десятковий логарифм (20 × log10(P/P0)).

  • На кожні 6 дБ амплітуда звуку подвоюється, або вполовинюється. 12 дБ являє собою коефіцієнт 4, 18 дБ - коефіцієнт 8, 20 дБ - коефіцієнт 10, 40 дБ - коефіцієнт 100 і т. д.

  • Оскільки шкала логарифмічна, істинний нуль (відсутність звуку) не може бути представлений.

  • 0 дБ - це максимальна амплітуда, можлива в цифровій аудіосистемі. Ця межа не є людською межею, вона є обмеженням звукового обладнання. Звук з занадто великими амплітудами, які опускаються нижче 0 дБ, створює свого роду спотворення, яке називається відсіканням.

  • Щоб уникнути відсікання, ваш звуковий мікс повинен бути влаштований таким чином, щоб вихід головного потоку (докладніше про це пізніше) ніколи не перевищував 0 дБ.

  • Кожні 6 дБ нижче межі 0 дБ звукова енергія зменшується вдвічі. Це означає, що гучність звуку при -6 дБ вдвічі голосніше, ніж при 0 дБ. -12 дБ вдвічі голосніше, ніж -6 дБ і так далі.

  • При роботі з децибелами звук вважається більше не чутним між -60 дБ і -80 дБ. Тому ваш робочий діапазон, як правило, між -60 дБ і 0 дБ.

До всього цього треба трохи звикнути, але ці прості пояснення дозволять вам, хоч трохи, порозумітися з аудіо професіоналами.

Звукові шини

Аудіошини можна знайти на нижній панелі редактора Godot:

../../_images/audio_buses1.png

Звукову шину (також відому, як звуковий канал) можна вважати місцем, куди звук направляється перед тим, як відтворюватися в динаміках пристрою. Аудіо-дані можуть бути змінені та перенаправлені звуковою шиною. Звукова шина має мірило гучності звуку (смуги, які загоряються під час відтворення звуку), що вказує на амплітуду сигналу, що проходить через неї.

Крайня ліва шина - це головна шина (Master). Ця шина виводить звук на динаміки, тому, як згадувалося вище в розділі про шкалу Децибела, переконайтеся, що ваш рівень звуку не досягає 0 дБ в цій шині. Решта звукових шин можуть бути спрямовані. Після зміни звуку вони відправляють його в іншу шину зліва. Шина призначення може бути вказана для кожної шини, крім головної. Спрямування завжди передає звук з шин справа до шин зліва. Це дозволяє уникнути нескінченного зацикленого спрямування.

../../_images/audio_buses2.png

На наведеному вище зображенні вихід шини Bus 2 був спрямований на шину Master.

Відтворення звуку через шину

Щоб перевірити передачу звуку на шину, створіть вузол AudioStreamPlayer, завантажте звук у Stream і виберіть цільову шину Bus для відтворення:

../../_images/audio_buses3.png

Нарешті, переключіть властивість Playing на Увімкнено, і звук відтвориться.

Дивись також

Можливо зараз, вам буде цікаво прочитати про Звукові потоки.

Додавання ефектів

Звукові шини можуть містити всілякі ефекти. Ці ефекти так чи інакше змінюють звук і застосовуються по порядку.

../../_images/audio_buses4.png

Спробуйте їх все, щоб отримати уявлення про те, як вони змінюють звук. Нижче наведено короткий опис доступних ефектів:

Підсилення сигналу

Amplify змінює амплітуду сигналу. Потрібно дотримуватися певної обережності. Встановлення занадто високого рівня може обрізати звук, що зазвичай небажано.

BandLimit та BandPass

Це резонансні фільтри, які блокують частоти навколо точки Cutoff (відсікання). BandPass можна використовувати для імітації звуку, що проходить через стару телефонну лінію, або мегафон. Модуляція частоти BandPass може імітувати звук педалі гітари wah-wah, згадайте гітару Джимі Хендрікса в Voodoo Child (Slight Return).

Захоплення

Ефект Capture (захоплення) копіює звукові кадри звукової шини, на якій він перебуває, у внутрішній буфер. Це може бути використано для захоплення даних з мікрофона, або для передачі звуку по мережі в режимі реального часу.

Хорова

Ефект Chorus (хор) дублює вхідний звук, трохи затримує дублікат і використовує LFO для постійного моделювання кроку дубльованого сигналу, перш ніж знову змішувати дубльовані сигнали та оригінал разом. Це створює мерехтливий ефект і додає стерео ширини звуку.

Компресор

Компресор динамічного діапазону автоматично послаблює рівень вхідного сигналу, коли його амплітуда перевищує певний поріг. Рівень загасання, що застосовується, пропорційний тому, наскільки вхідний звук перевищує поріг. Параметр Коефіцієнт компресора контролює ступінь загасання. Одним з основних застосувань компресора є зниження динамічного діапазону сигналів з дуже гучними і тихими деталями. Зменшення динамічного діапазону сигналу може полегшити змішування.

Компресор має багато застосувань. Наприклад:

  • Його можна використовувати в шині Master для стиснення всього виводу.

  • Він може бути використаний в голосових каналах, щоб переконатися, що вони звучать якомога рівніше.

  • Він може бути бічним каналом. Це означає, що він може знизити рівень звуку одного сигналу, використовуючи рівень іншої звукової шини для виявлення порогів. Ця техніка дуже поширена у відеоіграх, коли приглушення музики, або звукових ефектів, дозволяє почути голоси.

  • Він може підкреслити перехідні процеси, використовуючи більш повільну дію. Це може зробити звукові ефекти більш проникливими.

Примітка

Якщо ваша мета полягає в тому, щоб запобігти повному перевищенню сигналом заданої амплітуди, а не зменшити динамічний діапазон сигналу, ймовірно кращим вибором буде limiter, а не компресор.

Затримка

Додає ефект "відлуння" з циклом зворотного зв'язку. Він може бути використаний разом з Reverb для імітації широких кімнат, каньйонів і т. д., де звукові відлуння.

Викривлення

Робить звук спотвореним. Godot пропонує кілька видів спотворень: overdrive, tan і bit crushing. Спотворення можуть бути використані для імітації звуку, що надходить через неякісний динамік, або пристрій.

EQ

EQ - це те, від чого успадковують всі інші еквалайзери. Він може бути розширений за допомогою спеціальних скриптів для створення еквалайзера з власною кількістю смуг.

EQ6, EQ10, EQ21

Godot надає три еквалайзери з різною кількістю смуг. Еквалайзер на шині Master може бути корисним для скорочення частот, які динаміки пристрою не можуть добре відтворити (наприклад, динаміки мобільного телефону не відтворюватимуть вміст баса добре). Ефект еквалайзера можна вимкнути, коли навушники підключені.

Фільтр

Фільтр - це те, від чого успадковуються всі інші фільтри і не повинен використовуватися безпосередньо.

HighPassFilter

Скорочує частоти нижче певної частоти Cutoff (відсікання). HighPassFilter використовується для зменшення баса в сигналі.

HighShelfFilter

Зменшує всі частоти вище певної частоти відсікання Cutoff.

Обмежувач

Обмежувач схожий на компресор, але він менш гнучкий і призначений для запобігання перевищення заданого порога дБ амплітудою сигналу. Додавання обмежувача до шини Master є захистом від відсікання.

LowPassFilter

Скорочує частоти вище певної частоти відсікання Cutoff, а також може резонувати (збільшувати частоти, близькі до частоти відсікання Cutoff). Фільтри низького проходу можна використовувати для імітації «приглушеного» звуку. Наприклад, підводні звуки, звуки, заблоковані стінами, або далекі звуки.

LowShelfFilter

Зменшує всі частоти нижче певної частоти відсікання Cutoff.

NotchFilter

На відміну від BandPassFilter він видаляє смугу звуку з частотного спектру на заданій частотній частоті Cutoff.

Panner

Panner дозволяє регулювати стереобаланс сигналу між лівим і правим каналами (надіньте навушники для прослуховування цього ефекту).

Фазер

Ймовірно, немає особливого сенсу пояснювати, що цей ефект формується двома сигналами, які детінізуються і скасовують один одного. З ним можна зробити голос Дарта Вейдера, або реактивні звуки.

PitchShift

Цей ефект дозволяє регулювати висоту сигналу незалежно від його швидкості. Всі частоти можуть бути збільшені/зменшені з мінімальним впливом на перехідні процеси. PitchShift може бути корисним для створення незвично високих, або глибоких голосів.

Record

Ефект запису дозволяє користувачеві записувати звук з мікрофона.

Відлуння

Реверберація імітує кімнати різних розмірів. Він має параметри, які можна налаштувати, щоб отримати звук конкретної кімнати. Реверберація зазвичай застосовується до областей (див. Ревербераційні шини), або для надання "камерності" всім звукам.

SpectrumAnalyzer

Цей ефект не змінює звук, натомість ви додаєте цей ефект до шин спектр яких треба проаналізувати. Зазвичай він використовується для візуалізації звуку. Демо-проект, що використовує цей ефект, можна знайти тут.

StereoEnhance

Цей ефект використовує кілька алгоритмів для посилення стереочастотного спектру сигналу.

Автоматичне відключення шини

Немає необхідності вимикати шини вручну, коли вони не використовуються. Godot виявляє, що шина мовчить протягом декількох секунд і вимикає її (включаючи всі ефекти).

../../_images/audio_buses5.png

Відключені шини мають синю шкалу замість червоно-зеленої.

Перестановка шин

Stream Players використовує назви шин для ідентифікації, що дозволяє додавати, видаляти та переміщати шини, поки зберігається посилання на них. Однак, якщо шину перейменовано, посилання буде втрачено, і відтворювач потоку переведе звук на master. Ця система була обрана тому, що перестановка шин є більш поширеним процесом, ніж їх перейменування.

Макет шини за замовчуванням

Макет шини за замовчуванням автоматично зберігається у файлі res://default_bus_layout.tres. Власні налаштування шини можна зберігати та завантажувати з диска.