KUIML
Blue Cat's User Interface Programming Language
Runtime Model

Audio Plug-ins expose runtime objects and data structures that let you create a skin to interact with the audio plug-in. These model objects created for you by the plug-in are described below. Their number depends on the actual plug-in, and you should check the documentation of the plug-in for more information.

You should use the identifier (id) of these objects to reference them from the KUIML code.

Model Exposed by All Plug-Ins

All plug-ins expose the following information:

Identifier Type Access Description Comment V.

dsp.sample_rate

PARAM

Read-only

Sample rate of audio data.

As set by the host application.

1.9.1

dsp.connected_inputs_count

PARAM

Read-only

Number of connected audio inputs.

Used in the case of audio plug-ins that support multiple i/o configurations.

1.9.1

dsp.connected_outputs_count

PARAM

Read-only

Number of connected audio outputs.

Used in the case of audio plug-ins that support multiple i/o configurations.

1.9.1

current_preset.name

STRING

Read-only

The name of the current preset.


1.9.1

current_preset.modified

PARAM

Read-only

The modification status of the current preset.

Parameter set to true if the last loaded preset has been modified.

1.9.1

current_preset.path

STRING

The realtive file path for the current preset (relative to either factory or user presets root directory).

Changing the path does not trigger preset reload - use the RevertCurrentPreset action to reload it.

2.7

current_preset.absolute_path

STRING

The absolute file path for the current preset.

Changing the path does not trigger preset reload - use the RevertCurrentPreset action to reload it.

2.7.2

current_preset.absolute_path

OpenMenu

ACTION

N/A

Opens the main plug-in menu.


1.7

OpenPresetsMenu

ACTION

N/A

Opens the plug-in presets menu.


1.9

DisplayAbout

ACTION

N/A

Displays the "About Box" window.


1.9

OpenManual

ACTION

N/A

Opens the plug-in manual.


1.9

Undo

ACTION

N/A

Triggers Undo.


1.9

Redo

ACTION

N/A

Triggers Redo.


1.9

LoadPreset

ACTION

N/A

Opens the "Load Preset" window.


1.9

SavePreset

ACTION

N/A

Opens the "Save Preset" window.


1.9

SaveAsDefaultPreset

ACTION

N/A

Saves the current state as the default preset.


1.9

SaveCurrentPreset

ACTION

N/A

Saves the state of the current preset into the preset file (if not a factory preset and file path available).


2.7

RevertCurrentPreset

ACTION

N/A

Reload the state of the current preset from file (if available).


2.7

NextPreset

ACTION

N/A

Loads the next preset in the list.


1.9

PreviousPreset

ACTION

N/A

Loads the previous preset in the list.


1.9

Show_dsp.inputX_ControlSetup

ACTION

N/A

Open the "Control Setup" menu for input parameter X

X is the index of the input parameter (see below). The menu gives access to automation and MIDI control settings.

1.9.1

Show_dsp.outputX_ControlSetup

ACTION

N/A

Open the "Control Setup" menu for input parameter X

X is the index of the input parameter (see below). The menu gives access to automation and MIDI control settings.

1.9.1

OpenPresetsSettings

ACTION

N/A

Open the presets settings window

2.7.1

OpenGlobalSettings

ACTION

N/A

Open the global settings window

2.7.1

Parameters

Audio plug-ins may publish several types of parameters:

Input parameters let the end user change the configuration of the plug-in in real time. These parameters are available for automation and MIDI control and are read/write model objects of type PARAM. They are exposed by the plug-in as "dsp.inputX" where X ranges from 0 to the number of parameters minus one (dsp.input0, dsp.input1 etc.).

Output parameters let the plug-in show information to the end user, and are available for recording automation or sending MIDI data. They are read-only model objects of type PARAM. They are exposed by the plug-in as "dsp.outputX" where X ranges from 0 to the number of parameters minus one (dsp.output0, dsp.output1 etc.).

Private Output parameters are the same as output parameters, but not exposed to the host application for automation or MIDI. They are exposed by the plug-in as "dsp.private_outputX" where X ranges from 0 to the number of parameters minus one (dsp.private_output0, dsp.private_output1 etc.).

Curves

Just like for parameters, input and output curves are model objects of type CURVE, available with the following naming convention:

Input Curves are read/write, and named "dsp.input_curveX" where X ranges from 0 to the number of curves minus one (dsp.input_curve0, dsp.input_curve1 etc.).

Output Curves are read-only, and named "dsp.output_curveX" where X ranges from 0 to the number of curves minus one (dsp.output_curve0, dsp.output_curve1 etc.).

Surfaces

Just like for parameters, input and output surfaces are model objects of type SURFACE, available with the following naming convention:

Input Surfaces are read/write, and named "dsp.input_surfaceX" where X ranges from 0 to the number of surfaces minus one (dsp.input_surface0, dsp.input_surface1 etc.).

Output Surfaces are read-only, and named "dsp.output_surfaceX" where X ranges from 0 to the number of surfaces minus one (dsp.output_surface0, dsp.output_surface1 etc.).

Strings

Just like for parameters, input and output strings are model objects of type STRING, available with the following naming convention:

Input Strings are read/write, and named "dsp.input_stringX" where X ranges from 0 to the number of strings minus one (dsp.input_string0, dsp.input_string1 etc.).

Output Strings are read-only, and named "dsp.output_stringX" where X ranges from 0 to the number of strings minus one (dsp.output_string0, dsp.output_string1 etc.).

Custom Properties

Some plug-ins may expose custom data that can be used with special widgets specifically developed for these plug-ins. Since their type may be completely custom, you should be careful when customizing the manufacturer's deign and make sure to use the appropriate property with appropriate type.

Input and output custom properties are model objects with a dynamic type, available with the following naming convention:

Input Custom Properties are read/write, and named "dsp.input_propertyX" where X ranges from 0 to the number of objects minus one (dsp.input_property0, dsp.input_property1 etc.).

Output Custom Properties are read-only, and named "dsp.output_propertyX" where X ranges from 0 to the number of objects minus one (dsp.output_property0, dsp.output_property1 etc.).