Gamedev Anton Titov
2 179

Использование белого шума в саунддизайне

Эффекты на основе шума.

В закладки

Наконец-то у меня дошли руки до этой статьи, в которой я постараюсь рассказать об использовании белого шума в саунддизайне. И поскольку DTF у нас, по большей части, про игры, то дизайнить мы будем в FMOD.

Цвета шумов

Для начала немного теории. Как нам подсказывает википедия, существует шесть основных типов шумов — белый, розовый, коричневый, синий, фиолетовый и серый, а также несколько дополнительных.

Белый шум интересует нас, в первую очередь, тем что, обладает равномерной спектральной плотностью на всех частотах, что позволяет нам использовать его для создания широкого спектра звуков.

Так же, с помощью простой эквализации/фильтров можно превратить белый шум в любой другой.

Поехали

К сожалению, мне так и не удалось заставить Quick Time писать звук в стерео, потому только так

Итак, как можно увидеть в этом видео, мы будем «симулировать» следующие эффекты: «подводный» эффект, дождь, ветер, взрывы и звук вертолёта. Они достаточно просты в реализации и очень гибко настраиваются.

Для желающих всё пробовать самим, проект со всеми звуками лежит здесь (FMOD 1.10.03).

Сам белый шум генерируется практически на любом софтовом/«железном» синтезаторе, в моём случае — на Moog Sub 37. Если звук получается слишком «тонким», то можно попробовать опустить его на октаву вниз или слегка обработать сатуратором.

«Подводный» эффект

Один из базовых эффектов, который можно получить из белого шума. Он звучит так, словно слушатель находится под водой. Для создания нужен только Lowpass-фильтр с регулируемым резонансом или, как нашем случае, трёхполосный эквалайзер.

Устанавливаем частоту среза lowpass-фильтра (X-Low) около 400 Hz и крутизну среза (X-Slope) в 48 dB на октаву, средние и верхние частоты (Mid/High) убираем за ненадобностью. Эффект «подводности» достигается за счёт создания сильного резонанса на частоте среза.

В конце можно добавить немного ревера для объёма.

Дождь

Ещё один из базовых эффектов, создаётся с помощью обычного фильтра, но на этот раз Highpass. В нашем случае мы также будем использовать трёхполосный эквалайзер, для гибкости.

В этот раз резонансы нам не нужны, поэтому устанавливаем крутизну среза в 12 dB на октаву, а частоту среза highpass-фильтра (X-High) около 1,65 kHz.

Регулировать «силу» дождя можно меняя частоту среза highpass-фильтра или просто добавляя низких и средних частот (Low/Mid).

Стоит, однако, отметить, что такой дождь звучит не всегда убедительно, потому лучше его подмешивать как лишний слой для «уплотнения» настоящего дождя или для создания динамической смены погоды.

Ветер

С ветром всё немного сложнее, он, как нам известно, не стоит на месте и постоянно меняется, то затихая, то усиливаясь. Поэтому первым делом нужно заставить наш белый шум двигаться.

В этом нам поможет Tremolo —эффект, изменяющий громкость с определённой частотой. Устанавливаем частоту (Frequency) на 0.24 Hz и глубину (Depth) — на 71%; нам не нужно, чтобы громкость нашего шума менялась слишком часто и слишком сильно. Кстати, при этих настройках получается вполне себе шум прибоя.

Далее нам снова нужен Lowpass-фильтр, на этот раз настоящий. Настраиваем его почти также, как в случае с «подводным» эффектом: частота среза (Cutoff) — около 400 Hz, резонанс (Resonance) — около 1,5. Теперь нужно добавить больше движения.

Поскольку в FMOD, к сожалению, возможности рандомизации довольно бедные, для движения нашего ветра придется ручками рисовать автоматизацию. Процесс этот нудный, но необходимый. Изменять будем два параметра Lowpass-фильтра: Cutoff и Resonance. «Силу» ветра можно увеличивать, поднимая значения этих параметров, но главное без фанатизма — после того, как частота среза достигнет 1 kHz, природа происхождения вашего ветра сразу станет очевидна.

Итак, на данном этапе наш ветер вполне себе двигается, осталось вырезать лишнее и подчеркнуть нужное. Снова используем трёхполосный эквалайзер — опускаем низкие частоты примерно на 16,5 dB (совсем убирать не рекомендую) и поднимаем средние и высокие, просто чтобы повысить уровень громкости.

Так же как и в случае с дождём, «шумовой» ветер лучше всего себя показывает в связке с реальным эмбиентом.

Взрывы

При создании взрыва самое главное — придать ему правильную «форму», для этого мы будем использовать AHDSR модуляцию громкости (подробнее про ADSR-огибающие можно почитать тут).

Нам нужен очень резкий, но достаточно короткий звук с плавным спадом. Выставляем очень короткую атаку (от 0 до 40 мс) и спад (Decay) около 1,5 секунды. А параметр задержки (Sustain) убираем до нуля, иначе у нас получится рёв ракетного двигателя.

Далее с помощью эквалайзера избавляемся от лишних частот: нам нужно убрать все высокие после 5-6 kHz и ослабить середину на 5-6 dB. Также можно добавить несколько децибел по низам.

Далее самое главное — Distortion —эффект искажения, на котором стоит практически вся рок-музыка. В FMOD этот плагин работает довольно странно, на 100% искажение слишком сильное и «съедается» вся атака, а на 97% и ниже оно не достаточно сильное, поэтому ставим 98-99%. Так же следом идет плагин Gain или Limiter, для компенсации громкости.

Повышая количество низких частот перед дисторшеном и увеличивая decay в AHDSR можно увеличивать «мощность» взрыва.

Звук вертолёта

Первым делом придаем звуку нужную форму. Как мы уже знаем эффект Tremolo отлично подходит для модуляции громкости, только в этот раз настройки будут более радикальные.

Устанавливаем параметр Frequency на значении в около 15 Hz, Depth на 100%, Duty около 20% (этот параметр позволяет сделать звук более отрывистым или наоборот), а также Square на 60%.

Далее самое главное — ревербератор. В этом примере мы будем использовать его совсем не по назначению: наша задача не сымитировать условное «помещение», а просто немного «размазать» звук, смягчить и заполнить пробелы.

Итак, первым делом убираем уровень «сухого» сигнала (Dry Level) в ноль, он нам не нужен. Далее устанавливаем время реверберации (Reverb Time) на значении в около 300 мс, HF Decay — 40% (отвечает за спад высоких частот).

А теперь самое важное — Diffusion и Early/Late — эти параметры отвечают за всю вертолётную магию. Diffusion отвечает за рассеивание отражений, а нам необходимо держать все отражения в одной куче, поэтому выставляем этот параметр на 0%.

Параметр Early/Late регулирует соотношение ранних и поздних отражений. Не будем в этой статье вдаваться в физику звука, просто устанавливаем значение максимально в Late — нам нужны только поздние отражения.

Также нам необходимо срезать немного высоких частот (Hight Cut на 1,80 kHz) и добавить немного низкочастотного гула (Low Gain на 3 dB).

Далее необходимо увеличить громкость, для этого подойдут практически любые плагины, заодно советую использовать Channel Mix, для проверки звука в моно.

Ну и в финале эквализируем всё это дело до получения нужного звука. Также можно поэкспериментировать с другими плагинами, например добавить дисторшн перед ревербератором.

Заключение

Большинство из вас, дочитавших до этого места, наверняка думают: «А что это сейчас было? Шумы какие-то, мегагерцы, фильтры, ревербераторы».

И мне всегда было интересно, а много ли нас тут таких, кому интересен саунддизайн, да и вообще звук в играх/кино.

Поэтому предлагаю устроить небольшую перепись населения и, если эта статья кому-нибудь пригодилась, позже напишу еще.

Здесь находится опрос. Но он пока не работает в приложении.

Интересны ли вам статьи/новости по саунддизайну?

Переголосовать

#звук #опыт

Материал дополнен редакцией
{ "author_name": "Anton Titov", "author_type": "self", "tags": ["\u043e\u043f\u044b\u0442","\u0437\u0432\u0443\u043a"], "comments": 26, "likes": 80, "favorites": 1, "is_advertisement": false, "subsite_label": "gamedev", "id": 16466, "is_wide": false }
{ "id": 16466, "author_id": 3184, "diff_limit": 1000, "urls": {"diff":"\/comments\/16466\/get","add":"\/comments\/16466\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/16466"}, "attach_limit": 2, "max_comment_text_length": 5000 }

26 комментариев 26 комм.

Популярные

По порядку

Написать комментарий...

Richard Butt

16

Про музыку было бы клёво почитать. Как устроены генеративные саундтреки игр, например, или как работает динамическая смена музыки.

Ответить

Anton Titov

Richard
8

Возьму на заметку.

Ответить

JCK

9

К слову, для заинтересованных: есть вот такая книжка, в которой очень простым языком написаны интересные вещи про игровой звук.

Ответить

Forest Swamp

JCK
5

Также можно вспомнить о существовании ГРИА:
https://griaudio.ru/

Помимо сайта есть еще группа в ВК. Может быть еще на FB, но точно не знаю.

Ответить

Денис Злобин

2

Отличная статья, спасибо!

Ответить

Денис Злобин

Денис
3

Я только немного добавлю, что с точки зрения оптимизации это немного рисковый подход, потому что вся эта обработка в реальном времени даёт дополнительную нагрузку на процессор. И если нет настоящей нужды делать именно так, то лучше всё же запекать. Но в конечном итоге всё зависит от технических требований проекта.

Ответить

Grzegorz Markowski

2

Использование белого шума в саунддизайне

Эффекты на основе шума.

Проходили это в 80ых с PSG- и FM-чипами на борту, лол. Особенно в этом плане был хорош YM2151 (OPM), там как раз шуму (которым можно было заменить последний FM-оператор на последнем канале) можно было задать частоту и повесить на него LFO.
А статье однозначный плюс. На DTF'е очень мало статей, связанных со звуком и музыкой.

P.S.
На DTF'е очень сильно не хватает встраиваемого Soundcloud'а и возможности табуляции в статьях. Сам щас пишу несколько статей по поводу звука.

Ответить

Владимир Ревин

1

я минут 20 пытался из первой картинки 3д сделать(третий глаз)

Ответить

Nikita Levitskiy

Владимир
0

Причем казалось, что получается в какой-то момент!

Ответить

Максим Карпов

0

Статья очень интересная, но хотелось бы живые примеры под каждым советом

Ответить

Anton Titov

Максим
2

Я думал коротеньких примеров выложить на soundcloud, но они бы совсем короткими получились. Лучше скачать проект, да попробовать самому, поэкспериментировать - из того же "подводного" эффекта можно вытянуть кучу интересных эмбиентов.

Ответить

Rajko Hristijan

Anton
0

А дайте линк на ваши треки, если выложены? Я про релизные. И да, пишите по звуковому дизайну еще, конечно же.

Ответить

Anton Titov

Rajko
1

https://hitrecord.org/users/Tyrann0s/records?type=audios - основная масса здесь, правда там очень много демок и недоделок.

Ответить

Rajko Hristijan

0

Вы пробовали Logic? И синтезатор Sculpture. Отличная штука.

Ответить

Anton Titov

Rajko
0

Я в нем и работаю, но в плане музыки. Для саунд-дизайна, на мой взгляд, Reaper подходит куда лучше, даже несмотря на всю свою кривизну. И да Sculpture - огонь.

Ответить

Rajko Hristijan

Anton
0

Я в 9-м до сих пор. 'X' совсем не то, мое мнение. Reaper да, я думаю если будет дальше развиваться — станет лучшей DAW.

Ответить

JCK

Rajko
0

А в чем принципиальное отличие 9 от X?

Ответить

Rajko Hristijan

JCK
0

В 9-м всё было и сразу, если брать синты и эффекты. В X надо докупать их. Плюс они упростили интерфейс, это такой Garage Band+ получается.

Ответить

JCK

Rajko
0

Ну плагины там вроде все те же стоят, все самое необходимое так точно есть. А по поводу интерфейса - ты включал advanced tools в настройках? Это не самая очевидная штука, которая отрывает весь функционал)

Ответить

Rajko Hristijan

JCK
0

Да как-то привык уже к 9-ке, на ней и сижу. Под задачи хватает :)

Ответить

Anton Titov

Rajko
1

В X в последнем дополнении, добавили очень крутые EQ, неплохие струнные, духовые и два мультиэффекта от бывших Camel Audio. Ну и Alchemy же! Плюс все их обновления бесплатные.

Ответить

Rajko Hristijan

Anton
0

Alchemy это их достижение, но я не прощу им, что Apple удалила оригинальный синт из iOS, купив их.

Ответить

Forest Swamp

0

Статья пригодится, когда сяду за FMOD. Пока что с ним работал напарник, но так как он пропал (проблемы с ПК и работа), нужно разбираться самому. Конечно, официальные уроки детальнее описывают работу с этим движком, но такие пользовательские статьи тоже не будут лишними. Спасибо!

Ответить

Андрей Верещагин

0

Привет. Спасибо за текст. Чутка отредактировали для вывода в соцсети.

Ответить

Serge Ushkov

0

Отличная статья.
Удобно, без "воды", все по существу.
Не пробовал на столько радикально подходить к использованию белого шума. Надо взять на заметку;)

Ответить
0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]