Основы Csound'а: Простой осциллятор и огибающая

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


 
Навигация

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


cSounds.com

[+] На главную
[+] Тъюториалы

 
Рисунок 2: Блок-схема
простого Csound-инструмента


 
Фактический файл оркестра для этого простого инструмента показан на рисунке 3.


 
Рисунок 3: файл Csound-оркестра для простого инструмента, показанного на Рисунке 2


 
Общий синтаксис предложения в Csound-оркестре следующий:


выход опкод аргументы

Каждый опкод имеет уникальный набор параметров. Например, опкод linen имеет следующий синтаксис:


k/ar linen k/xamp, irise, idur, idec

Это значит, что опкод linen может генерировать свой выход как с управляющей частотой, так и с аудио-частотой (k/ar). Здесь также указано, что амплитуда может динамически изменяться другим опкодом с управляющей или аудио-частотой или может задаваться постоянным значением (k/xamp). Наконец, здесь показано, что время нарастания и угасания, а также длительность должны задаваться постоянными значениями во время "инициализации" инструмента (во время начала исполнения ноты) и не могут изменяться, пока нота исполняется (irise, idur, idec).


У опкода oscil аргументы следующие:


k/ar oscil k/xamp, k/xcps, ifn[, iphs]

Как и в случае с linen, выход опкода oscil может генерироваться и с управляющей и с аудио-частотой (k/ar). Амплитуда может быть как постоянной, так и меняющейся с управляющей и аудио-частотой (k/xamp). Частота может быть как постоянной, так и меняющейся с управляющей и аудио-частотой (k/xcps). И, наконец, волновая таблица, используемая осциллятором, задается во время инициализации и не может переназначаться в течение исполнения ноты (ifn). Видим также, что можно опционально задать фазовый сдвиг осциллятора, т. е. указать, что начинать считывать таблицу нужно от точки 45, 90, 180 и т. д., градусов (iphs).


Как видите, опкоды в Csound'е получают свои входные параметры справа, а выходные результаты выдают слева. Кроме того, выход может вычисляться как с имеющей более низкое разрешение (по времени) управляющей частотой (что обозначается переменной k-типа - kr), так и с частотой дискретизации или "аудио-частотой" (обозначается переменной a-типа - ar).


Более того, Csound предоставляет возможность назначать и переназначать значения параметров инструмента, передавая их через allows you to set and reset the parameters of an instrument from p-поля партитурного файла. Мы использовали эту возможность, передав аргументу частоты опкода oscil значение партитурного поля p5 в приведенном выше инструменте. Теперь, пятая колонка списка нот может быть использована, чтобы заново задавать частоту инструмента для каждой новой ноты. Точно также, аргументу ifn назначено значение p6, т. о. шестую колонку списка нот можно использовать, чтобы менять также волновую форму осциллятора для каждой ноты. Рисунок 4 демонстрирует партитуру для нашего простого инструмента "осциллятор+огибающая". Заметьте, что p7 и p8 использованы для задания времени атаки и филировки опкода linen.


 
Рисунок 4: Файл партитуры для Csound'а с пользовательскими "p-полями" для амплитуды, частоты, волновой формы, времени атаки и филировки.


 
Очень важно понимать и иметь в виду, что значения входных аргументов Csound'а можно изменять с управляющей частотой. Это значит, что выходной сигнал одного генератора может использоваться для динамического изменения k-параметра другого генератора или модификатора сигнала в течение исполнения ноты. В случае с нашим первым инструментом мы могли бы решить изменять амплитуду или частоту осциллятора с k-частотой, но мы выбрали лишь изменение амплитуды таким способом. Мы применяем амплитудную огибающую к осциллятору, "вставляя" k-частотный выход опкода linen в амплитудный аргумент k/xamp опкода oscil.


  [дальше] Основы Csound'а: Простой гранулярный синтез