Введение в сценарии в Kontakt, часть 3

In this 5 Part MPVHub Series, Toby Pitman explores the wonderful world of scripting in Native Instruments' Kontakt sampler. Part 3 goes deeper into variables. Read the next part on The Hub tomorrow!  

Последний раз, когда мы смотрели на некоторые заявления использовании, если ... еще и выберите (). Они помогли нам запустить сценарий, когда произошло что-то конкретное, как и записка, которую играет. Если вы помните, мы создали скрипт, который позволит нам триггером (или не-байпас) некоторые внутренние эффекты, нажав заметки о нашем MIDI-клавиатуры.

Частью это было сделано путем воздействия на байпас контроля эффектов с помощью некоторых встроенных переменных, а именно $ ENGINE_PAR_EFFECT_BYPASS, который был просто ссылку на этот параметр. В этой части собирался углубиться в переменные, как встроенные, так и определенные пользователем.

Что такое переменная?

Переменные, без сомнения, самая важная вещь в любом скриптовом языке, и было бы довольно трудно приступить к остальным эти семинары не объясняя их более подробно.

Переменная представляет собой устройство, который содержит часть информации. В любой момент вы можете обратиться к этой части информации, ссылаясь, что переменные имя. Думайте о нем, как ярлык.

Вы можете заполнить переменную статической (постоянной) части информации, такой как имя, номер или объект. Также Вы можете заполнить его чем-то динамичным, как текущее значение изменения параметра, который затем может быть передан на что-то другое.

Есть два основных типа переменной. Встроенные и определяемые пользователем. Давайте посмотрим!


Встроенные переменные

Язык Kontakt сценариев имеет множество встроенных переменных, которые написаны на языке. В основном это ссылки на доступные параметры двигателя Kontakt, а именно, что вы можете управлять с КСП. Heres хороший пример. Текстовая эффект имеет четыре параметра. Я могу получить доступ к этим с помощью встроенных переменных для них. К ним относятся:

  • $ENGINE_PAR_BITS
  • $ENGINE_PAR_FREQUENCY
  • $ENGINE_PAR_NOISELEVEL
  • $ENGINE_PAR_NOISECOLOR

Вы будете уведомление, что все они имеют определенный префикс $ ENGINE_PAR_. Эта приставка предназначена для использования только Kontakt, как и NI_ $, $ CONTROL_PAR_, $ EVENT_PAR_. Когда вы приходите к определять свои собственные переменные Вы будете хотеть, чтобы избежать использования этих.

Есть и другие типы, которые содержат информацию о действиях пользователя, как отмечает, что вы играете. Мы видели одну из этих прошлый раз, $ EVENT_NOTE.

Есть слишком много, чтобы покрыть здесь, но вы будете найти список всех построена в константы и переменные в конце Справочное руководство КСП. Сказать, что Ill дать вам пример.

Существует встроенный в переменной $ PLAYED_VOICES_INST. Это справедливо значения, сколько голосов (нот) текущего инструмента играет. Если я пишу это на обратный сведению ...

Code example 1


Я получаю это сообщение.

You are playing 6 notes


Вы будете уведомления Ive добавил один переменной как он считает от 0. Амперсанд (

Таким образом, вы будете использовать встроенные переменные, чтобы собрать информацию о том, что вступление в Kontakt


Переменные, определяемые пользователем

Пользовательские переменные определены вами и потому, что Kontakt не знаком с этими переменными (в отличие от встроенной в них) вы будете в первую очередь необходимо объявить их. Объявление переменной должно быть сделано между вашими на инициализации ... конец обратного вызова. Так, что все это значит?

Объявите это способ сказать: Эй Kontakt! Я собираюсь сделать новую переменную, так что слушайте!.

Так давайте попробуем! Я собираюсь сделать нормальную переменной (есть несколько других типов). Они начинаются с $. Любая переменная весьма чувствительны к регистру, так остерегайтесь!


объявлять $ MYVARIABLE


Так вот хорошо, но что же теперь? На данный момент $ MYVARIABLE пустая, как я нету дал ему значения. Так что давайте говорить ...


$ MYVARIABLE: = 2


: = Означает равный. Так что мой код будет выглядеть следующим образом.


объявлять $ MYVARIABLE

$ MYVARIABLE: = 2


Теперь Kontakt знает, что $ MYVARIABLE средств. Я мог бы также написать то же самое в один удар, как это ...


объявлять $ MYVARIABLE: = 2


Где это нормально, в некоторых случаях вы будете увидим, что мы, возможно, придется отделить декларации и присвоения значений на две части.


Так что теперь моя переменная имеет значение я мог напечатать сообщение на заметку события, используя.


Code example 2



Я получаю это сообщение.

$myVariable has a value of 2


Обратите внимание, как я могу использовать $ MYVARIABLE в кавычках и без него отображается как 2. Это потому, что ничего внутри котировок считается простой текст.

Таким образом, еще один пример использования динамического значения. На этот раз Ill заполнить мой $ MYVARIABLE со значением

$ MYVARIABLE: = $ 1 PLAYED_VOICES_INST


$ MYVARIABLE теперь будет удерживать информацию, собранную на $ PLAYED_VOICES_INST и добавить 1. Так что теперь я могу это сделать.

Code example 3


Обратите внимание Ive присваивается значение $ MYVARIABLE внутри обратного вызова к сведению. Это потому, что $ PLAYED_VOICES_INST может только собирать данные ноты, когда внутри функции обратного вызова, которые занимаются информационной записке.

И я получаю это ...

You are playing 1 notes!


Теперь, Ive только ударил одну ноту так "Вы играете 1 отмечается!" грамматически ерунда! Так что давайте использовать нашу переменную, чтобы сделать эту работу.

Использование если ... Else мы можем узнать, сколько нот играть и показывать соответствующий ответ Thats грамматически правильно.

Так что давайте говорить Если $ MYVARIABLE больше, чем один, выводится сообщение, что выражает множественное число от записку. Если его нет, то напечатать сообщение с помощью особой записке.

Мы ставим $ MYVARIABLE (который теперь содержит количество нот, сыгранных) в скобках, если заявление. Таким образом, он может весить до, если ее больше (


Наш код будет выглядеть следующим образом.

Example code 4


Когда я играю одну ноту я получаю ....

You are playing 1 note!


когда я играю более чем одной ноте я получаю ...

You are playing 4 notes!


Успеха!


Так что, надеюсь, вы можете увидеть, как эта переменная работает. Im повторное его три раза в этом скрипт, который, очевидно, экономит время и размер. Когда вы пишете более сложных сценариях вы можете ссылаться на это в десятки раз и только для присвоения значения сразу.

Переменные значения не должны быть статичными и нет ничего, чтобы остановить вас изменения переменных значение в любое время, на самом деле это довольно распространенное явление. Ill Приведем несколько примеров в последующих уроках.


Типы переменных

До сих пор Weve рассматриваются основные переменные. Есть несколько различных типов переменных в Kontakt каждый со своим собственным префиксом.


  • @myText = A String Variable. Holds “Text information”
  • const $myVariable = Sets a constant value e.g. 12
  • polyphonic $myVariable = Holds a value for each polyphonic event.
  • %myArray[] = Holds multiple values in a list
  • !myArray[] = Holds multiple text strings in a list


Ну рассмотрим несколько из них в ближайшие несколько учебников.

В следующий раз хорошо смотреть на некоторые методы интерфейса. Зная о переменных должно сделать процесс создания пользовательских элементов управления намного проще для понимания. До тех пор!

Я включил примеры кода в этой


Быстрые ссылки:

Введение в сценарии в Kontakt, часть 1

Введение в сценарии в Kontakt, часть 2

Введение в сценарии в Kontakt, часть 3

Введение в сценарии в Kontakt, часть 4

Введение в сценарии в Kontakt, часть 5


For the past 20 years Toby has worked as a professional guitarist, programmer and producer. Clients include Sir Paul McCartney, George Michael, Shirley Bassey, Yusuf Islam, Giles Martin as well as the London 2012 Olympic Ceremonies. He has also worked extensively in TV, Advertising and Film. As well as composing himself he has also ... Read More

Discussion

Want to join the discussion?

Create an account or login to get started!