Найти тему

Язык скриптов Kontakt 2.2 Перевод

Изображение с официального сайта
Изображение с официального сайта

Обновления в версии 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":

-3

Вставьте следующий скрипт в инструмент с более чем одной группой:

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

На сегодня все, подписываемся и ждем следующего мануала!