Редактор сценариев Scripter Editor позволяет вам использовать простые сокращения для добавления стандартных контроллеров, таких, как ползунки и меню для автоматизированного управления, либо для управления в режиме реального времени вашими плагинами. Единственным обязательным свойством для определения нового параметра является имя базового ползунка по умолчанию. Кроме того, вы можете добавить следующие свойства, чтобы изменить тип и поведение элементов управления.
Дополнительные свойства
- type: Введите одну из следующих строк в виде значения:
- «lin»: Создает линейный фейдер.
- «log»: Создает логарифмический фейдер.
- «menu»: Создает меню.
- «ValueStrings»: Типу меню требуется дополнительное свойство, являющееся строчным массивом для показа в меню.
Определение элементов управления MIDI-плагина
Введите следующее в окне редактора сценариев Script Editor для создания этих контроллерных типов:
- Slider 1: var PluginParameters = [{name:»Parameter x», defaultValue:0.5}];
Пример кода приводит к созданию ползунка с названием «Parameter x», имеющим диапазон по умолчанию от 0 до 1. Он установлен в средней точке 0.5.
- Slider 2: var PluginParameters = [{name:»Octaves», defaultValue:3, minValue:0, maxValue:5, numberOfSteps:5, unit:»octaves», type:»lin»}];
Данный пример кода приводит к созданию ползунка линейного типа, с пятью возможными положениями (шагами), в диапазоне от 0 до 5.
- Menu: var PluginParameters = [{name:»Range», type:»menu», valueStrings:[«Low», «Mid», «High»]}];
Данный пример кода создает меню под названием «Range» («Диапазон») с опциями «Low» («Низкие»), «Mid» («Средние») и «High» («Высокие»).
Получение значений плагинных параметров
Вызовите функцию GetParameter() с именем параметра, чтобы вернуть значение (числовой объект) с текущим значением параметра. GetParameter() обычно используется внутри функции HandleMIDI или функции ProcessMIDI.
Данный пример кода преобразует события модуляции в нотные события и предоставляет ползунок для определения нотных длительностей.
- Введите в окне редактора сценариев Script Editor следующие параметры. Текст, следующий за двойным слэшем //, описывает аргумент функции.
var PluginParameters = [{name:»Note Length»}]; // создать ползунок (диапазон по умолчанию: 0.0 – 1.0)
function HandleMIDI(e) {
if (e instanceof ControlChange && e.number == 1) { // если это событие является событием колеса модуляции
var note = new NoteOn; // создать объект NoteOn
note.pitch = e.value; // использовать контроллерное значение в качестве высоты ноты
note.velocity = 100; // использовать значение скорости нажатия, равное 100
note.send(); // послать событие нажатия ноты note on
var off = new NoteOff(note); // создать объект NoteOff, который унаследует значения высоты тона и скорости нажатия от объекта NoteOn
var delayInBeats = GetParameter(«Note Length») + 0.1; // получить значения параметра созданного вами ползунка (добавить 0.1 для гарантии того, что события note on и note off не произойдут одновременно)
off.sendAfterBeats(delayInBeats); // послать событие note off после длительности в долях, установленной с помощью ползунка
}
}