Аддитивный синтез

Это первая из короткой серии статей о том, как использовать Sonic Pi для саунд дизайна. Мы проведем краткий обзор различных методов, доступных для вас, чтобы создать свой собственный уникальный звук. Первый метод, который мы рассмотрим, называется * аддитивный синтез *. Это может показаться сложным - но если мы немного внимательнее рассмотрим здесь каждое слово, то смысл сразу появится на поверхности. Во-первых, аддитивный означает сочетание нескольких вещей, а во-вторых, синтез означает создание звука. Следовательно, аддитивный синтез не означает ничего более сложного, чем * объединение существующих звуков для создания новых *. Эта методика синтеза восходит к очень давним временам - например, у трубных органов в средние века было много слегка отличающихся по звучанию трубок, которые вы могли включать или отключать с помощью специальных заглушек. Вытягивание заглушки из данной трубы «добавило ее в микс», сделав звук более насыщенным и сложным. Теперь давайте посмотрим, как мы можем вытащить все заглушки с Sonic Pi.

Простые комбинации

Давайте начнем с самого основного звука -простой синусоиды с чистыми тонами:

synth :sine, note: :d3

Теперь давайте посмотрим, как это звучит в сочетании с прямоугольной волной:

synth :sine, note: :d3
synth :square, note: :d3

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

Смешивание со вкусом

Давайте добавим что-нибудь, чтобы это зазвучало немного ярче. Мы могли бы использовать треугольную волну на октаву выше (для яркого звука), но воспроизводить ее с амплитудой 0.4, чтобы она только добавила кое-то к звуку, а не перетянула все на себя:

synth :sine, note: :d3
synth :square, note: :d3
synth :tri, note: :d4, amp: 0.4

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

Расстройка осцилляторов

Пока что, комбинируя наши разные синтезаторы, мы использовали либо одинаковую высоту, либо переключали октаву. Как это могло бы звучать, если бы мы не придерживались октав, а вместо этого выбрали чуть более высокую или более низкую ноту? Давай попробуем:

detune = 0.7
synth :square, note: :e3
synth :square, note: :e3 + detune

Если мы расстроем наши прямоугольные волны на 0,7 ноты, мы услышим что-то, что, возможно, звучит не в гармонии или не правильно - как «плохая» нота. Однако, когда мы приближаемся к 0, это будет звучать все менее и менее заметно, так как высота звука двух волн становится все ближе и ближе. Попробуйте сами! Измените значение параметра detune: с 0.7 на 0.5 и прослушайте новый звук. Попробуйте 0.2, 0.1, 0.05, 0. Каждый раз, когда вы меняете значение, прислушайтесь и посмотрите, можете ли вы услышать, как меняется звук. Обратите внимание, что низкие значения расстройки, такие как 0.1, производят действительно хороший «толстый» звук, при этом оба немного отличающихся тона взаимодействуют друг с другом интересным, часто удивительным, способом.

Некоторые из встроенных синтезаторов уже включают опцию расстройки, которая делает это в пределах одного синтезатора. Попробуйте поиграть с параметром detune: синтезаторов : dsaw,: dpulse и : dtri.

Амплитудная огибающая

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

detune = 0.1
synth :square, note: :e1, release: 2
synth :square, note: :e1 + detune, amp: 2, release: 2
synth :gnoise, release: 2, amp: 1, cutoff: 60
synth :gnoise, release: 0.5, amp: 1, cutoff: 100
synth :noise, release: 0.2, amp: 1, cutoff: 90

В приведенном выше примере я смешал шумовой перкуссионный элемент с настойчивым грохочущим призвуком. Это было достигнуто в первую очередь за счет использования двух синтезаторов шума со средними значениями среза частоты фильтра (90 и 100) и с использованием короткого времени высвобождения (release) наряду с шумом с более длительным временем высвобождения, но с низким значением частоты среза фильтра (что делает шум менее четким и более гудящим.)

Соединим всё вместе

Давайте объединим все эти методы, чтобы увидеть, сможем ли мы использовать аддитивный синтез для воссоздания простого звука колокольчика. Я разбил этот пример на четыре раздела. Во-первых, у нас есть секция «hit», которая является начальной частью звука колокольчика, поэтому мы используем быструю огибающую (например, release: около 0.1). Затем у нас есть длинный участок звука колокольчика, в котором я использую чистый звук синусоиды. Обратите внимание, что я часто увеличиваю ноту примерно на 12 и 24, которые представляют собой количество нот в одной и двух октавах. Я также добавил пару низких синусоидальных волн, чтобы придать звуку немного баса и глубины. Наконец, я использовал define, чтобы обернуть мой код в функцию, которую затем я могу использовать для воспроизведения мелодии. Попробуйте сыграть свою собственную мелодию, а также поиграться с содержанием функции : bell, пока не создадите свой собственный сумасшедший звук для игры!

define :bell do |n|
  # Triangle waves for the 'hit'
  synth :tri, note: n - 12, release: 0.1
  synth :tri, note: n + 0.1, release: 0.1
  synth :tri, note: n - 0.1, release: 0.1
  synth :tri, note: n, release: 0.2
  # Sine waves for the 'ringing'
  synth :sine, note: n + 24, release: 2
  synth :sine, note: n + 24.1, release: 2
  synth :sine, note: n + 24.2, release: 0.5
  synth :sine, note: n + 11.8, release: 2
  synth :sine, note: n, release: 2
  # Low sine waves for the bass
  synth :sine, note: n - 11.8, release: 2
  synth :sine, note: n - 12, release: 2
end
# Play a melody with our new bell!
bell :e3
sleep 1
bell :c2
sleep 1
bell :d3
sleep 1
bell :g2