Заключительная справочная часть.
Прошу обратить внимание - дзен режет табуляцию, поэтому скрипты будут выглядеть немножко неприятно.
Не забудьте подписаться - чем больше подписчиков, тем больше переводов))
Reference (Ссылка)
1. Callback types (Типы обратного вызова)
on init ... end on первоначальный обратный вызов, выполняемый при успешном анализе сценария
on note ... end on обратный вызов примечания, выполняемый всякий раз, когда принимается примечание к сообщению
on release ... end on освобождает обратный вызов, выполняемый всякий раз, когда получено сообщение об отключении записи
on ui_control (<variable-name>) ... end on Обратный вызов пользовательского интерфейса, выполняемый всякий раз, когда пользователь изменяет соответствующий элемент пользовательского интерфейса.
on controller ... end on обратный вызов контроллера, выполняемый всякий раз, когда получено сообщение cc или изменение высоты тона
on rpn ... end on Обратный вызов rpn, выполняемый всякий раз, когда получено сообщение rpn (зарегистрированный номер параметра)
on nrpn ... end on Обратный вызов nrpn, выполняемый всякий раз, когда получено сообщение nrpn (незарегистрированный номер параметра)
2. Declaration of variables and ui elements (Объявление переменных и элементов пользовательского интерфейса)
declare $<variable-name> объявить пользовательскую нормальную переменную для хранения одного целочисленного значения
declare const $<variable-name> объявить определяемую пользователем постоянную переменную для хранения одного целочисленного значения
declare polyphonic $<variable-name> объявить определяемую пользователем полифоническую переменную для хранения одного целочисленного значения
declare %<array-name>[<number-of-elements] объявить пользовательский массив для хранения отдельных целочисленных значений по определенным индексам
declare ui_button $<variable-name> создать кнопку пользовательского интерфейса
declare ui_knob $<variable-name> (<min>,<max>,<display-ratio>) создать ручку пользовательского интерфейса
72
declare ui_menu $<variable-name> создать меню пользовательского интерфейса
add_menu_item (<variable>,<text>,<number>) добавить текст в меню пользовательского интерфейса
declare ui_label $<variable-name> (<width>,<height>) создать текстовую метку пользовательского интерфейса
set_text (<variable>,<text>) при применении к метке: удалить текст, видимый в данный момент в указанной метке, и добавить новый текст при применении к ручкам, кнопкам и редактированию значений: установить имя элемента пользовательского интерфейса
add_text_line (<variable>,<text>) добавить новую текстовую строку в указанную метку, не стирая существующий текст
declare ui_value_edit $<variable>(<min>,<max>,<display-ratio>) создать поле номера пользовательского интерфейса
declare ui_table %<array>[columns](<width>,<height>, <range>) создать таблицу пользовательского интерфейса
move_control (<variable>,<x position>, <y position>) переместить элемент пользовательского интерфейса в определенное место. Перемещение элемента пользовательского интерфейса в положение 0,0 скрывает элемент
make_perfview активирует представление производительности для соответствующего скрипта
73
3. Functions (Функции)
abs(<expression>) вернуть абсолютное значение выражения
by_marks(<bit-mark>) обращаться ко всем событиям указанной группы событий
change_note(<ID-number>,<new-note-number>) изменить значение ноты определенного события ноты
change_pan(<ID-number>,<panorama>,<relative-bit>) изменить позицию панорамирования определенного события ноты
change_time_with_pitch(<ID-number>,<time>) возвращает выражение <время>, масштабированное по фактической сумме мелодии
change_tune(<ID-number>,<tune-amount>,<relative-bit>) изменить настройку сэмпла определенного нотного события в миллицентах
change_velo(<ID-number>,<new-velocity-number>) изменить значение динамической чувствительности определенного события ноты
change_vol(<ID-number>,<volume>,<relative-bit>) изменить громкость сэмпла определенного нотного события в миллидецибелах
dec(<expression>) уменьшить выражение на 1
exit немедленно останавливает обратный вызов
fade_in(<ID-number>,<fade-time>) выполнить постепенное появление определенного события ноты
fade_out(<ID-number>,<fade-time>,<stop-voice>) выполнить затухание определенного события ноты
ignore_controller игнорировать событие контроллера в обратном вызове контроллера
ignore_event(<ID-number>) игнорировать событие в обратном вызове
74
inc(<expression>) увеличить выражение на 1
lsb(<built-in variable>) возвращает часть LSB адреса или значения rpn/nrpn.
make_persistent(<variable-name>) сохранить значение переменной при сохранении патча
message(<number,variable or text>) отображать текст в статусной строке в Контакте
msb(<built-in variable>) возвращает часть MSB адреса или значения rpn/nrpn.
note_off(<ID-number>) отправить сообщение об отключении примечания к определенному событию примечания и вызвать обратный вызов выпуска
play_note(<note-number>,<velocity>,<sample-offset>,<duration>) воспроизвести заметку, т.е. создать примечание к сообщению, за которым следует сообщение об отключении примечания
random(<min>,<max>) генерировать случайное число
_read_persistent_var(<variable>) считывает значение указанной постоянной переменной в обратном вызове инициализации
_reset_rls_trig_counter(<note>) сбрасывает счетчик триггера релиза (используется системным сценарием триггера релиза)
set_controller(<controller-number>,<controller-value>) отправить значение MIDI CC определенного контроллера
set_event_mark(<ID-number>,<bit-mark>) назначить указанное событие указанной группе событий
set_event_par(<ID-number>,<index>,<value>) присвоить параметр событию
set_nrpn(<address>,<value>) отправить nrpn-сообщение
set_rpn(<address>,<value>) отправить рп сообщение
75
sh_left(<expression>,<amount>) сдвинуть биты в <выражении> на указанную величину влево
sh_right(<expression>,<amount>) сдвинуть биты в <выражении> на указанную величину вправо
wait(<wait-time>) приостанавливает обратный вызов на указанное время
_will_never_terminate(<event-id>) сообщает обработчику сценариев, что это событие никогда не будет завершено (используется системным сценарием триггера выпуска)
76
4. Group and array functions (Функции групп и массивов)
disallow_group(<group-index>) отключить указанную группу, т.е. сделать ее недоступной для воспроизведения
allow_group(<group-index>) включить указанную группу, т.е. сделать ее доступной для воспроизведения
find_group(<group-name>) возвращает индекс группы для указанной группы
group_name(<group-index>) возвращает имя группы для указанной группы
sort(<array-variable>,<direction>) отсортировать массив в порядке возрастания или убывания При direction = 0 эта функция сортирует по возрастанию, при значении, отличном от 0, сортирует по убыванию.
num_elements(<array-variable>) возвращает количество элементов указанного массива
search(<array-variable>,<value>) ищет в указанном массиве указанное значение и возвращает индекс. Если значение не найдено, функция возвращает -1.
array_equal(<array1-variable>,<array2-variable>) проверить значения двух массивов, true если значения равны
77
5. Built-in Variables (Встроенные переменные)
$ALL_GROUPS обращается ко всем группам в disallow_group() (запретить_группу), а также allow_group()(разрешить_группу)
$ALL_EVENTS обращается ко всем событиям в функциях, которые имеют дело с идентификационным номером
%CC[<controller-number >] текущее значение контроллера для указанного контроллера (CC# 128 = изменение высоты тона)
$CC_NUM номер контроллера контроллера, который инициировал обратный вызов
%CC_TOUCHED[<controller-number >] 1, если значение контроллера изменилось, 0 в противном случае
$DISTANCE_BAR_START возвращает время примечания к сообщению в мкс от начала текущего такта относительно текущего темпа
$DURATION_BAR возвращает продолжительность в мкс одного такта относительно текущего темпа
$DURATION_QUARTER длительность четвертной ноты относительно текущего темпа
$DURATION_EIGHTH длительность восьмой ноты относительно текущего темпа
$DURATION_SIXTEENTH длительность шестнадцатой ноты относительно текущего темпа
$DURATION_QUARTER_TRIPLET длительность триоли четвертной ноты относительно текущего темпа
$DURATION_EIGHTH_TRIPLET длительность триоли восьмой ноты относительно текущего темпа
$DURATION_SIXTEENTH_TRIPLET длительность триоли шестнадцатой ноты относительно текущего темпа
$ENGINE_UPTIME Возвращает период времени в миллисекундах (не микросекундах), прошедший с момента запуска скрипта.
78
$EVENT_ID уникальный идентификационный номер события, вызвавшего обратный вызов
$EVENT_NOTE отметить номер события, вызвавшего обратный вызов
%EVENT_PAR[] параметр события, который был установлен с помощью set_event_par
$EVENT_VELOCITY скорость ноты, которая вызвала обратный вызов
%GROUPS_AFFECTED массив с групповыми индексами тех групп, на которые влияют текущие события Note On или Note Off
%KEY_DOWN[<note-number >] массив, который содержит текущее состояние всех ключей. 1, если клавиша удерживается, 0 иначе
%KEY_DOWN_OCT[<octave-number >] 1, если удерживается нота независимо от октавы, 0 в противном случае
$MARK_< number > битовая метка группы событий
%NOTE_DURATION[<note-number >] длина ноты с начала ноты в мкс для каждой клавиши
$NOTE_HELD 1, если клавиша, которая вызвала обратный вызов, все еще удерживается, 0 в противном случае
$NUM_GROUPS общее количество групп в инструменте
$NUM_ZONES общее количество зон в инструменте
$PLAYED_VOICES_INST количество сыгранных голосов соответствующего инструмента
$PLAYED_VOICES_TOTAL количество сыгранных голосов все инструменты
$RPN_ADDRESS номер параметра принятого сообщения rpn/nrpn (0 – 16383). Может использоваться только в rpn/nrpn обратного вызова
79
$RPN_VALUE значение принятого сообщения rpn/nrpn (0 – 16383). Может использоваться только в обратном вызове rpn/nrpn.
$SIGNATURE_NUM номинатор текущего тактового размера
$SIGNATURE_DENOM знаменатель текущего тактового размера
$VCC_PITCH_BEND значение виртуального контроллера cc для изменения высоты тона
80
6. Slice functions (Функции среза)
_num_slices(<group-index>) возвращает количество слайсов в указанной группе
_slice_length(<group-index>,<slice-index>) вернуть длину указанного фрагмента в указанной группе относительно текущего темпа
_slice_start(<group-index>,<slice-index>) вернуть абсолютную начальную точку указанного фрагмента, независимо от текущего темпа
_slice_idx_loop_start(<group-index>,<loop-index>) вернуть порядковый номер среза в начале цикла
_slice_idx_loop_end(<group-index>,<loop-index>) вернуть порядковый номер среза в конце цикла
_slice_loop_count(<group-index>,<loop-index>) вернуть количество циклов указанного цикла
dont_use_machine_mode(<ID-number>) воспроизвести указанное событие в режиме сэмплера
81
7. Preprocessor (Препроцессор)
SET_CONDITION(<condition-symbol >) определить символ, который будет использоваться в качестве условия
RESET_CONDITION(<condition-symbol >) удалить определение
USE_CODE_IF(<condition-symbol >) . . .
END_USE_CODE интерпретировать код, когда определено < condition > (Условие)
USE_CODE_IF_NOT(<condition-symbol >) . . .
END_USE_CODE интерпретировать код, когда < condition > не определено
NO_SYS_SCRIPT_PEDAL условие; если определено с помощью SET_CONDITION(), системный скрипт, поддерживающий заметки при получении CC# 64, будет пропущен.
NO_SYS_SCRIPT_RLS_TRIG условие; если определено с помощью SET_CONDITION(), системный скрипт, который запускает образцы после отпускания клавиши, игнорируется
82
8. Engine Parameters (Параметры двигателя)
General Syntax (Общий синтаксис)
_set_engine_par(<parameter>,<value>,<group>,<slot>,<generic>) управлять любым автоматическим параметром Kontakt из KSP
_get_engine_par(<parameter>,<group>,<slot>,<generic>) возвращает значение любого автоматизируемого параметра Kontakt из KSP
General (Общие)
$ENGINE_PAR_VOLUME громкость инструмента
$ENGINE_PAR_PAN инструментальная панорама
$ENGINE_PAR_TUNE настройка инструментов
Source Module (Исходный модуль)
$ENGINE_PAR_Tune
$ENGINE_PAR_SMOOTH
$ENGINE_PAR_FORMANT
$ENGINE_PAR_SPEED
$ENGINE_PAR_GRAIN_LENGTH
$ENGINE_PAR_SLICE_ATTACK
$ENGINE_PAR_SLICE_RELEASE
$ENGINE_PAR_TRANSIENT_SIZE
Amp Module (Модуль усилителя)
$ENGINE_PAR_VOLUME
$ENGINE_PAR_PAN
83
Filter /EQ (Фильтр/эквалайзер)
$ENGINE_PAR_CUTOFF частота среза всех фильтров
$ENGINE_PAR_RESONANCE резонанс всех фильтров
$ENGINE_PAR_EFFECT_BYPASS кнопка обхода всех фильтров/эквалайзера
3x2 Versatile (Универсальный)
$ENGINE_PAR_FILTER_SHIFTB
$ENGINE_PAR_FILTER_SHIFTC
$ENGINE_PAR_FILTER_RESB
$ENGINE_PAR_FILTER_RESC
$ENGINE_PAR_FILTER_TYPEA
$ENGINE_PAR_FILTER_TYPEB
$ENGINE_PAR_FILTER_TYPEC
$ENGINE_PAR_FILTER_BYPA
$ENGINE_PC_BYFILGINE_PARB
$ENGINE_FILTER_BYPA $ENGINE_PAR_FILTER_BYPB
$ENGINE_PAR_FILTER_BYPB
EQ (эквалайзер)
$ENGINE_PAR_FREQ1
$ENGINE_PAR_BW1
$ENGINE_PAR_GAIN1
$ENGINE_PAR_FREQ2
$ENGINE_PAR_BW2
$ENGINE_PAR_GAIN2
$ENGINE_PAR_FREQ3
$ENGINE_PAR_BW3
$ENGINE_PAR_GAIN3
84
Insert Effects (Инсертные эффекты)
$ENGINE_PAR_EFFECT_BYPASS кнопка обхода всех инсерт-эффектов
$ENGINE_PAR_INSERT_EFFECT_OUTPUT_GAIN выходное усиление всех инсерт-эффектов
Compressor (Компрессор)
$ENGINE_PAR_THRESHOLD
$ENGINE_PAR_RATIO
$ENGINE_PAR_COMP_ATTACK
$ENGINE_PAR_COMP_DECAY
Limiter (Ограничитель)
$ENGINE_PAR_LIM_IN_GAIN
$ENGINE_PAR_LIM_RELEASE
Surround Panner (Объемное панорамирование)
$ENGINE_PAR_SP_OFFSET_DISTANCE
$ENGINE_PAR_SP_OFFSET_AZIMUTH
$ENGINE_PAR_SP_OFFSET_X
$ENGINE_PAR_SP_OFFSET_Y
$ENGINE_PAR_SP_LFE_VOLUME
$ENGINE_PAR_SP_SIZE
$ENGINE_PAR_SP_DIVERGENCE
Saturation (Насыщенность)
$ENGINE_PAR_SHAPE
Lo-Fi (Лоу-фай)
$ENGINE_PAR_BITS
$ENGINE_PAR_FREQUENCY
$ENGINE_PAR_NOISELEVEL
$ENGINE_PAR_NOISECOLOR
Stereo Modeller (Стерео моделлер)
$ENGINE_PAR_STEREO
$ENGINE_PAR_STEREO_PAN
Distortion (Искажение)
$ENGINE_PAR_DRIVE
$ENGINE_PAR_DAMPING
Send Levels (Уровни инсерт шины)
$ENGINE_PAR_SENDLEVEL_0
$ENGINE_PAR_SENDLEVEL_1
$ENGINE_PAR_SENDLEVEL_2
$ENGINE_PAR_SENDLEVEL_3
$ENGINE_PAR_SENDLEVEL_4
$ENGINE_PAR_SENDLEVEL_5
$ENGINE_PAR_SENDLEVEL_6
$ENGINE_PAR_SENDLEVEL_7
85
Send Effects (Эффекты посыла)
$ENGINE_PAR_SEND_EFFECT_BYPASS кнопка обхода всех эффектов посыла
$ENGINE_PAR_SEND_EFFECT_DRY_LEVEL количество смешивания сухого и обработанного сигналов посыл-эффектов при использовании в цепочке вставок
$ENGINE_PAR_SEND_EFFECT_OUTPUT_GAIN при использовании с эффектами посыла управляет:
• минимальное количество эффектов отправки при использовании в цепочке вставок
• возврат сигнала с посыла обработанного эффектами
Phaser (Фэйзер)
$ENGINE_PAR_PH_DEPTH
$ENGINE_PAR_PH_SPEED
$ENGINE_PAR_PH_PHASE
$ENGINE_PAR_PH_FEEDBACK
Flanger (Фленджер)
$ENGINE_PAR_FL_DEPTH
$ENGINE_PAR_FL_SPEED
$ENGINE_PAR_FL_PHASE
$ENGINE_PAR_FL_FEEDBACK
$ENGINE_PAR_FL_COLOR
Chorus (хор)
$ENGINE_PAR_CH_DEPTH
$ENGINE_PAR_CH_SPEED
$ENGINE_PAR_CH_PHASE
Reverb (Реверберация)
$ENGINE_PAR_RV_PREDELAY
$ENGINE_PAR_RV_SIZE
$ENGINE_PAR_RV_COLOUR
$ENGINE_PAR_RV_STEREO
$ENGINE_PAR_RV_DAMPING
Delay (Задерживать)
$ENGINE_PAR_DL_TIME
$ENGINE_PAR_DL_DAMPING
$ENGINE_PAR_DL_PAN
$ENGINE_PAR_DL_FEEDBACK
Convolution (свертка)
$ENGINE_PAR_IRC_PREDELAY
$ENGINE_PAR_IRC_LENGTH_RATIO_ER
$ENGINE_PAR_IRC_FREQ_LOWPASS_ER
$ENGINE_PAR_IRC_FREQ_HIGHPASS_ER
$ENGINE_PAR_IRC_LENGTH_RATIO_LR
$ENGINE_PAR_IRC_FREQ_LOWPASS_LR
$ENGINE_LR_IRC_FASSREQ_HIGH_HIGHPASS_ER
Gainer (Гейнер)
$ENGINE_PAR_GN_GAIN
86
Modulation (Модуляция)
$ENGINE_PAR_EXTMOD_INTENSITY ползунок интенсивности внешнего назначения модуляции (например, скорость, изменение высоты тона, после касание, миди CC)
$ENGINE_PAR_INTMOD_INTENSITY ползунок интенсивности внутреннего назначения модуляции (например, огибающая AHDSR, LFO)
$ENGINE_PAR_INTMOD_BYPASS кнопка обхода внутреннего назначения модуляции (например, огибающая AHDSR, LFO)
Envelopes (огибающие):
AHDSR
$ENGINE_PAR_ATK_CURVE
$ENGINE_PAR_ATTACK
$ENGINE_PAR_HOLD
$ENGINE_PAR_DECAY
$ENGINE_PAR_SUSTAIN
$ENGINE_PAR_RELEASE
DBD
$ENGINE_PAR_DECAY1
$ENGINE_PAR_BREAK
$ENGINE_PAR_DECAY2
LFO
Для всех LFO:
$ENGINE_PAR_INTMOD_FREQUENCY
$ENGINE_PAR_LFO_DELAY
Для прямоугольника:
$ENGINE_PAR_INTMOD_PULSEWIDTH
Для Мульти:
$ENGINE_PAR_LFO_SINE
$ENGINE_PAR_LFO_RECT
$ENGINE_PAR_LFO_TRI
$ENGINE_PAR_LFO_SAW
$ENGINE_PAR_LFO_RAND
87
Modules tatus retrieval (Получение статуса модуля)
$ENGINE_PAR_EFFECT_TYPE
используется для запроса типа эффекта вставки группы или инструмента, может быть любым из следующих:
$EFFECT_TYPE_FILTER
$EFFECT_TYPE_COMPRESSOR
$EFFECT_TYPE_LIMITER
$EFFECT_TYPE_INVERTER
$EFFECT_TYPE_SURROUND_PANNER
$EFFECT_TYPE_SHAPER (Saturation)
$EFFECT_TYPE_LOFI
$EFFECT_TYPE_STEREO (Stereo Modeller)
$EFFECT_TYPE_DISTORTION
$EFFECT_TYPE_SEND_LEVELS
$EFFECT_TYPE_PHASER
$EFFECT_TYPE_CHORUS
$EFFECT_TYPE_FLANGER
$EFFECT_TYPE_REVERB
$EFFECT_TYPE_DELAY
$EFFECT_TYPE_IRC (Convolution)
$EFFECT_TYPE_GAINER
$EFFECT_TYPE_NONE (empty slot) (пустой слот)
вы можете использовать этот массив строк для запроса имен:
declare !effect_name[21]
!effect_name[0] := "None"
!effect_name[2] := "Compressor"
!effect_name[3] := "Limiter"
!effect_name[4] := "Inverter"
!effect_name[5] := "Surround Panner"
!effect_name[6] := "Saturation"
!effect_name[7] := "Filter"
!effect_name[8] := "Lo-Fi"
!effect_name[9] := "Stereo Modeller"
!effect_name[10] := "Distortion"
!effect_name[11] := "Send Levels"
!effect_name[14] := "Phaser"
!effect_name[15] := "Flanger"
!effect_name[16] := "Chorus"
!effect_name[17] := "Reverb"
!effect_name[18] := "Delay"
!effect_name[19] := "Convolution"
!effect_name[20] := "Gainer"
$ENGINE_PAR_SEND_EFFECT_TYPE
используется для запроса типа эффекта отправки, может быть любым из следующих:
$EFFECT_TYPE_PASER
$EFFECT_TYPE_CHORUS
$EFFECT_TYPE_FLANGER
$EFFECT_TYPE_REVERB
$EFFECT_TYPE_DELAY
$EFFECT_TYPE_IRC (Convolution)
$EFFECT_TYPE_GAINER
88
$EFFECT_TYPE_NONE (empty slot) (пустой слот)
$ENGINE_PAR_EFFECT_SUBTYPE
используется для запроса типа фильтра/эквалайзера, может быть любым из следующих:
$FILTER_TYPE_LP1POLE
$FILTER_TYPE_HP1POLE
$FILTER_TYPE_BP2POLE
$FILTER_TYPE_LP2POLE
$FILTER_TYPE_HP2POLE
$FILTER_TYPE_LP4POLE
$FILTER_TYPE_HP4POLE
$FILTER_TYPE_BP4POLE
$FILTER_TYPE_BR4POLE
$FILTER_TYPE_LP6POLE
$FILTER_TYPE_PASER
$FILTER_TYPE_VOWELA
$FILTER_TYPE_VOWELB
$FILTER_TYPE_PRO52
$FILTER_TYPE_LADDER
$FILTER_TYPE_VERSATILE
$FILTER_TYPE_EQ1BAND
$FILTER_TYPE_EQ2BAND
$FILTER_TYPE_EQ3BAND
вы можете использовать этот массив строк для запроса имен:
declare !filter_name[25]
!filter_name[2] := "1-pole LP"
!filter_name[3] := "1-pole HP"
!filter_name[4] := "2-pole BP"
!filter_name[6] := "2-pole LP"
!filter_name[7] := "2-pole HP"
!filter_name[8] := "4-pole LP"
!filter_name[9] := "4-pole HP"
!filter_name[10] := "4-pole BP"
!filter_name[11] := "4-pole BR"
!filter_name[12] := "6-pole LP"
!filter_name[13] := "Phaser"
!filter_name[14] := "Vowel A"
!filter_name[15] := "Vowel B"
!filter_name[16] := "Pro 53"
!filter_name[17] := "4-stage ladder"
!filter_name[19] := "3x2"
!filter_name[22] := "1-band EQ"
!filter_name[23] := "2-band EQ"
!filter_name[24] := "3-band EQ"
89
На сегодня все, подписываемся и ждем следующего мануала!