ГОСТ Р 53556.5—2013
Если генератор включен, то исходное значение равно 0. Иначе, исходное значение равно
I
(
г/1) иа.
где / — текущая левая точка,
г—
текущая правая точка,
t —
внутреннее время и
d —
текущая продолжи
тельность.
9.7.4
авжроп
aopcode аехроп (ivarх
1.
ivarduri. ivarх2(ivardur2. ivarxZ,...])
Код операции
аехроп
выполняет сегментированную функцию, сделанную из экспоненциальных кри
вых со значениями, изменяющимися в
а
уровне. Эта функция занимает
dur\
секунды, чтобы пойти от х1 до
х2,
dur2
секунды, чтобы пойти от х2 до хЗ и такдалее.
Если появляются какое-либо из следующих условий, то это ошибка вычисления:
- число параметров четное;
- значений
dur
отрицательно;
- все значения х не имеют одинаковый знак;
- все х равны 0.
Исходное значение должно быть вычислено следующим образом:
При первом обращении к аехрол внутреннее время должно быть установлено в 0. текущая левая
точка в х1. текущая правая точка в х2 и текущая продолжительность в
durt
. При последующих обращениях
внутреннее время должно быть постепенно увеличено на
MSR.
где
SR
— частота дискретизации оркестра,
пока внутреннее время больше, чем текущая продолжительность и естьдругой параметр продолжительно
сти. внутреннее время должно быть постепенно уменьшенодо текущей продолжительности, текущая про
должительностьдолжна быть установлена в следующий параметр продолжительности, текущая левая точ ка
в текущую правую точку и текущая правая точка в следующую контрольную точку. Если нет никакого
дополнительного параметра продолжительности, то включается генератор.
Если генератор включен, то исходное значение равно 0. Иначе, исходное значение равно
I (г/1)
где
I
— текущая левая точка,
г—
текущая правая точка,
t
— внутреннее время и
d—
текущая продолжи
тельность.
9.7.5
kphasor
kopcode kphasor (ksig cps)
Код операции
kphasor
производит неоднократное цикличное передвижение фазового значения от
0 до 1. время
cps
в секундах.
Исходное значение должно быть вычислено следующим образом:
При первом обращении к
kphasor
внутренняя фаза должна бытьустановлена в 0. При последующих
обращениях внутренняя фаза должна быть постепенно увеличена на
cps/KR,
где
KR
является уровнем
управления оркестра. Если внутренняя фаза будет не в интервале [0.1], то внутренняя фаза должна быть
установлена в дробную часть ее значения (р =
frac
(р)). Исходное значение является внутренней фазой.
9.7.6
aphasor
aopcode aphasor(asig cum./c)
Код операции
aphasor
производит неоднократное цикличное передвижение фазового значения от
0 до 1, время
cps
в секундах.
Исходное значение должно быть вычислено следующим образом:
При первом обращении к
aphasor
внутренняя фаза должна быть установлена в 0. На последующих
вызовах внутренняя фаза должна быть постепенно увеличена на
cps/SR.
где
SR
— частота дискретизации
оркестра. Если внутренняя фаза будет не в интервале [0.1], то внутренняя фаза должна быть установлена в
дробную часть ее значения
(р
=
frac (р)).
Исходное значение является внутренней фазой.
9.7.7
pluck
aopcode pluck (asig cps/c. ivar buflen. table init. ksig atten, ksig smoothrate)
Код операции
pluck
использует простую форму
Karplus-Strong
алгоритма, чтобы генерировать звуки
строки повторной выборкой и сглаживанием буфера.
Если
buflen
не строго положителен, то это ошибка вычисления.
Исходное значение вычисляется следующим образом.
При первом обращении к
pluck
кода операции, буфер длины
buflen
должен быть создан и заполнен
значениями от таблицы
init,
следующим образом. Если х— длина таблицы
init
будет меньше, чем
buflen.
то
значения буфера должны быть установлены в первые
buflen
значения таблицы
init.
Если х будет больше
или равным
buflen.
то первые
buflen
значения буфера должны быть установлены в значения в таблице
init
, а
остаток от буфера заполнен, как описано в этом абзаце для целой таблицы. Чтобы заполнить буфер
многократно используются полнее и частичные циклы.
48