Обновления в версии 2.2
Прошу обратить внимание - дзен режет табуляцию, поэтому скрипты будут выглядеть немножко неприятно.
Не забудьте подписаться - чем больше подписчиков, тем больше переводов))
Что нового в Контакте 2.2 – KSP
Авторское право © 2006 Native Instruments Software Synthesis GmbH. Все права защищены.
Последнее изменение: 13 октября 2006 г.
Введение
Этот краткий документ охватывает все изменения, связанные с KSP и включенными модулями сценариев. Документы "Kontakt Script Language Manual.pdf" и "Kontakt 2 Script Library.pdf" были обновлены, чтобы отразить все изменения. Для большинства приложений достаточно прочитать этот документ; там, где это указано, вам следует обратиться к Руководству по языку сценариев Kontakt для получения полного описания.
Содержание
Изменения KSP в Kontakt2.2..................................................................................…………… 2
Новый тип обратного вызова: на ui_update................................................................... 2
Новые встроенные переменные для группового сценария...................................2
Создание настраиваемых параметров запуска группы.............................................4
Получение триггерного состояния группы..................................................................….4
Значения по умолчанию для ручек.....................................................................................5
Изменения KSP в Kontakt 2.1.1...............................................................................................5
Назначение меток единиц ручкам..................................................................................... 5
Назначение текстовых строк регуляторам.......................................................................5
Получение значений ручки..............................................................................................……5
1
Изменения KSP в Контакте 2.2
Новый тип обратного вызова: на ui_update
Появился новый тип обратного вызова: на ui_update. Этот обратный вызов выполняется всякий раз, когда вы что-то меняете в графическом интерфейсе Kontakt, например, выбираете другую группу, меняете ручки и т. д. Если, например, вы хотите точно отразить одну конкретную ручку Kontakt в сценарии, вы можете написать:
on init
declare ui_knob $Volume (0,1000000,1)
set_knob_unit ($Volume,$KNOB_UNIT_DB)
set_knob_defval ($Volume,630859)
$Volume := _get_engine_par ($ENGINE_PAR_VOLUME,0,-1,-1)
set_knob_label ($Volume,_get_engine_par_disp($ENGINE_PAR_VOLUME,0,-1,-1))
end on
on ui_update
$Volume := _get_engine_par ($ENGINE_PAR_VOLUME,0,-1,-1)
set_knob_label($Volume,_get_engine_par_disp($ENGINE_PAR_VOLUME,0,-1,-1))
end on
on ui_control ($Volume)
_set_engine_par($ENGINE_PAR_VOLUME,$Volume,0,-1,-1)set_knob_label
($Volume,_get_engine_par_disp($ENGINE_PAR_VOLUME,0,-1,-1))
end on
Этот сценарий создаст ручку сценария, которая отражает ручку громкости в модуле усилителя первой группы.
Предостережение: этот обратный вызов следует использовать с осторожностью, так как движения ручки создают множество событий, которые, в свою очередь, всегда вызывают этот обратный вызов.
Новые встроенные переменные для групповых сценариев
Есть две новые встроенные переменные для облегчения группового написания сценариев:
$REF_GROUP_IDX
порядковый номер группы просматриваемой в данный момент группы
%GROUPS_SELECTED
начальный обратный вызов, выполняемый при успешном анализе скрипта
$REF_GROUP_IDX содержит индекс видимой в данный момент группы (т. е. группы, текст имени которой отображается инвертированным в редакторе групп). Например, на следующем снимке экрана в настоящее время видна третья группа (рок-орган):
2
Очевидно, что одновременно может быть видна только одна группа.
Теперь вставьте следующий скрипт в инструмент с более чем одной группой:
on init
declare ui_label $group_name_label (1,1)
set_text ($group_name_label,group_name($REF_GROUP_IDX))
end on
on ui_update
set_text ($group_name_label,group_name($REF_GROUP_IDX))
end on
и нажмите на различные имена групп в редакторе групп, чтобы увидеть эффект.
%GROUPS_SELECTED представляет собой массив, в котором каждый индекс массива указывает на группу с тем же индексом. Другими словами, число_элементов (% GROUPS_SELECTED) равно $NUM_GROUPS.
Если группа выбрана для редактирования (т.е. у нее есть галочка слева от имени группы в редакторе групп), соответствующий индекс массива содержит 1, иначе 0. На следующем снимке экрана первая и третья группы выбраны для редактирования, т.е. если создать групповой инсерт-эффект во втором слоте, эффект будет создан в группе "Digital Rhodes" и в группе "Rock Organ":
Вставьте следующий скрипт в инструмент с более чем одной группой:
on init
declare ui_label $label (3,4)
set_text ($label,"Selected Groups for editing:")
{ Выбранные группы для редактирования}
declare $count
while ($count < $NUM_GROUPS)
if (%GROUPS_SELECTED[$count] = 1)
add_text_line ($label,group_name($count))
end if
inc ($count)
end while
end on
on ui_update
set_text($label,"Selected Groups for editing:")
{ Выбранные группы для редактирования}
$count := 0
while ($count < $NUM_GROUPS)
if (%GROUPS_SELECTED[$count] = 1)
add_text_line ($label,group_name($count))
end if
inc ($count)
end while
end on
и установите различные флажки в редакторе группы, чтобы увидеть эффект.
3
Создание пользовательских параметров запуска группы
По определению условия
NO_SYS_SCRIPT_GROUP_START условие; если определено с SET_CONDITION(), системный скрипт, который обрабатывает все параметры запуска группы, будет пропущен с SET_CONDITION() вы можете отключить все параметры запуска группы.
Используя следующие переменные параметров движка, вы можете получить статус параметров запуска группы для каждой клавиши:
Параметры запуска группы — список встроенных переменных
$ENGINE_PAR_START_CRITERIA_MODE
$ENGINE_PAR_START_CRITERIA_KEY_MIN
$ENGINE_PAR_START_CRITERIA_KEY_MAX
$ENGINE_PAR_START_CRITERIA_CONTROLLER
$ENGINE_PAR_START_CRITERIA_CC_MIN
$ENGINE_PAR_START_CRITERIA_CC_MAX
$ENGINE_PAR_START_CRITERIA_CYCLE_CLASS
$ENGINE_PAR_START_CRITERIA_ZONE_IDX
$ENGINE_PAR_START_CRITERIA_SLICE_IDX
$ENGINE_PAR_START_CRITERIA_SEQ_ONLY
$ENGINE_PAR_START_CRITERIA_NEXT_CRIT
$ENGINE_PAR_START_CRITERIA_MODE может вернуть одно из следующих значений:
$START_CRITERIA_NONE
$START_CRITERIA_ON_KEY
$START_CRITERIA_ON_CONTROLLER
$START_CRITERIA_CYCLE_ROUND_ROBIN
$START_CRITERIA_CYCLE_RANDOM
$START_CRITERIA_SLICE_TRIGGER
$ENGINE_PAR_START_CRITERIA_NEXT_CRIT может вернуть одно из следующих значений:
$START_CRITERIA_AND_NEXT
$START_CRITERIA_AND_NOT_NEXT
$START_CRITERIA_OR_NEXT
С помощью этих команд можно создавать собственные параметры запуска группы, предоставляя пользователю возможность использовать команды, находящиеся на вкладке параметров запуска группы в редакторе групп.
Получение триггерного состояния группы
Существует новая переменная параметра движка, которую можно использовать для получения состояния кнопки
Release Trigger в исходном модуле:
$ENGINE_PAR_RELEASE_TRIGGER переменная параметра двигателя; 1, если кнопка Release Trigger в исходном модуле активирована, 0 в противном случае
4
Значения по умолчанию для ручек
С помощью команды
set_knob_defval(<knob-variable>,<value>)
назначить значение по умолчанию для ручки
вы можете установить значение по умолчанию для ручки, на которое ручка сбрасывается при нажатии клавиши Cmd+клик для MAC или Ctrl+клик для Win.
Изменения KSP в Контакте 2.1.1
Назначение меток единиц ручкам
С помощью команды
set_knob_unit(<knob-variable>,<unit>)
set_knob_unit(<ручка-переменная>,<единица измерения>)
присвоить метку единицы ручке
Вы можете установить единицу измерения рядом с числовым дисплеем ручек. Чтобы выбрать единицу измерения, используйте любую из следующих встроенных переменных:
Встроенные переменные для меток регуляторов
$KNOB_UNIT_NONE
$KNOB_UNIT_DB
$KNOB_UNIT_HZ
$KNOB_UNIT_PERCENT
$KNOB_UNIT_MS
$KNOB_UNIT_OCT
Назначение текстовых строк ручкам
С помощью команды:
set_knob_label(<knob-variable>,<text>)
set_knob_label(<ручка-переменная>,<текст>)
присвоить текстовую строку ручке
вы можете назначить текстовую строку переменной ручки. Например, вы можете создать ручку, которая управляет какой-либо скоростью, и настроить ручку для отображения таких значений, как 1/4, 1/8, 1/16 и т. д.
Получение значений ручки
Если вы управляете ручками с помощью _set_engine_par(), теперь вы можете получить отображаемое значение регулятора с помощью команды:
_get_engine_par_disp(<parameter>,<group>,<slot>,<generic>) _get_engine_par_disp(<параметр>,<группа>,<слот>,<общий>)
получить отображаемые значения ручки из указанной ручки
5
На сегодня все, подписываемся и ждем следующего мануала!