cSounds.com - тъюториалы – Тъюториал по дизайну инструментов
Тъюториал 11: Распространение параметров, темп и сортировка

Сейчас мы используем щипковый струнный инструмент для исследования возможностей предварительной обработки партитуры Csound'а. Так как мы фокусируем внимание на партитуре, инструмент представлен без объяснений.

 
Навигация

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


cSounds.com

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

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

[+] Распространение параметров
[+] Сортировка
[+] Темп

Прослушать

[+] Toot11.mp3 810k


 
Toot11.orc

          instr 6ifunc     =         p11                                ; выбираем основную волновую формуirel      =         0.01                               ; устанавливаем время филировки вибратоidel1     =         p3 - (p10 * p3)                    ; вычисляем начальную задержку (% от длительности)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		instr 11asig1	pluck	ampdb(p4)/2, p5, p5, 0, 1asig2	pluck	ampdb(p4)/2, p5*1.003, p5*1.003, 0, 1		out		asig1 + asig2		endin


 
Партитура может быть разбита на упорядоченные по времени части с помощью команды s. До непосредственно исполнения каждая часть обрабатывается тремя подпрограммами: Распространение параметров, Темп, и Сортировка. Партитура toot11.sco состоит из нескольких частей, содержащих каждый из приведенных ниже примеров в обеих формах.


Распространение параметров

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


;инс нач длит амп част  | ; инс нач длит амп част i11  0     1   90  200  | i11  0     1   90  200i11  1     .   .   300  | i11  1     1   90  300i11  2     .   .   400  | i11  2     1   90  400

Специальная форма функции распространения параметров применяется только к полю p2. Знак "+" в p2 будет заменен суммой значений p2+p3 параметрических полей предыдущего предложения i-типа. Знак "+" также может быть распространен дальше с помощью точки:


;инс нач длит амп част  | ; инс нач длит амп частi11  0     1   90  200  | i11  0     1   90  200i.   +     .   .   300  | i11  1     1   90  300i.   .     .   .   500  | i11  2     1   90  500

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


;инс нач длит амп част  | ; инс нач длит амп частi11  0     1   90  200  | i11  0     1   90  200i11  +     2            | i11  1     2   90  200i11                     | i11  3     2   90  200

Интерполяция

Вариантом функции распространения параметров является функция интерполяции, которая заменяет символ ( < ) последовательностью линейно интерполированных значений в диапазоне между двумя заданными в параметрических полях значениями. Интерполяция действует только в пределах последовательных вызовов одного и того же инструмента и не может быть применена к первым трем параметрическим полям.


;инс нач длит амп част  | ; инс нач длит амп частi11  0     1   90  200  | i11  0     1   90  200i.   +     .   <   <    | i11  1     1   85  300i.   .     .   <   400  | i11  2     1   80  400i.   .     .   <   <    | i11  3     1   75  300i.   .     4   70  200  | i11  4     4   70  200

Темп

Единицей измерения времени в партитуре Csound'а является доля – по умолчания доля равна одному удару в секунду. Это может быть изменено командой установки темпа, которая позволяет произвольно масштабировать партитуру по времени. Доли конвертируются в эквивалентные значения в секундах во время стадии предварительной обработки каждой части партитуры. При отсутствии команды изменения темпа в любой из частей автоматически подставляется следующая команда:


t 0 60

Это означает, что на доле с номером 0 темп метронома Csound'а устанавливается в 60 (1 удар в секунду). Чтобы услышать Часть вдвое быстрее, мы имеем две возможности: 1) сократить все значение в p2 и p3 вдвое и скорректировать время начала нот, или 2) вставить команду t 0 120 внутри Части.


Команда изменения темпа может быть также использована для постепенного изменения темпа, что дает возможность применять ritardando и accelerando. Изменения будут линейными в терминах длительности долей. С использованием следующей команды исполнение партитуры начнется в темпе 120, замедлиться до темпа 80 к доле 4, а затем ускорится до 220 к доле 7:


t 0 120 4 80 7 220

Следующие последовательности команд дадут одинаковые звуковые файлы:


t 0 120 ; Вдвое быстрее посредством команды изменения темпа;инс нач длит амп част  | ; инс нач длит амп частi11  0     .5  90  200  | i11  0     1   90  200i.   +     .   <   <    | i.   +     .   <   <i.   .     .   <   400  | i.   .     .   <   400i.   .     .   <   <    | i.   .     .   <   <i.   .     2   70  200  | i.   .     4   70  200

Следующий отрывок включает accelerando и ritardando. Следует, однако, заметить, что функция интерполяции применяется после масштабирования по времени, т. е. интерполяция пропорциональна прошедшему хронологическому времени. В то время как это превосходно работает с интерполяцией амплитуды, мы не получим в результате гармонических соотношений частот во время темповых изменений. Таким образом, необходимые здесь частоты указаны явно.


t 0 60 4 400 8 60 ; Временное масштабирование посредством команды изменения темпа;инс нач длит амп частi11  0     1   70  200i.   +     .   <   500i.   .     .   90  800i.   .     .   <   500i.   .     .   70  200i.   .     .   90  1000i.   .     .   <   600i.   .     .   70  200i.   .     8   90  100

Части партитуры

Необычайно полезны три дополнительных функциональных возможности партитуры Csound'а. Команда s была использована выше для деления партитуры на Части, предварительная обработка которых происходит индивидуально. Так как каждая команда s устанавливает новое относительное время в 0 и все действия внутри части связаны с этим временем, удобно работать над партитурой по одной части за раз, объединяя позже эти части в целое.


Предположим, мы хотим объединить шесть предыдущих примеров (назовем их toot11a - toot11f) в единую партитуру. Один из способов – начать с файла toot11a.sco, вычислить его общую длительность и добавить полученное значение к времени начала каждой ноты в toot11b.sco, затем добавить общую длительность двух файлов к временам начала нот в toot11c.sco, и т. д. С помощью другого способа мы могли бы вставить команду s между каждой парой смежных частей и соединить их в одну партитуру. Файл toot11.sco, содержащий последовательность всех вышеприведенных примеров, сделан именно так.


Добавление дополнительного времени

Команда f0, создающая "время активности" (партитуры) без ассоциированного с ним действия, полезна для продления части. К первым двум частям ниже добавлены две секунды тишины.


;инс нач длит амп частi11 0 2 90 100f 0 4   ; Команда f0s       ; Команда разграничения частейi11 0 1 90 800i.  + . .  400i.  . . .  100f 0 5si11 0 4 90 50e

Сортировка

Во время предварительной обработки части партитуры все команды времени действия сортируются в хронологическом порядке по значению в p2. Это означает, что ноты могут быть введены в любом порядке, что Вы можете соединять файлы или временно работать над каждым инструментом в отдельной части, но когда Вы запускаете Csound для обработки файла, команды будут автоматически отсортированы.


Приведенный ниже файл содержит отрывки из этой главы и instr6 из этого тъюториала и объединяет их следующим образом:


;инс нач длит амп частi11  0     1   70  100            ; Сортировка партитурыi.   +     .   <   <i.   .     .   <   <i.   .     .   90  800i.   .     .   <   <i.   .     .   <   <i.   .     .   70  100i.   .     .   90  1000i.   .     .   <   <i.   .     .   <   <i.   .     .   <   <i.   .     .   70  <i.   .     8   90  50f1 0 2048 10 1                                  ; Синусf2 0 2048 10 1 .5 .3 .25 .2 .167 .14 .125 .111  ; Пилаf3 0 2048 10 1 0 .3 0 .2 0 .14 0 .111           ; Прямоугольникf4 0 2048 10 1 1 1 1 .7 .5 .3 .1                ; Импульс;инс нач длит амп част атк фил вибр глвибр задвибр волнформi6   0    2   86  9.00 .03 .1  6    5       .4     1i6   2    2   86  9.02 .03 .1  6    5       .4     2i6   4    2   86  9.04 .03 .1  6    5       .4     3i6   6    4   86  9.05 .05 .1  6    5       .4     4

 
Рисунок 11: Распространение параметров, темп и сортировка


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