Новое тысячелетие: Сканированный синтез

Как видите, в Csound'е собрано вместе и старое, и новое. Он сохранил исторический подход к компьютерной музыке и, что более важно, сохранил библиотеку инструментов, представляющих знания и осмысление, выросшие из уникального симбиоза между исполнителями, композиторами и инженерами. Csound это то, что случается, когда наука встречается с искусством. Но это также и язык исследований, язык будущего. Каждый день исследуются новые направления и обнародуются новые открытия. В этом мастер-классе я познакомлю Вас с новой захватывающей техникой синтеза - сканированным синтезом.


Сканированный синтез представляет мощную и эффективную технику анимирования волновых таблиц и управления ими в реальном времени. Он был разработан Биллом Верпланком (Bill Verplank), Робом Шо (Rob Shaw) и Максом Мэтью (Max Mathews) ("отцом компьютерной музыки") между 1998 и 1999 годами в Interval Research. Сканированный синтез основывается на психоакустических особенностях того, как мы слышим и воспринимаем определенные тембры и на наших моторных (осязательных) способностях манипулировать этими тембрами во время живого исполнения. В сканированном синтезе используется медленная динамическая система, чьи частоты вибрации лежат ниже 15 Гц. Слух не может воспринять низкие частоты динамической системы. Поэтому для генерации слышимых частот "форма" динамической системы вдоль замкнутого пути периодически сканируется. "Форма" преобразуется в звуковую волну, чья высота определяется скоростью сканирующей функции. Как показано на рисунке 25, управление высотой (2) полностью отделено от управления динамической системой (1). Таким образом, тембр и высота являются независимыми. Эта система может считаться динамической волновой таблицей. Такую модель можно сравнить с медленно вибрирующей струной или двухмерной поверхностью, удовлетворяющей волновому уравнению.


 
Навигация
[индекс] [предыдущая] [следующая]

cSounds.com
[+] На главную
[+] Тъюториалы
mastering.zip
mastering.zip содержит сопроводительные оркестровые файлы Csound и сэмплы из этого тъюториала

[+] скачать (3.8M)
 
Рисунок 25: Осязательное управление медленно эволюционирующей волновой таблицей, сканируемой с аудиочастотой.


 
Верпланк (Verplank), Шо (Shaw) и Мэтью (Mathews) изучали сканированный синтез главным образом на модели обобщенной струны с конечным числом элементов – совокупности масс, соединенных пружинами и демпферами, которая поддается анализу с использованием законов Ньютона. Отталкиваясь от этой модели, они обобщили традиционную струну, добавив демпферы и пружины к каждой массе, как показано на рисунке 26.


 
Рисунок 26: Короткая волновая таблица, представленная как струна с конечным числом элементов с пружинами и массами.


 
Все параметры – масса, затухание, сопротивление каждой пружины и натяжение струны могут варьироваться вдоль "струны". Модель приводится в действие путем толкания или удара различных масс (индивидуальных сэмплов в очень короткой волновой таблице) простыми или сложными "молоточками" (как показано на рисунке 27) и путем манипулирования параметрами. Что здесь уникально, это то, что волновая таблица сама по себе является динамической моделью, чья "естественная" эволюция основывается на начальных условиях и свойствах модели.


 
Рисунок 27: Набор радикально различающихся 'молоточков', с помощью которых воздействуют на модель.


 
Таким образом, Вы воздействете на эту "механическую" модель с моторными скоростями 0-10 Гц и независимо от этого сканируете волновую таблицу с частотой высоты звука. Волновая таблица ("струна") имеет свою собственную динамику, но точки разрыва здесь отсутствуют, так как модель реализована как "круговая струна " (как показано на рисунке 28). То, что Вы в итоге получаете – это осциллятор, зацикливающий 128 точек волновой таблицы с постоянной изменяющейся петлей! В сканированном синтезе предельно короткие сэмплы звучат живо и богато гармонически благодаря сложной интерактивной природе элементов лежащей в основе системы – механике модели.


 
Рисунок 28: Круговая 'струна' устраняет разрывы в данной динамической системе.


 
Фактически, даже огибающая (тембровая) может вытекать прямо из модели. Оказывается, что определенные параметры центрирующих пружин могут влиять на торможение системы – малые значения позволяют богатому тембру прозвучать, большие значения дают быстрое затухание тона.


В июне 1999 аспирант из MIT Media Lab Парис Смарагдис (Paris Smaragdis) еще больше обобщил модель, добавив два опкода для сканированного синтеза в Csound'е. Первый опкод задает характеристики цепи масс/пружин и приводит ее в движение (scanu), а второй следует по предписанному пути (траектории) вдоль цепи и выдает на выход динамическую волновую форму с определенными пользователем частотой и амплитудой (scans).


Синтаксис опкода scanu следующий:


 
scanu  init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, \       kstif, kcentr, kdamp, ileft, iright, kx, ky, ain, idisp, id
  -init:
Начальное расположение масс. Если этот параметр – отрицательное число, то его абсолютное значение указывает на таблицу, которую следует использовать как форму молоточка. Если init > 0, длина таблицы должна совпадать с количеством масс (128), в противном случае она может быть любой.
  -irate:
Количество времени между последовательными обновлениями состояния масс. Подобие промежутка между выборками системы. Если число большое, струна будет колебаться медленно, демонстрируя малую тембровую изменчивость, в противном случае она будет изменяться быстро, давая в результате более динамичный звук.
  -ifnvel:
Номер таблицы, содержащей начальную скорость для каждой массы. Размер этой таблицы должен совпадать с количеством масс (128).
  -ifnmass:
Номер таблицы, содержащей значения каждой массы. Таблица должна быть того же размера, что и количество масс (128).
  -ifnstif:
Номер таблицы, содержащей натяжение пружины каждого соединения. Таблица должна иметь размер, равный квадрату количества масс (16384). Порядок данных соответствует последовательности рядов матрицы соединений системы.
  -ifncentr:
Номер таблицы, содержащей центрирующую силу каждой массы. Таблица должна иметь тот же размер, что и количество масс (128).
  -ifndamp:
Номер таблицы, содержащей демпферный множитель каждой массы. Размер таблицы должен соответствовать количеству масс (128).
  -kmass:
Масштабирует массы.
  -kstif:
Масштабирует натяжения пружин.
  -kcentr:
Масштабирует центрирующие силы.
  -kdamp:
Масштабирует демпфирование.
  -ileft:
Если init < 0, то указывает положение левого молоточка (ileft = 0 – удар в крайнем левом положении, ileft = 1 – удар в крайнем правом положении).
  -iright:
Если init < 0, то указывает положение правого молоточка (iright = 0 – удар в крайнем левом положении, iright = 1 – удар в крайнем правом положении).
  -kx:
Положение активного молоточка на струне (0 – крайнее левое, 1 - крайнее правое). Форма молоточка определяется параметром init. Сила удара определяется параметром ky.
  -ky:
Сила, с которой ударяет активный молоточек.
  -ain:
Аудиосигнал, добавляемый к скорости масс.
  -idisp:
Если 0, режим работы без отображения. Если 1, отображается динамическая эволюция состояния масс.
  -id:
Идентификатор (ID) опкода scanu. Используется для указания сканирующему опкоду (scans) надлежащего генератора волновой формы. Если значение отрицательное, то оно обозначает волновую таблицу, в которую следует записать волновую форму. Эта таблица может быть использована позже другим опкодом для генерирования звука. Заметьте: в этом случае первоначальное содержимое этой таблицы будет уничтожено, поэтому в произвольный момент времени не стоит полагаться, что оно все еще на месте.

  Синтаксис опкода scans следующий:
ar  scans  kamp, kfreq, ifntraj, id[, korder]
  -kamp:
Амплитуда на выходе. Обратите внимание, что итоговая амплитуда также зависит от состояния волновой таблицы.
  -kfreq:
Частота сканирования.
  -ifntraj:
Номер таблицы, содержащей траекторию сканирования. Траектория представляет собой последовательность чисел, указывающих местонахождения масс – порядок следования этих местонахождений используется как путь сканирования. Таблица не должна содержать больше значений, чем количество масс (128) и не должна содержать отрицательных значений.
  -id:
Число-идентификатор (ID) опкода scanu, волновую форму которого следует использовать.
  -korder:
Порядок интерполирования, используемого в работе опкода (внутренне). Может принимать любое целое значение из диапазона 1 – 4, причем значение по умолчанию равно 4, что задает биквадратную интерполяцию. Устанавливая этот параметр в 2, получаем квадратную интерполяцию, а в 1 – линейную. Большие значения замедляют работу алгоритма, но не обязательно дают лучший результат.

 
Что уникально в реализации сканированного синтеза в Csound'е, это то, что Смарагдис добавил поддержку и для сканирующей траектории, и для сканирующей матрицы. Матрица дает возможность заново подключать сэмплы (массы/точки) в различном порядке (не обязательно к своим ближайшим соседям), заставляя сигнал распространяться совершенно по-разному. По существу, матрица дает эффект "отливки" этой поверхности/каркаса в радикально отличающиеся формы. Траектория позволяет сканировать "струну" в любом направлении, с переменными скоростями или даже случайным образом. На рисунке 29 показан базовый инструмент для сканированного синтеза с однородным распределением масс (f2). Однако, неравномерная центрирующая сила, приложенная к ним (f4) дает в результате тембр очень похожий на фильтрацию с медленным перемещением центральной частоты фильтра (без самого фильтра, разумеется).


 
Рисунок 29: Базовый оркестр для сканированного синтеза с неравномерным центрированием.


 
Кроме того, обеспечивая корректировку скорости масс посредством аудиосигнала в реальном времени, мы можем "впрыскивать" естественную энергию (и случайность) в систему, что дает чудесные эффекты резонатора и вокодера. Мы могли бы также использовать Аудиосигнал в качестве сложного молоточка, чтобы непрерывно добавлять энергию в систему, как показано на рисунке 30. Кроме использования этой физической модели в качестве резонатора, инструмент, показанный на рисунке 30, реализует двойной путь сканирования благодаря использованию двух опкодов scans с различными траекториями (f7 и f77).


 
Рисунок 30: Совместные траектории сканирования и аудиосигнал для коррекции положений (скоростей) масс.


 
Наконец, в силу того, что Смарагдис отделил сканирующий волновую таблицу опкод от опкода, вычисляющего и обновляющего волновую таблицу, имеется возможность применять систему сканированного синтеза в других "классических" техниках синтеза и оживлять их динамическим поведением. Вообразите, если сможете, звучание сканированного FM-синтеза, сканированного гранулярного синтеза или сканированного субтрактивного синтеза. Так как многие из генераторов сигнала Csound'а используют волновые таблицы, практически все они могут быть сканированы – и, таким образом, "оживлены" новым, ярким и управляемым способом!


 
Рисунок 31: Сканированный FM-резонатор.


 
Исследование этих новых звуковых миров остается за Вами. Во всяком случае, единственным местом для экспериментов со сканированным синтезом и приобретения опыта является Csound.


  [дальше] Csound для чайников