ГОСТ Р 53556.5—2013
Уровень
instr
оператора является уровнем самого быстрого выражения в списке выражения или уров
нем выражения защиты, или уровенем кода операции.
Instr
оператор должен выполняться следующим образом:
В каждой передаче через оператор, происходящей на равныхуровнях присвоения, оценивается каж
дое из выражений всписке выражения. Новое инструментальное событие регистрируется впланировщике.
Время нового инструментального события является суммой текущего времени оркестра и величины перво го
выражения в списке выражения масштабируемого текущим глобальным темпом. Продолжительность
нового инструментального события является значением второго выражения в списке выражения. Значения
р
полей для нового инструментального события являются значениями остающихся выражений в списке
выражения. У значений первых и вторых выражений есть модули ударов счета, и они масштабируются
согласно фактическому темпу оркестра.
Исключение происходит, когда задержка (первое выражение в списке выражения) меньше, чем про
должительность периода управлением оркестра. В этом случае, инструментальное событие не создается,
но новое инструментальное инстанцированиебыло сразусоздано. Продолжительность нового инстанциро
вания является значением второго выражения в списке выражения, и значения инструментальныхр-полей в
новом инстанцировании устанавливаются в значения остающихся выражений.
В этом случае передача
i-rate.
посредством нового инстанцирования инструмента должна выполнять
ся непосредственно после его создания, прехеде. чем выполняются операторы от блока программы, содер
жащего
instr
оператор. Любые изменения в глобальные переменные
i-rate.
сделанные в новом экземпляре
во время передачи
i-rate,
не признаются вэтом инструменте
("caller")
(переменные
i-rate.
импортированные
из глобального контекста, устанавливаются только во время передачи инициализации каждого экземпляра и
никогда не изменяются позже).
У динамически создаваемого инструмента есть доступ к
MIDIctrl
(8.6.8.Э),
MIDItouch
(8.6.8.10),
MIDIbend
(8.6.8.11).
channel
(8.6.8.12) и
preset
(8.6.8.13) стандартному имени его предшественника. Дина
мически создаваемый инструмент не планируется для завершения, когда предшественник будет завершен
под управлением
MIDI.
8.6.6.8
Output
<statement>•> output ( <expr list>);
Output
оператор создает аудиовыход из инструмента. Этот вывод не становится превращенным
непосредственно в звук, а скорее буферизуется на одной или более шинах, основанных по инструкциям
данных в операторах
route
или на специальной шине
output_bus
по умолчанию. Если текущее инструмен
тальное инстанцирование является senc/оператором. ссылающимся на специальную шину
output_bus.
то
вывод текущего инстанцирования суммирует его так. чтобы
output
мог быть превращен непосредственно в
звук.
Список выражения должен содержать по крайней мере одно выражение.
Уровнем
output
оператора является
a-rate.
Все операторы оркестра, которые ссылаются на шину
outbus,
или маршрутизируются по умолчанию
кспециальной шине
output_bus.
будут иметь совместимоечисло параметров выражения, представляюще го
каналы вывода. "Совместимый" означает что. если
output
для определенной шины больше, чем один
параметр выражения, то у всех других
output
на эту шину должно быть то же самое число параметров
выражения или только один параметр выражения. Число каналов специальной шины
output_bus
должно
быть тем же самым, как параметр у глобальной переменной
outchannels
и
output,
используемое инструмен
тами. и будет совместимым с этим числом каналов.
Output
оператор выполняется следующим образом:
В каждом
k-rate
проходятчерезвыходной буферс числом каналов, определенных правилами в 7.3.3.5.2,
чтобы обнулить значения. Каждый уровень проходит черезоператор, и параметры выражениядолжны быть
оценены. Значения параметра выражения должны быть помещены в выходной буфер. Если значение у
output
оператора будет больше, чем одно выражение параметра, то значение каждого параметра должно
бытьдобавлено к текущему значению выходного буфера в соответствующем канале. Если у
output
опера
тора будет только одно выражение параметра, то значение этого выражения должно быть добавлено к
текущему значению выходного буфера в каждом канале.
Параметры выражения
output
оператора могутбыть оценены массивом, в котором отображение, опи
санное в предыдущем абзаце, не от выражений, чтобы буферизовать каналы, а от каналов значения масси ва.
чтобы буферизовать каналы.
Каждый уровень проходит через инструментальное инстанцирование во время, определенное оркес
тром. Значения в выходном буфере должны бытьдобавлены каналом к текущему значению шины или шин.
25