Изучаем JFXR

В этой статье мы изучим такой замечательный инструмент генерации звуков для игр, как JFXR.

https://jfxr.frozenfractal.com
https://jfxr.frozenfractal.com

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

№1
№1

Далее чуть ниже вы можете увидеть, как выглядит волна текущего звука (№2).

№2
№2

Под изображением волны находятся различные настройки для создания именно того звука, который мы хотим (№3).

№3
№3

Но о этих настройках мы поговорим чуть позже в этой статье. А пока посмотрим на левую часть программы, где у нас имеются пресеты, благодаря которым можно генерировать звуки на определенные тематики (№4).

№4
№4

Давайте изучим все эти пресеты по порядку.

Default – звук по умолчанию. Это просто чистая нота Си без обертонов. Благодаря обертонам мы можем различать, что эту ноту Си сыграло пианино, эту гитара и т.д. А чистая нота Си звучит именно так;

Random – создает случайный звук, т.е. программа будет рандомно изменять позиции ползунков справа, генерируя случайный звук;

Pickup/Сoin – генерирует звук похожий на тот, когда персонаж забирает монету в игре;

Laser/Shoot – звук выстрела;

Explosion – взрыв;

Powerup – данные звуки подходят для каких-либо эффектов в игре;

Hit/hurt – урон;

Jump – звук прыжка;

Blip/select – нажатие на кнопки.

Все сгенерированные звуки попадают сюда (№5).

№5
№5

Когда мы наводим мышкой на тот или иной готовый звук, появляется крестик, благодаря которому мы можем удалить этот звук (№6)

№6.
№6.

Выше списка готовых звуков, вы можете заметить две кнопки: Mutate и Undo. Кнопка Undo отменяет последние действия. Например, мы могли сгенерировать звук, а потом, с помощью ползунков справа, его видоизменить. И вот последние действия нас не устроили, но мы уже не помним, какие ползунки двигали. Но благодаря кнопке Undo мы можем последовательно их отменить начиная с последнего изменения.

Кнопка Mutate, похожа на пресет Random, т.е. она на конкретном звуке просто рандомно двигает ползунки для его видоизменения. Но здесь уже мы можем блокировать те ползунки, которые мы не хотим изменять (№7).

№7
№7

Над пресетами находится главное меню (№8).

№8
№8

Здесь мы можем открыть файл в формате JFXR или сохранить его в этот формат, также можем дублировать выбранный звук, создать на него ссылку, экспортировать в формат WAVE.

Итак, пришло время разобрать все эти ползунки справа. Как видите, они сгруппированы на 5 разделов: Amplitude, Pitch, Tone, Filters и Output.

Начнем с ползунков Amplitude (т.е. Амплитуда. Она отвечает за громкость. С помощью неё мы можем изменять громкость тех или иных частей звуковой волны).

Почти любой звук можно разделить на 4 части – это Attack, Decay, Sustain и Release.

Изучаем JFXR

Подъем – это период нарастания звука до его максимального значения, т.е. ползунок Attack определяет время, за которое звук достигает своего макс. значения.

Спад (или еще говорят ослабление) – представляет собой период спада уровня сигнала с максимально до постоянного. Ползунок Decay определяет время этого спада.

Поддержка – это период, в котором уровень звука постоянен. Т.е. благодаря ползунку Sustain мы можете регулировать длину ноты.

Затухание – это период спада сигнала от уровня Sustain до нулевого уровня. Ползунок Release определяет скорость этого спада.

Но в программе JFXR, как вы можете заметить, отсутствует Release, но есть, например, Sustain Punch. Давайте разбираться, за что каждый параметр отвечает.

Изучаем JFXR

Attack и Sustain соответствуют тем параметрам, о которых мы говорили.

Sustain Punch – уменьшает уровень максимального значения для Attack. Если выкрутить данный ползунок на 100%, то самым громким звуком будет постоянный Sustain, который также будет потихоньку затухать. На графике это будет понятней:

Звук с Attack и Sustain, но без Sustain Punch.
Звук с Attack и Sustain, но без Sustain Punch.
Здесь мы уже используем Sustain Punch по максимуму, чтобы явно видеть результат.
Здесь мы уже используем Sustain Punch по максимуму, чтобы явно видеть результат.

Ползунок Decay в JXFR почему-то отвечает за Затухание.

Изучаем JFXR

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

Ползунок Tremolo Depth позволяет создать эффект тремоло - когда уровень звука падает, затем опять восстанавливается. По сути, ползунок Tremolo Depth регулирует уровень спада звука для эффекта тремоло (№9).

№9
№9

А с помощью ползунка Tremolo frequency мы устанавливаем частоту повторений эффекта тремоло (№10).

№10
№10

С разделом Amplitude на этом всё.

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

Переходим к следующему разделу - это TONE (№11).

№11
№11

По названию можно подумать, что мы будем взаимодействовать именно с частотой звука, получать нужные ноты, но нет. В этом разделе мы будем настраивать обертона звука.

Первый параметр - это Waveform, т.е. форма волны. По умолчанию установлено значение SIN (синусоидальная волна) (№12).

№12
№12

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

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

TRI (треугольная волна) – вторая по мягкости после синусоидальной волны. Она содержит мало дополнительных гармоник (или обертонов) и звучит чуть ярче синуса. Подходит для аккордов и мелодий (№13).

№13
№13

SAW (пилообразная волна) – одна из самых ярко звучащих и богатых на гармоники волна. Подходит и для мелодий и баса (№14).

№14
№14

SQR (квадратная волна) – также богатая на гармоники волна, большинство из которых расположены в нижних частотах, что делает звук идеальным для баса (№15).

№15
№15

Tangent (касательная волна) – по звуку очень похожа на пилообразную (это вы можете заметить по схожести волны), но имеет небольшое отличие – звучит, по ощущению, даже чуть ярче (№16).

№16
№16

Whistle (свистящая волна) – содержит гармоники, которые придают этой волне ощущение свиста (№17).

№17
№17

Breaker (разрушающая волна) – похожа на синусоидальную волну, но звучит не так глухо (№18).

№18
№18

White Noise (белый шум) – белый шум не я является гармонической волной, так как у него нет главной частоты, а звучат одновременно и равномерно все частоты. Из-за этого наш слух воспринимает этот как шум. Очень хорошо подходит для создания эффектов: шум ветра, водопада, города и т.д.; также хорошо подходит для создания ударных (№20).

№20
№20

Pink Noise (розовый шум) – в отличие от белого шума, в розовом шуме высокие частоты не так ярко выражены, т.е. розовый шум звучит как более басовый (№21).

№21
№21

Brown Noise (коричневый шум) – в коричневом шуме преобладает еще больше низких частот, чем в розовом. Это приятный глубокий звук, сравнимый с монотонным рокотом водопада или отдаленными раскатами грома (№22).

№22
№22

В зависимости от выбора той или иной волны, ниже становятся доступны те или иные ползунки.

Изучаем JFXR

Например, первый ползунок (Interpolate noise) доступен только для шумов. Он делает форму звуковых частот шума более похожей на синусоидальную волну (по умолчанию она больше похожа на квадратную), что делает шум более глухим и не столько раздражительным для уха.

Например, вот белый шум без интерполяции:

Изучаем JFXR

А это уже с интерполяцией:

Изучаем JFXR

Благодаря такому сглаживанию углов звуковой волны – она становится более глухой.

Ползунки Square Duty и Square Duty Sweep доступны только для квадратной волны. С помощью них вы можете изменять форму волны. Например, с помощью Square Duty мы можем менять ширину волны в верхней и нижней части (№23).

№23
№23

А с помощью Square Duty Sweep мы можем настроить, чтобы ширина верхней и нижней частях волны изменялась постепенно (№24).

№24
№24

Здесь бы я хотел добавить, что таким образом (с помощью ползунков Square Duty и Square Duty Sweep) мы не меняем частоту волны (т.е. изменяем ноту), так как не равномерно увеличиваем или уменьшаем волну, а просто изменяем либо длину верхней части по отношению к нижней, либо наоборот, но сама длина волны (а это одновременно и верхняя часть и нижняя) остается прежней.

С помощью ползунка Harmonics мы можем добавлять дополнительные гармоники (или обертона) к нашей волне (№25).

№25
№25

Точнее вы выбираете количество обертонов, которые вы собираетесь добавить, а процесс добавления происходит с помощью ползунка ниже – это Harmonics fallout. Если говорить простыми словами, то с помощью этого ползунка вы задаете амплитуду для дополнительных гармоник – от 0 (здесь дополнительный гармоники не слышны совсем) до 1 (слышны очень четко).

Переходим к следующему разделу – это PITCH.

Изучаем JFXR

Первый ползунок – это Frequency, т.е. частота. У каждой ноты есть своя частота, и с помощью этого ползунка, мы можем ее менять. Ниже я привел какие частоты бывают у нот.

Частоты нот.
Частоты нот.

Как видим, у ноты Си первой октавы частота 493, что очень близка к нашей частоте установленной по умолчанию в 500 герц, поэтому я написал, что по умолчанию установлена нота Си. Такие разночтения в герцах между 493 и 500 являются незначительными.

Ползунок Frequency Sweep уменьшает или увеличивает частоты с правого края волны (№26).

№26
№26

Если с помощью Frequency Sweep происходит равномерное увеличение и уменьшение частоты:

Изучаем JFXR

То с помощью Frequency Delta Sweep увеличение или уменьшение частоты происходит по кривой:

Изучаем JFXR

Vibrato depth вставляет в определенные промежутки времени волну низкой частоты, и чем значение ползунка выше, тем ниже частота добавляется в промежутки. Значение у этого ползунка в герцах показывает насколько низко мы опустим частоту волны (№27).

№27
№27

А Vibrato frequency устанавливает частоту этих промежутков, когда волна будет падать создавая вибрато (№28).

№28
№28

Если мы опустим или повысим частоту с помощью Frequency Sweep, то с помощью Repeat Frequency мы можем повторять получившийся результат. Чем больше значение ползунка, тем больше количество повторений (№29).

№29
№29

С помощью Freq. jump 1 onset и Freq. jump 1 amount мы можем настроить резкий скачок частоты. Используя onset мы выбираем участок, где будет скачок, а с помощью amount устанавливаем уровень скачка (№30).

№30
№30

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

Теперь мы перейдем к разделу FILTERS.

Изучаем JFXR

По сути данный раздел позволяет добавить вам различные эффекты к вашему звуку.

Первые два ползунка отвечают за эффект Флэнджера. Данный эффект есть во всех профессиональных программах по созданию музыки. Суть его проста: программа копирует вашу звуковую волну и смещает его вправо настолько, насколько вы укажете в ползунке Flanger offset. Это сделает ваш звук более широким по ощущениям.

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

Но эффект Флэнджера на этом не заканчивается, дело в том что вторая скопированная волна также движется туда-сюда в режиме реального времени, как бы вибрирует. И диапазон этого вибрирования мы можем указать в ползунке Flanger offset sweep.

Bit crush – сокращает количество бит в скопированном звуке, т.е. для создания звуковой волны будет использоваться меньшее количество бит. А чем меньше бит, тем меньше детализация звука.

Вit crush sweep – может менять количество бит для описания волны с течением времени. Например, в начале будет 1 bit к концу звука 16 bit.

Low-pass cut-off – данный ползунок, все частоты находящиеся слева от него он не трогает, а справа уменьшает количество частот. Т.е. если ползунок находится на 10 000Hz то все, что выше этого значения подвергается уменьшению.

Low-pass sweep – по сути она изменяет расположение ползунка cut-off во времени. Например, поставили вы ползунок cut-off на 10 000Hz, а sweep на 5000Hz. Получается что в самом начале фильтр обрабатывать звук со значением 10 000Hz, а в конце уже со значением 5000Hz. И этот переход будет плавным.

High-pass cut-off и High-pass sweep работают точно также, но наоборот.

Нам осталось изучить последний раздел – это OUTPUT.

Изучаем JFXR

Compression – “сжимает” форму волны, точнее ее амплитуду. Это легче увидеть визуально.

Без сжатия:

Изучаем JFXR

Перемещаем ползунок на значение 5:

Изучаем JFXR

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

Изучаем JFXR

Normalization – данный ползунок увеличивает уровень громкости тихого звука.

Amplification – более точная настройка громкости звука. Если в Normalization звук увеличивается на определенное значение, то в Amplification мы можем увеличивать или уменьшать значение громкости на нужные нам значения.

Начать дискуссию