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