В этом месяце мы собираемся погрузиться в : slicer
- один из самых мощных и гибких звуковых эффектов Sonic Pi. К концу этой статьи вы узнаете, как манипулировать общей громкостью частей вашего закодированного вживую звука новыми мощными способами. Это позволит вам расширить звуковые возможности, создавая новые ритмические и тембральные структуры.
Итак, что же на самом деле делает эффект : slicer
? Один из способов думать об этом - это то же самое, как когда кто-то играет с регулятором громкости на телевизоре или домашнем хай-фай. Давайте посмотрим, но сначала послушаем следующий код, который заставит прорычать для нас синтезатор : prophet
:
synth :prophet, note: :e1, release: 8, cutoff: 70
synth :prophet, note: :e1 + 4, release: 8, cutoff: 80
Теперь давайте пропустим это через эффект : slicer
:
with_fx :slicer do
synth :prophet, note: :e1, release: 8, cutoff: 70
synth :prophet, note: :e1 + 4, release: 8, cutoff: 80
end
Послушайте, как работает слайсер - он как будто заглушает и включает звук в регулярном ритме. Также обратите внимание, как : slicer
влияет на все аудио, сгенерированное между блоками do
/ end
. Вы можете контролировать скорость, с которой он включает и выключает звук, с помощью опции phase:
, которая сокращает длительность фазы. Его значение по умолчанию равно 0.25
, что означает 4 раза в секунду при значении BPM по умолчанию 60. Давайте сделаем это быстрее:
with_fx :slicer, phase: 0.125 do
synth :prophet, note: :e1, release: 8, cutoff: 70
synth :prophet, note: :e1 + 4, release: 8, cutoff: 80
end
Теперь поиграйте с разными значениями продолжительности phase:
сами. Попробуйте более длинные и короткие значения. Посмотрите, что происходит, когда вы выбираете действительно короткое значение. Кроме того, попробуйте различные синтезаторы, такие как : beep
или: dsaw
и другие ноты. Взгляните на следующую диаграмму, чтобы увидеть, как различные значения phase:
изменяют количество изменений амплитуды за такт.
Продолжительность фазы - это продолжительность одного цикла включения / выключения. Поэтому меньшие значения заставят эффект включаться и выключаться намного быстрее, чем большие значения. Хорошие значения для начала игры: 0.125
, 0.25
, 0.5
и 1
.
По умолчанию эффект : slicer
использует прямоугольную волну для управления амплитудой во времени. Вот почему мы слышим, как амплитуда включается на некоторое время, затем сразу отключается на некоторое время, затем снова включается. Оказывается, прямоугольная волна - это всего лишь одна из 4 различных управляющих волн, которые поддерживаются : slicer
. Другие это пила, треугольник и (ко)синус. Посмотрите на диаграмму ниже, чтобы увидеть, как они выглядят. Мы также можем услышать, как они звучат. Например, следующий код использует (кo)синус в качестве управляющей волны. Послушайте, как звук не включается и не выключается внезапно, а плавно затухает:
with_fx :slicer, phase: 0.5, wave: 3 do
synth :dsaw, note: :e3, release: 8, cutoff: 120
synth :dsaw, note: :e2, release: 8, cutoff: 100
end
Поиграйте с разными формами волн, изменив параметр wave:
на 0
для пилы, 1
для квадрата, 2
для треугольника и 3
для синуса. Посмотрите, как звучат разные волны с разными параметрами phase:
.
Каждая из этих волн может быть инвертирована с помощью опции invert_wave:
, который переворачивает ее на оси y. Например, в одной фазе пилообразная волна обычно начинается с высокой отметки и медленно опускается, а затем возвращается к вершине. С помощью invert_wave: 1
он медленно поднимется, прежде чем снова спрыгнуть вниз. Кроме того, управляющая волна может быть запущена в разных точках с помощью параметра phase_offset:
, который должен быть значением между 0
и 1
. Играя с параметрами phase:
, wave:
, invert_wave:
и phase_offset
, вы можете кардинально изменить способ изменения амплитуды во времени.
По умолчанию : slicer
переключает значения амплитуды 1
(максимальная громкость) и 0
(беззвучно). Это можно изменить с помощью параметров amp_min:
и amp_max:
. Вы можете использовать это вместе с синусоидальной волной, чтобы создать простой эффект тремоло:
with_fx :slicer, amp_min: 0.25, amp_max: 0.75, wave: 3, phase: 0.25 do
synth :saw, release: 8
end
Это как если бы взять ручку регулировки громкости на своем hi-fi и немного переместить ее вверх и вниз, чтобы звук «качался» внутрь и наружу динамика.
Одной из мощных функций : slicer
является его способность использовать вероятность, чтобы выбирать, включаться ему или выключаться. Перед тем как эффект : slicer
начинает новую фазу, он бросает кости и на основании результата либо использует выбранную волну управления, либо отключает амплитуду. Давайте послушаем:
with_fx :slicer, phase: 0.125, probability: 0.6 do
synth :tb303, note: :e1, cutoff_attack: 8, release: 8
synth :tb303, note: :e2, cutoff_attack: 4, release: 8
synth :tb303, note: :e3, cutoff_attack: 2, release: 8
end
Послушайте, как у нас сейчас интересно пульсирует ритм. Попробуйте изменить параметр probability:
на другое значение между 0
и 1
. Значения, близкие к 0
, будут иметь больше места между каждым отдельным звуком, поскольку вероятность того, что звук будет срабатывать, будет намного ниже.
Следует также отметить, что система вероятностей в этом эффекте подобна системе рандомизации, доступной через такие функции, как rand
и shuffle
. Они все полностью детерминированы. Это означает, что каждый раз, когда вы нажимаете Выполнить, вы слышите точно такой же пульсирующий ритм для данной вероятности. Если вы хотите что-то изменить, вы можете использовать параметр seed:
, чтобы выбрать другое начальное число. Это работает точно так же, как use_random_seed
, но влияет только на этот конкретный эффект.
Наконец, с помощью параметра prob_pos:
, вы можете изменить положение ‘resting’ для управляющей волны с 0
на любую другую позицию, когда проверка вероятности возвращает ложь, а не истину:
with_fx :slicer, phase: 0.125, probability: 0.6, prob_pos: 1 do
synth :tb303, note: :e1, cutoff_attack: 8, release: 8
synth :tb303, note: :e2, cutoff_attack: 4, release: 8
synth :tb303, note: :e3, cutoff_attack: 2, release: 8
end
Есть одна очень забавная вещь - использовать : slicer
для нарезки барабанного ритма:
with_fx :slicer, phase: 0.125 do
sample :loop_mika
end
Это позволяет нам брать любой сэмпл и создавать новые ритмические возможности, что очень весело. Однако следует быть осторожным и убедиться, что темп сэмпла соответствует текущему BPM в Sonic Pi, иначе слайсы будут звучать криво относительно ритма этого сэмпла. Например, попробуйте поменять : loop_mika
на сэмпл loop_amen
, чтобы услышать, насколько плохо это может звучать, когда темпы не совпадают.
Как мы уже видели, изменение значения BPM по умолчанию с помощью use_bpm
приведет к увеличению или уменьшению времени ожидания и длительности огибающей синтезатора в соответствии с тактом. Эффект : slicer
также учитывает это, поскольку параметр phase:
фактически измеряется в тактах, а не секундах. Поэтому мы можем исправить проблему, возникшую с loop_amen выше, изменив BPM в соответствии с примером:
use_sample_bpm :loop_amen
with_fx :slicer, phase: 0.125 do
sample :loop_amen
end
Давайте применим все эти идеи в заключительном примере, в который используем только эффект :slicer
для создания интересной комбинации. Давайте, начните изменять его и сделайте из него свое собственное произведение!
live_loop :dark_mist do
co = (line 70, 130, steps: 8).tick
with_fx :slicer, probability: 0.7, prob_pos: 1 do
synth :prophet, note: :e1, release: 8, cutoff: co
end
with_fx :slicer, phase: [0.125, 0.25].choose do
sample :guit_em9, rate: 0.5
end
sleep 8
end
live_loop :crashing_waves do
with_fx :slicer, wave: 0, phase: 0.25 do
sample :loop_mika, rate: 0.5
end
sleep 16
end