cSounds.com - тъюториалы – Тъюториал по дизайну инструментов
Тъюториал 6: Подпрограммы GEN

Первый символ в партитурном предложении является кодом операции (по сути командой), обозначающим запрашиваемое действие; остальные данные являются параметрическими полями (p-полями), используемыми данной операцией. До сих пор мы имели дело с двумя разными операциями в наших партитурах: f и i. Команда i, или команда исполнения ноты, задействует инструмент с номером в p1 во время указанное в p2 и деактивирует этот инструмент после p3 секунд; все остальные p-поля передаются инструменту.


С другой стороны, команды f задействуют подпрограммы ″вычерчивания″ функций, называемые GEN-подпрограммами. В настоящее время Csound имеет в наличии двадцать три GEN-подпрограммы, заполняющие волновые таблицы различными способами. Например, GEN01 переносит данные из звукового файла; GEN07 позволяет конструировать функции из отрезков прямых линий; а GEN10, которую мы будем пока использовать в наших партитурах, генерирует составную волновую форму, являющуюся взвешенной суммой простых синусоид. Мы назвали функциональную таблицу "f1", создали ее во время 0, определили, что она будет содержать 512 точек и указали GEN10 заполнить эту волновую таблицу простой синусоидой с амплитудой 1. GEN10 на самом деле может быть использована для генерации приближений множества других волновых форм, как показано ниже:


 
Навигация

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


cSounds.com

[+] На главную

Руководство по Csound

[+] Команда f
[+] GEN-подпрограммы
[+] GEN01
[+] GEN07
[+] GEN10

Прослушать

[+] Toot06.mp3 95k

 
f1 0 2048 10 1                                         ; Синус

f2 0 2048 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111  ; Пилообразная

f3 0 2048 10 1 0   0.3 0    0.2 0     0.14 0     .111  ; Прямоугольная

f4 0 2048 10 1 1   1   1    0.7 0.5   0.3  0.1         ; Импульс

В коде операции f первые четыре p-поля интерпретируются следующим образом:


p1 – номер таблицы – В оркестре Вы ссылаетесь на таблицу по ее номеру.
p2 – время создания – Время, в которое таблица будет сгенерирована.
p3 – размер таблицы – Количество точек в таблице – должно быть степенью числа 2, или на 1 большим этой степени.
p4 – подпрограмма генерации значений – Какую из 17 GEN-подпрограмм Вы собираетесь использовать.
p5 – назначение определяется конкретной GEN-подпрограммой.


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


 
Toot06.orc

          instr 6

ifunc     =         p11                                ; выбираем основную волновую форму

irel      =         0.01                               ; устанавливаем время филировки вибрато

idel1     =         p3 * p10                           ; вычисляем начальную задержку (% от длительности)

isus      =         p3 - (idel1 + irel)                ; вычисляем оставшуюся длительность



iamp      =         ampdb(p4)

iscale    =         iamp * .333                        ; p4=амплитуда

inote     =         cpspch(p5)                         ; p5=частота



k3        linseg    0, idel1, p9, isus, p9, irel, 0    ; p6=время атаки

k2        oscil     k3, p8, 1                          ; p7=время филировки

k1        linen     iscale, p6, p3, p7                 ; p8=скорость вибрато



a3        oscil     k1, inote*.999+k2, ifunc           ; p9=глубина вибрато

a2        oscil     k1, inote*1.001+k2, ifunc          ; p10=задержка вибрато (0-1)

a1        oscil     k1, inote+k2, ifunc



          out       a1+a2+a3

          endin

Toot06.sco

f1   0    2048 10   1                                                                ; Синус

f2   0    2048 10   1    0.5  0.3  0.25 0.2  0.167     0.14      0.125     .111      ; Пилообразная

f3   0    2048 10   1    0    0.3  0    0.2  0         0.14      0         .111      ; Прямоугольная

f4   0    2048 10   1    1    1    1    0.7  0.5       0.3       0.1                 ; Импульс



; инстр нач длит амп част   атака  фил  скорвибр     глубвибр     задержвибр  волнформ

i6   0     2   86        8.00      .03       .7        6    9         .8        1

i6   3     2   86        8.02      .03       .7        6    9         .8        2

i6   6     2   86        8.04      .03       .7        6    9         .8        3

i6   9     3   86        8.05      .03       .7        6    9         .8      

Рисунок 6: GEN-подпрограммы

[+] Какие-либо вопросы, комментарии или предложения? Пожалуйста, дайте нам знать:
support@csounds.com