Решил начать серию переводов мануалов по NI Kontakt. И если по большинству функций более или менее все понятно, то со скриптами разобраться не так-то просто... Почему со второй версии? Потому что это база, в которую добавлялись обновления последующих версий.
Сразу оговорюсь - я не профессиональный переводчик или что-то в этом роде, поэтому оговорки в тексте возможны. Но все же для многих это будет лучше, чем ничего. Я и сам искал эти мануалы в переводе, но не нашел...
Прошу обратить внимание - дзен режет табуляцию, поэтому скрипты будут выглядеть немножко неприятно.
Не забудьте подписаться - чем больше подписчиков, тем больше переводов))
1
Авторское право © 2006 Native Instruments Software Synthesis GmbH. Все права защищены.
Руководство написано: Ники Мариник, Йозеф Наттерер, Вольфганг Шнайдер Последнее
обновление: 26 апреля 2006 г.
Пожалуйста, обрати внимание:
При просмотре вручную с помощью Acrobat Reader символ подчеркивания ("_") может быть не виден.
Рекомендуется просмотреть это руководство при большем увеличении и/или распечатать его, так как символ подчеркивания является очень важным символом в языке программирования.
Кроме того, мы включили копию этого руководства в виде текстового файла, поскольку при копировании и вставке частей этого текста (например, примеров кода) вы можете потерять разрывы строк, что приведет к неправильному коду. Пожалуйста, используйте необработанный текстовый файл для копирования и вставки примеров сценария.
2
Оглавление
Введение.........................................................................................................................................5 Начало работы — обработчик сценариев Kontakt ................................................6 Работа с KSP и скриптами .................................................................................................10 Учебник по базовому скриптингу ...................................................................................12
Генерация MIDI-нот: простой аккомпаниатор .................................................12
Встроенные переменные: построение простого октавера........................14
Переменные управления пользовательским интерфейсом и обратный вызов инициализации: создание простого гармонизатора............................15
Отладка и настройка: доработка скрипта ..........................................................18 Основы .........................................................................................................................................25
Общие правила, касающиеся синтаксиса ..........................................................25
Обратные звонки (Callbacks) ....................................................................................26
Переменные.........................................................................................................................26
Порядок вызова скрипта ..............................................................................................31 Сценарии, основанные на темпе и времени ..........................................................32
Функция ожидания() (The wait() function)..........................................................32
Полифонические переменные ................................................................................33 Управляющие заявления ..................................................................................................34
если…иначе…конец (if…else…end) ……………………............................................. 34
Выбрать() select()................................................................................................................34
пока( ) while() .....................................................................................................................35 Операторы .................................................................................................................................36
Булевы операторы.............................................................................................................36
Арифметические операторы ....................................................................................36
Битовые операторы ......................................................................................................37
Функции массива ............................................................................................................37
Генератор случайных чисел .......................................................................................37 Управление группой ..............................................................................................................38
События и идентификаторы заметок ....................................................................40
Изменение событий ......................................................................................................41
Группировка событий ...................................................................................................43
Назначение параметров события ...........................................................................44
3
Элементы управления пользовательского интерфейса........................................45
Кнопки......................................................................................................................................45
Ручки........................................................................................................................................ 45
Меню........................................................................................................................................ 46
Текстовые метки.................................................................................................................. 47
Изменение значения........................................................................................................ 47
Стол........................................................................................................................................... 48
Позиционирование элементов пользовательского интерфейса............... 48
Скрытие элементов GUI.................................................................................................. 49
Обратные вызовы пользовательского интерфейса.......................................... 49
Именование элементов GUI......................................................................................... 49
Представление о производительности................................................................... 50 Использование миди-контроллеров.............................................................................. 51
Обратный вызов контроллера.................................................................................... 51
Переменные контроллера и массивы..................................................................... 51
Работа с сообщениями RPN и NRPN........................................................................ 53 Расширенные понятия............................................................................................................ 55
Препроцессор...................................................................................................................... 55
Параметр Engine................................................................................................................. 57
Загрузка IR-сэмплов.......................................................................................................... 69
Указание, когда считываются постоянные переменные................................. 70 Ссылка............................................................................................................................................ 72
1. Типы обратного вызова.............................................................................................. 72
2. Объявление переменных и элементов польз-тельского интерфейса. 72
3. Функции............................................................................................................................. 74
4. Функции групп и массивов...................................................................................... 77
5. Встроенные переменные......................................................................................... 78
6. Функции среза............................................................................................................... 81
7. Препроцессор............................................................................................................... 82
8. Параметры Engine....................................................................................................... 83
4
Введение
Добро пожаловать в KSP — обработчик сценариев Kontakt.
Kontakt Script Processor — уникальная функция Kontakt 2. Вы можете использовать его как инструмент для создания эффектов или композиции, создавать собственные инструменты с интеллектуальной обработкой с помощью алгоритмов, создавать секвенсоры, экзотические настройки и многое другое. Но самое приятное то, что вы можете самостоятельно программировать модули сценариев, делиться ими с другими или модифицировать и персонализировать существующие сценарии. В этом руководстве описывается использование скриптового процессора и программирование скриптов на языке Kontakt Script.
Язык программирования? Но я музыкант, а не компьютерщик!
Не бойтесь таких терминов, как «язык программирования» или «сценарий»; это руководство даст вам пошаговый подход даже (или специально) для новичков в компьютерном программировании. На самом деле вам не нужно ничего знать о языках программирования, чтобы пользоваться KSP; даже если вы не хотите программировать самостоятельно, вы получите представление о структуре KSP и сможете модифицировать определенные сценарии в соответствии со своими потребностями.
Как серьезный музыкант, вы окажетесь в ситуации, когда вам нужно решить проблему очень специфическим образом, будь вы исполнителем, композитором или продюсером. «Проблема» — это все,
в чем ваше воображение и творчество ограничены рамками конкретной музыкальной программы. С помощью KSP вы можете расширить и без того многочисленные возможности Kontakt2 и адаптировать свои собственные модули.
Но я компьютерщик — нужно ли мне читать все руководство?
Если у вас есть опыт работы с языками программирования или в среде программирования, такой как Reaktor, вы, вероятно, захотите пройти все руководство как можно быстрее и начать писать сценарии. Это нормально, но помните, что некоторые команды уникальны для KSP; возможно, вы захотите быстро просмотреть Справочник, а затем прочитать главы, которые кажутся вам незнакомыми.
Итак, я готов начать – что еще мне нужно, кроме этого руководства?
Конечно, на вашем компьютере должен быть установлен Kontakt2 вместе с соответствующей конфигурацией Audio/Midi. На самом деле вам больше ничего не нужно, но вам может быть удобно использовать внешний текстовый редактор для ввода ваших сценариев. Это, конечно, также можно сделать в Kontakt (и гораздо быстрее для небольших скриптов), но для более крупных скриптов мы рекомендуем использовать текстовый редактор, например, BBEdit в OS X или Ultraedit в Windows.
5
Начало работы - обработчик сценариев Kontakt
Для начала мы должны прояснить пару вещей, чтобы вы точно знали, с чем имеете дело.
Так что же такое Kontakt Script Processor?
Обработчик сценариев Kontakt является частью архитектуры Kontakt, т.е. он составляет один элемент в потоке сигналов. Как вы помните из руководства Kontakt, от момента нажатия клавиши на клавиатуре до фактического прослушивания звука звуковой сигнал проходит через различные этапы (это несколько упрощенно):
Воспроизвести ноту→Источник (сэмпл запущен)→Группа FX→Усилитель→Инструмент FX→Выход
Play a note → Source (sample is triggered) → Group FX → Amplifier → Instrument FX → Output
KSP находится между входящей миди-информацией и источником:
Воспроизвести ноту→ KSP →Источник (сэмпл запущен)→Группа FX→Усилитель→Инструмент FX→Выход
Play a note → KSP → Source (sample is triggered) → Group FX → Amplifier → Instrument FX → Output
Однако KSP — это не простой MIDI-процессор, который принимает MIDI-данные, обрабатывает их и снова выдает; если бы это было так, вы могли бы использовать любую утилиту обработки MIDI и подключить ее между вашей клавиатурой и Kontakt. KSP, с другой стороны, может извлекать специфичные для Kontakt параметры, например, названия групп в инструменте. Он также может передавать специфические для Kontakt параметры в исходный модуль, например, настройку сработавшей зоны.
Обратите внимание: KSP работает на инструментальном уровне инструмента Kontakt, точно так же, как эффекты посыла и разрыва инструмента.
Не волнуйтесь, если думаете, что вы уже заблудились - вы довольно скоро поймете принцип.
Сo как насчет языка сценариев Kontakt?
Не так быстро… для того, чтобы KSP мог что-то сделать, должен быть подключен модуль (точно так же, если вы хотите иметь эффект delay для вашего аудио, вы должны подключить эффект delay в цепочке эффектов). Назовем такой модуль как script, а скрипт — это программа, написанная на Kontakt Script Language.
Давайте проиллюстрируем это в Контакте:
• Откройте Kontakt, загрузите инструмент и щелкните значок гаечного ключа, чтобы перейти в режим редактирования.
• Нажмите на кнопку Script Editor или вкладка в верхней области, чтобы открыть панель модуля скрипта
• Нажмите на иконку Script. Появится всплывающее меню
• Нажмите на Harmonization/Harmonize
• Модуль появится на панели модуля сценария:
6
Теперь нажмите на букву кнопку Edit в левом нижнем углу модуля:
Магия, да?
То, что вы видите, является фактическим кодом модуля. Если вы продолжите читать это руководство в ближайшее время, вы сможете прочитать и получить доступ к коду, изменить его, чтобы сделать его подходящим для вашего собственного гениального музыкального стиля, скопировать его части для использования в ваших собственных сценариях и так далее.
7
Давайте двигаться дальше:
• Нажмите кнопку Edit, чтобы закрыть область редактирования
• Нажмите на иконку Script и выберите - Empty - из всплывающего меню. Это удалит
скрипт с панели модуля.
• Выделите следующий текст и скопируйте его в буфер обмена:
on init
declare ui_label $test (1,1)
set_text ($test, "My first script!!!")
move_control ($test, 3,1)
end on
• В Контакте нажмите кнопку Edit для доступа к области редактирования скрипта. Вы увидите мигающий курсор, ожидающий вашего шедевра.
• Вставьте текст из буфера обмена в область редактирования скрипта. Обратите внимание, как светодиод рядом с кнопкой «Apply» становится оранжевым, указывая на то, что вы что-то сделали со сценарием.
• Нажмите «Apply». У вас должно получиться следующее:
Поздравляем! Вы сделали первый шаг к тому, чтобы стать фанатом программирования!
Но наше произведение искусства еще не закончено; давайте будем тщательными и доведем это до конца:
• Рядом с надписью Title for this script ведите красивый, описательный и заголовок, например Мой первый скрипт и нажмите «Return».
• Нажмите на Edit чтобы закрыть область редактирования и выберите save preset… Script
В всплывающем меню. Стандартное Save диалогового окна.
• Введите имя файла (не забудьте сохранить расширение .nkp) и сохраните его.
• Предположим, мы хотим закончить нашу сессию на сегодня, поэтому закройте инструмент и выйдите из Kontakt (не нужно ничего сохранять).
• Предположим, мы передумали, поэтому откройте Kontakt, загрузите инструмент и выведите панель модуля сценария на передний план (вы должны знать, как это работает).
• В сплывающем меню Script, выберите свой сценарий и вуаля: вы вернули свой
шедевр.
К этому моменту вы, по сути, уже изучили все необходимые этапы создания сценариев (ну, все, кроме собственно написания сценариев самостоятельно, но с этим мы разберемся).
8
Давайте резюмируем:
• Kontakt Script Processor (KSP) — это элемент блок-схемы Kontakt.
• Для того, чтобы KSP могла что-либо сделать, module должен быть загружен.
• Мы называем такой модуль script.
• Сценарий — это небольшой пр грамма, который выполняется KSP.
• Эта программа в основном представляет собой не что иное, как чистый текст, написанный на языке Kontakt script Language.
Вот как выглядит обычный рабочий процесс:
• Напишите код либо во внешнем текстовом редакторе, либо в области редактирования сценария.
• Если вы написали код во внешнем текстовом редакторе, скопируйте его в область редактирования скрипта.
• Нажмите «Apply», чтобы инициализировать скрипт.
• Сохраните сценарий. Теперь он становится закодированным файлом с расширением .nkp (как и все пресеты Kontakt).
Скрипты хранятся на жестком диске в папке приложения Kontakt:
Kontakt 2/presets/scripts/
На этом наша начальная сессия заканчивается. Далее мы узнаем немного больше об общем пользовательском интерфейсе KSP, прежде чем, наконец, начнем писать наши собственные сценарии.
Если вам интересно… скрипт, который вы сохранили пару минут назад, не делает ничего замечательного. На самом деле он ничего не делает; но не волнуйтесь, это изменится.
9
На сегодня все, подписываемся и ждем следующую часть!