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

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

 
Навигация

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


cSounds.com

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

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

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

Прослушать

[+] Toot11.mp3 810k


 
Toot11.orc

          instr 6

ifunc     =         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 11

asig1	pluck	ampdb(p4)/2, p5, p5, 0, 1

asig2	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  200

i11  1     .   .   300  | i11  1     1   90  300

i11  2     .   .   400  | i11  2     1   90  400

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


;инс нач длит амп част  | ; инс нач длит амп част

i11  0     1   90  200  | i11  0     1   90  200

i.   +     .   .   300  | i11  1     1   90  300

i.   .     .   .   500  | i11  2     1   90  500

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


;инс нач длит амп част  | ; инс нач длит амп част

i11  0     1   90  200  | i11  0     1   90  200

i11  +     2            | i11  1     2   90  200

i11                     | i11  3     2   90  200

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

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


;инс нач длит амп част  | ; инс нач длит амп част

i11  0     1   90  200  | i11  0     1   90  200

i.   +     .   <   <    | i11  1     1   85  300

i.   .     .   <   400  | i11  2     1   80  400

i.   .     .   <   <    | i11  3     1   75  300

i.   .     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  200

i.   +     .   <   <    | i.   +     .   <   <

i.   .     .   <   400  | i.   .     .   <   400

i.   .     .   <   <    | i.   .     .   <   <

i.   .     2   70  200  | i.   .     4   70  200

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


t 0 60 4 400 8 60 ; Временное масштабирование посредством команды изменения темпа



;инс нач длит амп част

i11  0     1   70  200

i.   +     .   <   500

i.   .     .   90  800

i.   .     .   <   500

i.   .     .   70  200

i.   .     .   90  1000

i.   .     .   <   600

i.   .     .   70  200

i.   .     8   90  100

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

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


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


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

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


;инс нач длит амп част

i11 0 2 90 100



f 0 4   ; Команда f0

s       ; Команда разграничения частей



i11 0 1 90 800

i.  + . .  400

i.  . . .  100



f 0 5

s



i11 0 4 90 50



e

Сортировка

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


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


;инс нач длит амп част

i11  0     1   70  100            ; Сортировка партитуры

i.   +     .   <   <

i.   .     .   <   <

i.   .     .   90  800

i.   .     .   <   <

i.   .     .   <   <

i.   .     .   70  100

i.   .     .   90  1000

i.   .     .   <   <

i.   .     .   <   <

i.   .     .   <   <

i.   .     .   70  <

i.   .     8   90  50



f1 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     1

i6   2    2   86  9.02 .03 .1  6    5       .4     2

i6   4    2   86  9.04 .03 .1  6    5       .4     3

i6   6    4   86  9.05 .05 .1  6    5       .4     4

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


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