Create Scripter controls

This section describes use of the Script Editor to create standard interface controllers such as sliders and menus for your Scripter plug-ins. The only mandatory property you need to define for a new parameter is “name”. This defaults to a basic slider. In addition, you can use further properties to change the type and behavior of controls.

Optional properties

Load the corresponding Tutorial setting to view the script in the Script Editor. This will help you to understand the syntax structure and layout of code and comments. See Use the Script Editor.

Tutorial script 11: Slider Creation

Type the following in the Script Editor window to create a slider named “Parameter x” with a default range of 0 to 1. It is set to the mid-point value of 0.5.

var PluginParameters = [{name:"Parameter x", defaultValue:0.5}];

Tutorial script 12: Slider Ranges

Type the following in the Script Editor window to create a linear slider type, with five possible positions (steps), and a range from 0 to 5.

var PluginParameters = [{name:"Octaves", defaultValue:3, minValue:0, maxValue:5, numberOfSteps:5, unit:"octaves", type:"lin"}];

Tutorial script 13: Menu Creation

Type the following in the Script Editor window to create a menu named “Range” with the options “Low”, “Mid”, and “High”.

var PluginParameters = [{name:"Range", type:"menu", valueStrings:["Low", "Mid", "High"]}];

Dynamically hide or show MIDI plug-in controls

For complex scripts, it may be helpful to hide or show parameter controls dynamically, such as for a menu item that lets you choose a group of controls to display. Type the following in the Script Editor window to create these controller types.

Retrieve plug-in parameter values

Call GetParameter() with the parameter name to return a value (number object) with the current value of the parameter. GetParameter() is typically used inside the HandleMIDI function or ProcessMIDI function.

This code example converts modulation events into note events and provides a slider to determine note lengths.