ГОСТ Р 53556.5—2013
Если
basofreq
но будет известен, то он должен быть установлен в основную частоту таблицы / по
умолчанию. Если у таблицы / есть основная частота 0 и
basofroq
не известен, то это ошибка вычисления.
Если
basofreq
не строго положителен, то это ошибка времени вычисления. Параметр basofreqдолжен быть
определен в Гц.
Если
loopstart
и
loopend
не известны, то онидолжны быть установлены в стартовую точку и конечную
точку цикла таблицы / соответственно. Если
loopend
не известен и конечная точка цикла / равна 0. то
loopend
должен быть установлендо конца таблицы в(/-1). где /— длина таблицы вдемонстрационных точках.
Если
loopstart
не меньше, чем
loopend
или отрицателен.то это ошибка вычисления.
Исходное значение вычисляется согласно следующей процедуре.
Если / длина таблицы, то
т
—
loopstartJI,
и
п
—
loopend/l.
При первом обращении к уровню
loscil
.
внутренняя фаза должна быть установлена в 0. При последующих обращениях внутренняя фаза должна
быть постепенно увеличена на
freq’TSR/(basefreq‘SR).
где
TSR
является частотой дискретизации таблицы и
SR
является частотойдискретизации оркестра. Если приращение заставило внутреннюю фазу выйти за
интервал
[т, п]
или становиться меньше, чем 0. фаза должна быть установлена в
т+р-кп,
где
р
является
внутренней фазой, и
к
является нижним значением (
р/п
). Однако, если фазовый указатель еще не передал
значение
loopstart,
и если приращение заставило фазовый указатель становиться меньше, чем нуль, фазо
вый указатель берет нулевое значение.
Исходное значение должно быть значением номера х в звуковой таблице, где
х
= р * /, р — текущая
внутренняя фаза и /— длина таблицы /. Если хне будет целым числом, то значение должно быть интерпо
лировано от соседних табличных значений.
9.6.14
doscil
aopcode doscil (table t)
Код операции
doscil
воспроизводит выборку без подстройки частоты или цикла.
Исходное значение вычисляется согласно следующей процедуре.
При первом обращении к уровню
doscil
внутренняя фаза должна быть установлена в 0. На последу
ющих обращениях внутренняя фаза должна быть постепенно увеличена на
TSR/SR,
где
TSR
— частота
дискретизации таблицы / и
SR
является частотой дискретизации оркестра. Если после приращения внут
ренняя фаза больше, чем 1. то делается код операции.
Если код операции будет сделан, то исходное значение должно быть 0. Иначе исходное значение
должно быть значением демонстрационного номера х в звуковой таблице, где х = р*/, где р — текущая
внутренняя фаза, и /— длина таблицы /. Если х не будет целым числом, то значение должно быть интерпо
лировано от соседних табличных значений.
9.6.15
koscil
kopcode koscil (table t. ksig frq pvar loops))
Код операции
koscil
описывает несколько раз циклы вокруг звуковой таблицы / на уровне
freq
циклов
в секунду, возвращая значения на уровне управления. Когда код операции будет оценен,
loops
должны
быть округлены к самому близкому целому числу. Если
loops
не известен, то его значение должно быть
установлено в -1.
Если
loops
не строго положительны и также не -1, то это ошибка вычисления.
Исходное значение вычисляется согласно следующей процедуре.
При первом обращении к уровню
koscil
внутренняя фаза должна быть установлена в0, и внутреннее
число набора циклов в
loops.
При последующих обращениях внутренняя фаза должна быть постепенно
увеличена на
freq/KP,
где
КР—
уровень управления оркестра. Если после приращения фаза не будет в
интервале [0.1] и внутреннее количество цикла положительно, то фазадолжна быть установлена в дробную
часть ее значения
(р:
=р - пол (р)). и количество цикла постепенно уменьшено.
Если внутреннее количество цикла будет 0. то исходное значение должно быть 0. Иначе исходное
значение должно быть значением номера х в звуковой таблице, где х = р *
I,
р — текущее значение
внутренней фазы и / — длина таблицы /. Если х не будет целым числом, то его значение должно быть
интерполировано из соседних табличных значений.
9.7 Сигнальные генераторы
9.7.1
kllne
kopcode Mine (ivarx
1.
ivardurt. ivarx2 [ivardur2. ivarx
3
....))
Код операции
Mine
производит процедуру сегментированный строкой или функцию "отката" со значе
ниями. изменяющимися на
к
уровне. Эта функция занимает dur1 секунды, чтобы пойти от х1 до х2.
dur2
секунды, чтобы пойти от х2 до хЗ. и такдалее.
46