|
Партитура может быть разбита на упорядоченные по времени части с помощью команды 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
|