В дополнение к возможности выбрать какую ноту играть или какой сэмпл включать, Sonic Pi предоставляет целый арсенал настроек для создания и управления звуком. Многие из этих настроек описаны в этом учебнике, и есть обширная документация по каждой из них в справочной системе. Пока что, мы познакомимся всего лишь с двумя самыми полезными: амплитуда и панорамирование. Вначале посмотрим, что же такое эти настройки на самом деле.
Sonic Pi поддерживает регулировки для своих синтезаторов. Они представляют собой элементы управления, для управления которыми вы передаёте атрибуты функции play
. Эти атрибуты изменяют и контролируют выводимый звук. У каждого синтезатора свой собственный набор регулировок для тонкой настройки звука. Но, есть общие наборы регулировок, одинаковые для разных синтезаторов, такие как amp:
, pan:
и параметры огибающей (обсуждается в другой главе).
Каждая регулировка состоит из двух частей: название регулировки (элемента управления) и её значение (деление, на которое вы хотите установить ручку регулировки). Например, может быть настройка с названием cheese:
, а ее желаемым значением будет 1
.
Настройки передаются вызовам play
после запятой ,
далее следует название, например amp:
(не забудьте двоеточие :
), а потом ее значение. Например:
play 50, cheese: 1
(Замечание: cheese:
- не настоящая настройка, мы просто используем ее для примера).
Можно передавать много настроек, разделяя их запятыми:
play 50, cheese: 1, beans: 0.5
Порядок регулировок не важен, так что следующий пример ничем не отличается:
play 50, beans: 0.5, cheese: 1
Регуляторы, о которых синтезатор не знает, попросту пропускаются (такие как cheese
и beans
- очевидно нелепые названия для настроек!)
Если вы случайно укажите одну и ту же настройку с разными значениями, то победит последнее. Например, значением beans:
будет 2
, а не 0.5
:
play 50, beans: 0.5, cheese: 3, eggs: 0.1, beans: 2
Множество вещей в Sonic Pi гибко регулируемо, потратьте немного времени на изучение того, как использовать их, и будете “настроены”! Давайте позабавимся с нашим первым регулятором - amp:
.
Амплитуда - компьютерное представление громкости звука. Высокая амплитуда даёт громкий звук, а низкая амплитуда даёт тихий звук. Так же, как Sonic Pi использует числа для обозначения нот, числами обозначается и амплитуда. При значении амплитуды 0 получается тишина (ничего не будет слышно), а амплитуда 1 - это нормальная громкость. Можно, также, увеличить амплитуду до 2, 10 или 100. Но стоит отметить, что когда общая амплитуда становится слишком высокой, то Sonic Pi включает так называемый компрессор, чтобы сжать ее и не дать звуку сделаться слишком громким для ваших ушей. Часто это может делать звук непонятным и странным. Так что постарайтесь использовать значения амплитуды в промежутке от 0 до 0.5, чтобы избегать компрессии.
Чтобы изменить амплитуду звука, можно воспользоваться настройкой amp:
. Например, передай 0.5, чтобы играть на половинной громкости:
play 60, amp: 0.5
Чтобы играть на удвоенной громкости, передай 2:
play 60, amp: 2
Регулировка amp:
изменяет тот вызов play
, с которым она идёт вместе. Поэтому в следующем примере первый вызов произойдет на половинной громкости, а второй вернется к значению по умолчанию (1):
play 60, amp: 0.5
sleep 0.5
play 65
Конечно, можно задавать разные значения amp:
для каждого вызова play
:
play 50, amp: 0.1
sleep 0.25
play 55, amp: 0.2
sleep 0.25
play 57, amp: 0.4
sleep 0.25
play 62, amp: 1
Еще одной забавной настройкой, которую стоит использовать, является pan:
. Она контролирует смещение звука в стереобазе. Смещение звука влево означает, что вы услышите его из левого динамика, а смещение вправо - что он будет выходить из правого динамика. Мы используем -1 для полного смещения влево, 0 для центра, а 1 - для полного смещения вправо в стереобазе. Безусловно, мы можем указывать любое значение в промежутке между -1 и 1 для точного позиционирования нашего звука.
Давай получим звук из левого динамика:
play 60, pan: -1
Теперь, повторим его из правого:
play 60, pan: 1
Наконец, выведем его снова по центру (позиция по умолчанию):
play 60, pan: 0
Попробуйте сами сделать что-нибудь весёлое, меняя амплитуду и панорамирование ваших звуков!