ГОСТ Р 53556.5—2013
базового генератора звуковой таблицы. Инструментальное имя может быть переменной в локальном или
глобальном контексте.
Ни у какихдвух инструментов или кодов операции в оркестре не должно быть одинакового имени.
8.6.3 Поля параметра
<identlist>->
Поля параметра инструмента, также названныеpfieWs. являются интерфейсом, через который инстан
цируют инструмент. В инструментальном коде у
pfiolds
есть семантика уровня
i-rato
локальных перемен
ных. Их значения должны быть установлены на инструментальном инстанцировании, перед созданием
локальных переменных, ссоответствующими значениями какдано встроке счета, событии счета, событии
MIDI, send
операторе или (подоператоре, соответствующих инструментальному инстанцированию.
8.6.4 Предварительно установленный тег
Тег
preset
определяет предварительно установленное число (ла) инструмента. Если изменения про
граммы
MIDI
прибывают в потоке
MIDI
или файле
MIDI,
управляющем оркестром, то программы обращают ся
к данным
preset
тега различных инструментов. Только у одного инструмента может быть предварительно
установленное одно и тоже число. Если многократные инструменты в оркестре определяют тот же самый
preset
тег, то синтаксически последниму присваивается предварительно установленное число. Если
preset
тег не связывается с определенным инструментом, то инструмент не имеет никакого предварительно уста
новленного числа и не может быть сослан с изменением программы. Если дается больше чем один тег. то
инструмент отвечает на все перечисленные предварительно установленные значения.
Предварительно установленные теги в
SAOL
соответствуют и предварительной установке и значению
банка программы в управлении
MIDI.
Программа на предварительной установке х. банк у в синтаксисе
MIDI
должна бытьобозначена какпредварительная установка (у - 1) *128 * ( х - 1) в
SAOL
(так как предваритель
ные установки и банки нумеруются, запускаясь с 1 в
MIDI).
8.6.5 Инструментальные объявления переменной
8.6.5.1 Синтаксическая форма
<nstr variable declarations>
declarations>
<instr variable declaratior»
<instr variable declaration>
<instr variable declaratior
i>
<instr variable declaratior
i>
<jnstr variable declaration>
<instrvariable declaration>
<instr variable docJaration>
<sharing tag>
<sharing tag>
<sharirtg tag>
<iablemap declaratior»
->
<instrvariable declarations> <instr variabledeclaratior» <instr variable
■><NULL>
•> [ <sharing tag> ] ivar <namelist> .
-> [ <sharing tag> ] ksig <namelist>;
->
asig <namelist>.
-> <table declaration>;
->
<sharing tag> table <identHst> ;
-> oparray <ident> [<array !ength> );
•> <tablemap declaratior»;
-> imports
-> exports
■>imports exports
•> tablemap <ident> ( <identlist>);
Инструментальными объявлениями переменной объявляют переменные, которые могутиспользоваться
в рамках инструмента. Любая переменная уровня, так же как звуковые таблицы
tablemaps
и заполнители
звуковой таблицы, могут быть объявлены в инструменте. Инструментальное объявление переменной явля
ется или объявлением звуковой таблицы или именем типа, которому возможно предшествует тег
совмест ного использования, сопровождаемый списком объявлений имени, или тегом совместного
использования, сопровождаемым маркерной
table,
сопровождаемой списком идентификаторов,
ссылающихся на глобаль ные или будущие звуковые таблицы, или объявление массива кода операции,
или определение табличной карты.
8 6.5.2 Объявление звуковой таблицы
Синтаксис и семантика 8.5.3.3 содержат для инструмента локальные звуковые таблицы со следую
щими исключениями и дополнениями:
Инструмент, локальная звуковая таблица, доступен только в пределах локального контекста един
ственного инструментального инстанцирования. Этодолжно быть создано и инициализировано сданными в
инструментальное время инстанцирования, сразу после того, как от параметров вызова будут присвоены
значения
pfield.
Это может бытьудалено и освобождено, когда инструментальное инстанцирование завер
шается.
20