Appendix B: The <binding> element

Adding a binding to a UI control, MIDI handler, or modulator tells the DecentSampler engine that it should take input from a source and use it to change values in another part of the engine. An example of this would be a knob which controls the volume of a group, a CC controller that changes an effect parameter, or an LFO that modulates an effect parameter.

In order to set up a binding for a specific source, create a <binding> element within the source element.

In this example, a labeled knob is controlling the volume of the first group of samples (group 0):

<DecentSampler>
  <ui>
    <tab>
      <labeled-knob x="420" y="100" label="RT" type="float" minValue="0" maxValue="1" value="0.3" textSize="20">
        <binding type="amp" level="group" position="0" parameter="AMP_VOLUME" translation="linear" translationOutputMin="0" translationOutputMax="1.0"  />
      </labeled-knob>
    </tab>
  </ui>
</DecentSampler>

Here’s a full list of parameters for the <binding> element:

Attribute

Description

type

This tells the engine what type of parameter this is. Valid values are: amp, general, effect, control, note, note_binding, velocity_binding, button_state_binding, keyboard_color, modulator, note_sequence.

Required

level

Valid values are ui, instrument, group, tag, midi

Required

position

The specific 0-based index of the element to be modified by this binding. If you are targeting a group, for example, the first group would be 0, the second group would be 1, etc.

Required

controlIndex

When a binding is targeting a control, this is the same thing as the position attribute. It is a specific 0-based index of the control to be modified by this binding. If you are targeting an group-level effect, this would specified the group under which the effect lives.

Optional

groupIndex

When a binding is targeting a group, this is the same thing as the position attribute. It is a specific 0-based index of the group to be modified by this binding. If you are targeting an group-level effect, this would specified the group under which the effect lives.

Optional

effectIndex

When a binding is targeting an effect, this is the same thing as the position attribute. It is a specific 0-based index of the effect to be modified by this binding. As an alternative to using an index, you can use the effectTags attribute (see below) to target effects by their tags name.

Optional

modulatorIndex

When a binding is targeting a modulator, this is the same thing as the position attribute. It is a specific 0-based index of the modulator to be modified by this binding. As an alternative to using an index, you can use the modulatorTags attribute (see below) to target modulators by their tags name.

Optional

tags

A comma-separated list of tags. The meaning depends on context: at level="group", this selects the target group(s) by tag. For backward compatibility, tags is also promoted into the appropriate typed tag attribute (groupTags, effectTags, modulatorTags, or controlTags) when the corresponding typed attribute is not explicitly set. Prefer the typed attributes for new presets.

Optional

groupTags

A comma-separated list of group tags. At level="group", targets all <group> elements whose tags attribute contains any of these tags. This is the explicit, typed form of the group-selection behavior that tags has always provided.

Optional

effectTags

A comma-separated list of effect tags. When type="effect", targets all <effect> elements (at instrument or group level) whose tags attribute contains any of these tags. Use this instead of effectIndex when you want to address effects by name rather than position.

Optional

modulatorTags

A comma-separated list of modulator tags. When type="modulator" at level="instrument", targets all modulator elements (<lfo>, <envelope>, etc.) whose tags attribute contains any of these tags. Use this instead of modulatorIndex when you want to address modulators by name rather than position.

Optional

controlTags

A comma-separated list of UI control tags. When type="control" at level="ui", targets all UI controls whose tags attribute contains any of these tags. Use this instead of controlIndex when you want to address controls by name rather than position.

Optional

enabled

A value that turns the binding on and off. Valid values are: true, false.

Optional

identifier

A string identifying the specific parameter that you wish to change. If you are modulating based on tags, you would put the tag you are targeting here. See Appendix D for example.

Required

parameter

A token describing the specific kind of parameter that you wish to change. A list of controller parameters are below.

Required

translation

Valid values are fixed_value, linear and table. Explanation of both translation modes is in a separate section below. Default: linear

Optional

translationOutputMin

This is the min value this binding should send to the target parameter. This is only looked at if translation is set to linear.

Optional

translationOutputMax

This is the max value this binding should send to the target parameter. This is only looked at if translation is set to linear.

Optional

translationReversed

Valid values are true and false. Default: false. This is only looked at if translation is set to linear.

Optional

translationTable

A list of input-output pairs that make up the translation table. The input and output are separated by commas. The groups of coordinates themselves are separated by semi-colons. Default: 0,0;1,1. You must have at least two coordinates in your list. This is only looked at if translation is set to table.

Optional

translationValue

The value that should be passed along when translation is set to fixed_value.

Optional

triggerOnLoad

Valid values are true and false. Default: true. When set to false, this binding will not fire when the preset is first loaded or when a DAW session is restored. This is useful for fixed_value VALUE bindings inside button states that would otherwise overwrite a user’s saved control position on session restore.

Optional

Binding Parameters for Targeting Note Sequences

A special set of binding attributes exist for targeting note sequences:

Attribute

Description

Default

Required

seqIndex

A 0-based index of a sequence underneath the <noteSequences> section

None

Required

seqFollowGlobalTempo

Whether or not the sequence should follow the global tempo. Valid values are true and false. If this is set to false, then playback will be hardcoded at 120BPM. This can be useful if you want to assure that sequences will always play back at the same rate regardless of the DAW clock.

true

Optional

seqTriggerBehavior

What the binding should do with the sequence in question. Valid values are on (start playing the sequence), off (stop playing the sequence), midi_key (special value that will cause the binding to follow a specific MIDI key note binding)

midi_key

Optional

seqPlayerIdentifier

An identifier used for tracking the state of a sequence. This value can be any sequence of numbers or letters.

None

Required when seqTriggerBehavior is on or off

seqTrackMidiInputVelocity

Whether or not the sequence should respect the velocity of the incoming MIDI note. This can only be used when the sequence is being triggered by a MIDI note binding. Value should be a floating point number from 0.0 to 1.

Optional

seqTranspose

Transpose the notes in the sequence by an arbitrary number of half steps. Value should be a floating point number from -36 to 36.

Any sequence of numbers of letters

Optional

seqTransposeWithRootNote

Transpose the notes in the sequence relative to the pitch of the incoming MIDI note. This can only be used when the sequence is being triggered by a MIDI note binding. Value should be a floating point number from 0 to 127.

Any sequence of numbers of letters

Optional

seqPlaybackRate

The speed of playback. Value should be a floating point number from 0.001 to 10000.

1.0

Optional

seqLoopMode

Valid values are: forward, reverse, random, random_no_repeat, no_loop

forward

Optional

Controllable Parameters

This is a list of parameters that can be used in conjunction with the <binding> element above. NOTE: The table below scrolls to the right.

Description

type

level

parameter

Valid Range

Modulatable

Additional required parameters

Global Volume

amp

instrument

AMP_VOLUME

0.0 - 16.0

No

N/A

Global Tuning

amp

instrument

GLOBAL_TUNING

-36.0 - 36.0

No

N/A

Global Pan

amp

instrument

PAN

-100 - 100

No

N/A

Sample Start (see note 2 below)

general

instrument or group

SAMPLE_START

0 - last sample

No

This value will be in number of raw samples where 0 is the beginning. See note 2 below.

Sample End (see note 2 below)

general

instrument or group

SAMPLE_END

0 - last sample

No

This value will be in number of raw samples where 0 is the beginning. See note 2 below.

Loop Start (see note 2 below)

general

instrument or group

LOOP_START

0 - last sample

No

This value will be in number of raw samples where 0 is the beginning. See note 2 below.

Loop End (see note 2 below)

general

instrument or group

LOOP_END

0 - last sample

No

This value will be in number of raw samples where 0 is the beginning. See note 2 below.

Low Note

general

instrument or group

LO_NOTE

0 - 127

No

The lowest MIDI note number that will trigger samples in this group. Integer values only.

High Note

general

instrument or group

HI_NOTE

0 - 127

No

The highest MIDI note number that will trigger samples in this group. Integer values only.

Low Velocity

general

group

LO_VEL

0 - 127

No

The lowest MIDI velocity value that will trigger samples in this group. Integer values only. groupIndex or position contains the 0-based index of the group.

High Velocity

general

group

HI_VEL

0 - 127

No

The highest MIDI velocity value that will trigger samples in this group. Integer values only. groupIndex or position contains the 0-based index of the group.

Root Note

general

instrument or group

ROOT_NOTE

0 - 127

No

The MIDI note number used as the root pitch for transposition. Integer values only.

Silencing Decay

general

instrument or group

SILENCING_DECAY

0.0+ (seconds)

No

Controls the fade-out time in seconds when a note is silenced by a new note. When greater than 0, this overrides silencingMode. For example, 0.05 produces a 50ms fade-out. groupIndex or position contains the 0-based index of the group.

Silencing Mode

general

instrument or group

SILENCING_MODE

fast, normal

No

Controls how a playing note is silenced when a new note triggers silencing. fast = immediate cutoff, normal = uses the envelope release. Typically used with a fixed_value translation. groupIndex or position contains the 0-based index of the group.

Pitch Key Track

general

instrument or group

PITCH_KEY_TRACK

0.0 - 1.0

No

Controls how much the pitch of a sample follows the MIDI note. 1.0 = full pitch tracking (normal behavior), 0.0 = no pitch tracking (sample always plays at its root pitch). groupIndex or position contains the 0-based index of the group.

Amplitude Velocity Tracking

amp

instrument

AMP_VEL_TRACK

0.0 - 1.0

No

N/A

Global Amp Envelope Attack

amp

instrument

ENV_ATTACK

0.0 - 10.0

No

N/A

Global Amp Envelope Attack Curve Shape

amp

instrument

ENV_ATTACK_CURVE

-100 - 100

No

N/A

Global Amp Envelope Decay

amp

instrument

ENV_DECAY

0.0 - 25.0

No

N/A

Global Amp Envelope Decay Curve Shape

amp

instrument

ENV_DECAY_CURVE

-100 - 100

No

N/A

Global Amp Envelope Sustain

amp

instrument

ENV_SUSTAIN

0.0 - 1.0

No

N/A

Global Amp Envelope Release

amp

instrument

ENV_RELEASE

0.0 - 25.0

No

N/A

Global Amp Envelope Release Curve Shape

amp

instrument

ENV_RELEASE_CURVE

-100 - 100

No

N/A

Glide/Portamento Time

amp

instrument

GLIDE_TIME

0.0 - 10.0

No

N/A

Group Enabled / Disabled

amp

group

ENABLED

true, false

groupIndex or position contains the 0-based index of the group

Group Amplitude Envelope Enabled / Disabled

amp

group

AMP_ENV_ENABLED

true, false

No

groupIndex or position contains the 0-based index of the group. When false, samples play as one-shots (no ADSR).

Group Volume

amp

group

AMP_VOLUME

0.0 - 16.0

Yes

groupIndex or position contains the 0-based index of the group

Group Tuning

amp

group

GROUP_TUNING

-36.0 - 36.0

Yes

groupIndex or position contains the 0-based index of the group

Pan

amp

group

PAN

-100 - 100

Yes

groupIndex or position contains the 0-based index of the group

Amplitude Velocity Tracking

amp

group

AMP_VEL_TRACK

0.0 - 1.0

groupIndex or position contains the 0-based index of the group

Group Amp Envelope Attack

amp

group

ENV_ATTACK

0.0 - 10.0

groupIndex or position contains the 0-based index of the group

Group Amp Envelope Decay

amp

group

ENV_DECAY

0.0 - 25.0

groupIndex or position contains the 0-based index of the group

Group Amp Envelope Sustain

amp

group

ENV_SUSTAIN

0.0 - 1.0

groupIndex or position contains the 0-based index of the group

Group Amp Envelope Release

amp

group

ENV_RELEASE

0.0 - 25.0

groupIndex or position contains the 0-based index of the group

Group Output 1 Volume

amp

group

OUTPUT_1_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 2 Volume

amp

group

OUTPUT_2_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 3 Volume

amp

group

OUTPUT_3_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 4 Volume

amp

group

OUTPUT_4_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 5 Volume

amp

group

OUTPUT_5_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 6 Volume

amp

group

OUTPUT_6_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 7 Volume

amp

group

OUTPUT_7_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 8 Volume

amp

group

OUTPUT_8_VOLUME

0.0 - 1

No

groupIndex or position contains the 0-based index of the group

Group Output 1 Target

amp

group

OUTPUT_1_TARGET

Any of the valid values for output1Target

No

groupIndex or position contains the 0-based index of the group

Group Output 2 Target

amp

group

OUTPUT_2_TARGET

Any of the valid values for output2Target

No

groupIndex or position contains the 0-based index of the group

Group Output 3 Target

amp

group

OUTPUT_3_TARGET

Any of the valid values for output3Target

No

groupIndex or position contains the 0-based index of the group

Group Output 4 Target

amp

group

OUTPUT_4_TARGET

Any of the valid values for output4Target

No

groupIndex or position contains the 0-based index of the group

Group Output 5 Target

amp

group

OUTPUT_5_TARGET

Any of the valid values for output5Target

No

groupIndex or position contains the 0-based index of the group

Group Output 6 Target

amp

group

OUTPUT_6_TARGET

Any of the valid values for output6Target

No

groupIndex or position contains the 0-based index of the group

Group Output 7 Target

amp

group

OUTPUT_7_TARGET

Any of the valid values for output7Target

No

groupIndex or position contains the 0-based index of the group

Group Output 8 Target

amp

group

OUTPUT_8_TARGET

Any of the valid values for output8Target

No

groupIndex or position contains the 0-based index of the group

Group Glide/Portamento Time

amp

group

GLIDE_TIME

0.0 - 10.0

groupIndex or position contains the 0-based index of the group

Oscillator Waveform (group level)

general

group

OSCILLATOR_WAVEFORM

sine, saw, square, triangle, noise, white_noise, pluck1, wavetable, harmonic, fm6op

No

groupIndex or position contains the 0-based index of the group containing the oscillator

Oscillator Damping (pluck1 only)

general

group

OSCILLATOR_DAMPING

0.0 - 1.0

No

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is pluck1. Controls the decay time of the plucked string.

Oscillator Pluck Type (pluck1 only)

general

group

OSCILLATOR_PLUCK_TYPE

0.0 - 1.0

No

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is pluck1. Blends between triangle wave excitation (0.0) and noise burst excitation (1.0).

Oscillator Wavetable Position (wavetable only)

general

group

OSCILLATOR_WAVETABLE_POSITION

0.0 - 1.0

No

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is wavetable. Scans through the frames of the loaded wavetable file. 0.0 = first frame, 1.0 = last frame. Intermediate values crossfade between adjacent frames. Can be driven by an LFO, envelope, MIDI CC, or UI knob.

Oscillator Wavetable Frame Interpolation (wavetable only)

general

group

OSCILLATOR_WAVETABLE_FRAME_INTERPOLATION

true, false

No

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is wavetable. When true (default), adjacent frames are linearly crossfaded as the position moves. When false, the oscillator snaps to the nearest integer frame — useful for wavetables containing discrete, unrelated shapes where blended intermediates are unwanted.

Harmonic Oscillator Partial Count (harmonic only)

general

group

OSCILLATOR_HARMONIC_NUM_PARTIALS

1 - 64 (integer)

Yes

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is harmonic. Controls how many harmonic partials are active.

Harmonic Oscillator Tilt (harmonic only)

general

group

OSCILLATOR_HARMONIC_TILT

-1.0 - 1.0

Yes

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is harmonic. Positive values darken the spectrum; negative values brighten it.

Harmonic Oscillator Odd/Even Balance (harmonic only)

general

group

OSCILLATOR_HARMONIC_ODD_EVEN_BALANCE

0.0 - 1.0

Yes

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is harmonic. 0.0 emphasizes odd harmonics, 1.0 emphasizes even harmonics, 0.5 is balanced.

Harmonic Oscillator Normalization (harmonic only)

general

group

OSCILLATOR_HARMONIC_NORMALIZATION

0.0 - 1.0

Yes

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is harmonic. Blends between no gain compensation and full harmonic-sum normalization.

Harmonic Oscillator Partial Levels (harmonic only)

general

group

OSCILLATOR_HARMONIC_PARTIAL_1_LEVELOSCILLATOR_HARMONIC_PARTIAL_64_LEVEL

0.0 - 1.0

Yes

groupIndex or position contains the 0-based index of the group containing the oscillator. Only applies when waveform is harmonic. Each parameter controls the level of one partial.

FM6 Algorithm (fm6op only)

general

group

OSCILLATOR_FM_ALGORITHM

1 - 32

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. Selects one of the 32 DX7-compatible algorithm topologies.

FM6 Operator 1 Level (fm6op only)

general

group

OSCILLATOR_FM_OP1_LEVEL

0.0 - 1.0

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. Controls the output/modulation level of FM operator 1.

FM6 Operator 2 Level (fm6op only)

general

group

OSCILLATOR_FM_OP2_LEVEL

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_LEVEL but for operator 2.

FM6 Operator 3 Level (fm6op only)

general

group

OSCILLATOR_FM_OP3_LEVEL

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_LEVEL but for operator 3.

FM6 Operator 4 Level (fm6op only)

general

group

OSCILLATOR_FM_OP4_LEVEL

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_LEVEL but for operator 4.

FM6 Operator 5 Level (fm6op only)

general

group

OSCILLATOR_FM_OP5_LEVEL

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_LEVEL but for operator 5.

FM6 Operator 6 Level (fm6op only)

general

group

OSCILLATOR_FM_OP6_LEVEL

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_LEVEL but for operator 6.

FM6 Operator 1 Ratio (fm6op only)

general

group

OSCILLATOR_FM_OP1_RATIO

Any positive decimal

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. Controls the frequency ratio of operator 1 relative to the played note.

FM6 Operator 2 Ratio (fm6op only)

general

group

OSCILLATOR_FM_OP2_RATIO

Any positive decimal

No

Same as OSCILLATOR_FM_OP1_RATIO but for operator 2.

FM6 Operator 3 Ratio (fm6op only)

general

group

OSCILLATOR_FM_OP3_RATIO

Any positive decimal

No

Same as OSCILLATOR_FM_OP1_RATIO but for operator 3.

FM6 Operator 4 Ratio (fm6op only)

general

group

OSCILLATOR_FM_OP4_RATIO

Any positive decimal

No

Same as OSCILLATOR_FM_OP1_RATIO but for operator 4.

FM6 Operator 5 Ratio (fm6op only)

general

group

OSCILLATOR_FM_OP5_RATIO

Any positive decimal

No

Same as OSCILLATOR_FM_OP1_RATIO but for operator 5.

FM6 Operator 6 Ratio (fm6op only)

general

group

OSCILLATOR_FM_OP6_RATIO

Any positive decimal

No

Same as OSCILLATOR_FM_OP1_RATIO but for operator 6.

FM6 Operator 1 Feedback (fm6op only)

general

group

OSCILLATOR_FM_OP1_FEEDBACK

0.0 - 1.0

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. Controls operator 1 self-feedback. Note: only the feedback operator designated by the active algorithm produces audible effect.

FM6 Operator 2 Feedback (fm6op only)

general

group

OSCILLATOR_FM_OP2_FEEDBACK

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_FEEDBACK but for operator 2.

FM6 Operator 3 Feedback (fm6op only)

general

group

OSCILLATOR_FM_OP3_FEEDBACK

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_FEEDBACK but for operator 3.

FM6 Operator 4 Feedback (fm6op only)

general

group

OSCILLATOR_FM_OP4_FEEDBACK

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_FEEDBACK but for operator 4.

FM6 Operator 5 Feedback (fm6op only)

general

group

OSCILLATOR_FM_OP5_FEEDBACK

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_FEEDBACK but for operator 5.

FM6 Operator 6 Feedback (fm6op only)

general

group

OSCILLATOR_FM_OP6_FEEDBACK

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_FEEDBACK but for operator 6. OSCILLATOR_FM_OP6_FEEDBACK is the primary feedback parameter — it has an audible effect in all 32 algorithms.

FM6 Operator 1 Detune (fm6op only)

general

group

OSCILLATOR_FM_OP1_DETUNE

-7 to +7

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. DX7-compatible pitch detune for operator 1. Useful for chorus-like effects and bell timbres.

FM6 Operator 2 Detune (fm6op only)

general

group

OSCILLATOR_FM_OP2_DETUNE

-7 to +7

No

Same as OSCILLATOR_FM_OP1_DETUNE but for operator 2.

FM6 Operator 3 Detune (fm6op only)

general

group

OSCILLATOR_FM_OP3_DETUNE

-7 to +7

No

Same as OSCILLATOR_FM_OP1_DETUNE but for operator 3.

FM6 Operator 4 Detune (fm6op only)

general

group

OSCILLATOR_FM_OP4_DETUNE

-7 to +7

No

Same as OSCILLATOR_FM_OP1_DETUNE but for operator 4.

FM6 Operator 5 Detune (fm6op only)

general

group

OSCILLATOR_FM_OP5_DETUNE

-7 to +7

No

Same as OSCILLATOR_FM_OP1_DETUNE but for operator 5.

FM6 Operator 6 Detune (fm6op only)

general

group

OSCILLATOR_FM_OP6_DETUNE

-7 to +7

No

Same as OSCILLATOR_FM_OP1_DETUNE but for operator 6.

FM6 Operator 1 Mode (fm6op only)

general

group

OSCILLATOR_FM_OP1_MODE

ratio, fixed

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. Controls whether operator 1 uses frequency ratio (default) or fixed Hz frequency mode.

FM6 Operator 2 Mode (fm6op only)

general

group

OSCILLATOR_FM_OP2_MODE

ratio, fixed

No

Same as OSCILLATOR_FM_OP1_MODE but for operator 2.

FM6 Operator 3 Mode (fm6op only)

general

group

OSCILLATOR_FM_OP3_MODE

ratio, fixed

No

Same as OSCILLATOR_FM_OP1_MODE but for operator 3.

FM6 Operator 4 Mode (fm6op only)

general

group

OSCILLATOR_FM_OP4_MODE

ratio, fixed

No

Same as OSCILLATOR_FM_OP1_MODE but for operator 4.

FM6 Operator 5 Mode (fm6op only)

general

group

OSCILLATOR_FM_OP5_MODE

ratio, fixed

No

Same as OSCILLATOR_FM_OP1_MODE but for operator 5.

FM6 Operator 6 Mode (fm6op only)

general

group

OSCILLATOR_FM_OP6_MODE

ratio, fixed

No

Same as OSCILLATOR_FM_OP1_MODE but for operator 6.

FM6 Operator 1 Fixed Frequency (fm6op only)

general

group

OSCILLATOR_FM_OP1_FIXED_FREQ

Any positive decimal (Hz)

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op and operator mode is fixed. Specifies the fixed frequency in Hz for operator 1. Useful for metallic and bell timbres.

FM6 Operator 2 Fixed Frequency (fm6op only)

general

group

OSCILLATOR_FM_OP2_FIXED_FREQ

Any positive decimal (Hz)

No

Same as OSCILLATOR_FM_OP1_FIXED_FREQ but for operator 2.

FM6 Operator 3 Fixed Frequency (fm6op only)

general

group

OSCILLATOR_FM_OP3_FIXED_FREQ

Any positive decimal (Hz)

No

Same as OSCILLATOR_FM_OP1_FIXED_FREQ but for operator 3.

FM6 Operator 4 Fixed Frequency (fm6op only)

general

group

OSCILLATOR_FM_OP4_FIXED_FREQ

Any positive decimal (Hz)

No

Same as OSCILLATOR_FM_OP1_FIXED_FREQ but for operator 4.

FM6 Operator 5 Fixed Frequency (fm6op only)

general

group

OSCILLATOR_FM_OP5_FIXED_FREQ

Any positive decimal (Hz)

No

Same as OSCILLATOR_FM_OP1_FIXED_FREQ but for operator 5.

FM6 Operator 6 Fixed Frequency (fm6op only)

general

group

OSCILLATOR_FM_OP6_FIXED_FREQ

Any positive decimal (Hz)

No

Same as OSCILLATOR_FM_OP1_FIXED_FREQ but for operator 6.

FM6 Operator 1 Velocity Sensitivity (fm6op only)

general

group

OSCILLATOR_FM_OP1_VELOCITY_SENSITIVITY

0 - 7

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. DX7-compatible velocity sensitivity curve for operator 1. 0=no velocity response, 7=maximum response.

FM6 Operator 2 Velocity Sensitivity (fm6op only)

general

group

OSCILLATOR_FM_OP2_VELOCITY_SENSITIVITY

0 - 7

No

Same as OSCILLATOR_FM_OP1_VELOCITY_SENSITIVITY but for operator 2.

FM6 Operator 3 Velocity Sensitivity (fm6op only)

general

group

OSCILLATOR_FM_OP3_VELOCITY_SENSITIVITY

0 - 7

No

Same as OSCILLATOR_FM_OP1_VELOCITY_SENSITIVITY but for operator 3.

FM6 Operator 4 Velocity Sensitivity (fm6op only)

general

group

OSCILLATOR_FM_OP4_VELOCITY_SENSITIVITY

0 - 7

No

Same as OSCILLATOR_FM_OP1_VELOCITY_SENSITIVITY but for operator 4.

FM6 Operator 5 Velocity Sensitivity (fm6op only)

general

group

OSCILLATOR_FM_OP5_VELOCITY_SENSITIVITY

0 - 7

No

Same as OSCILLATOR_FM_OP1_VELOCITY_SENSITIVITY but for operator 5.

FM6 Operator 6 Velocity Sensitivity (fm6op only)

general

group

OSCILLATOR_FM_OP6_VELOCITY_SENSITIVITY

0 - 7

No

Same as OSCILLATOR_FM_OP1_VELOCITY_SENSITIVITY but for operator 6.

FM6 Operator 1 Attack (fm6op only)

general

group

OSCILLATOR_FM_OP1_ATTACK

0.0 - 45.0 (seconds)

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op and operator EG type is adsr. ADSR envelope attack time for operator 1.

FM6 Operator 2 Attack (fm6op only)

general

group

OSCILLATOR_FM_OP2_ATTACK

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_ATTACK but for operator 2.

FM6 Operator 3 Attack (fm6op only)

general

group

OSCILLATOR_FM_OP3_ATTACK

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_ATTACK but for operator 3.

FM6 Operator 4 Attack (fm6op only)

general

group

OSCILLATOR_FM_OP4_ATTACK

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_ATTACK but for operator 4.

FM6 Operator 5 Attack (fm6op only)

general

group

OSCILLATOR_FM_OP5_ATTACK

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_ATTACK but for operator 5.

FM6 Operator 6 Attack (fm6op only)

general

group

OSCILLATOR_FM_OP6_ATTACK

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_ATTACK but for operator 6.

FM6 Operator 1 Decay (fm6op only)

general

group

OSCILLATOR_FM_OP1_DECAY

0.0 - 45.0 (seconds)

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op and operator EG type is adsr. ADSR envelope decay time for operator 1.

FM6 Operator 2 Decay (fm6op only)

general

group

OSCILLATOR_FM_OP2_DECAY

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_DECAY but for operator 2.

FM6 Operator 3 Decay (fm6op only)

general

group

OSCILLATOR_FM_OP3_DECAY

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_DECAY but for operator 3.

FM6 Operator 4 Decay (fm6op only)

general

group

OSCILLATOR_FM_OP4_DECAY

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_DECAY but for operator 4.

FM6 Operator 5 Decay (fm6op only)

general

group

OSCILLATOR_FM_OP5_DECAY

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_DECAY but for operator 5.

FM6 Operator 6 Decay (fm6op only)

general

group

OSCILLATOR_FM_OP6_DECAY

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_DECAY but for operator 6.

FM6 Operator 1 Sustain (fm6op only)

general

group

OSCILLATOR_FM_OP1_SUSTAIN

0.0 - 1.0

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op and operator EG type is adsr. ADSR envelope sustain level for operator 1.

FM6 Operator 2 Sustain (fm6op only)

general

group

OSCILLATOR_FM_OP2_SUSTAIN

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_SUSTAIN but for operator 2.

FM6 Operator 3 Sustain (fm6op only)

general

group

OSCILLATOR_FM_OP3_SUSTAIN

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_SUSTAIN but for operator 3.

FM6 Operator 4 Sustain (fm6op only)

general

group

OSCILLATOR_FM_OP4_SUSTAIN

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_SUSTAIN but for operator 4.

FM6 Operator 5 Sustain (fm6op only)

general

group

OSCILLATOR_FM_OP5_SUSTAIN

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_SUSTAIN but for operator 5.

FM6 Operator 6 Sustain (fm6op only)

general

group

OSCILLATOR_FM_OP6_SUSTAIN

0.0 - 1.0

No

Same as OSCILLATOR_FM_OP1_SUSTAIN but for operator 6.

FM6 Operator 1 Release (fm6op only)

general

group

OSCILLATOR_FM_OP1_RELEASE

0.0 - 45.0 (seconds)

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op and operator EG type is adsr. ADSR envelope release time for operator 1.

FM6 Operator 2 Release (fm6op only)

general

group

OSCILLATOR_FM_OP2_RELEASE

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_RELEASE but for operator 2.

FM6 Operator 3 Release (fm6op only)

general

group

OSCILLATOR_FM_OP3_RELEASE

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_RELEASE but for operator 3.

FM6 Operator 4 Release (fm6op only)

general

group

OSCILLATOR_FM_OP4_RELEASE

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_RELEASE but for operator 4.

FM6 Operator 5 Release (fm6op only)

general

group

OSCILLATOR_FM_OP5_RELEASE

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_RELEASE but for operator 5.

FM6 Operator 6 Release (fm6op only)

general

group

OSCILLATOR_FM_OP6_RELEASE

0.0 - 45.0 (seconds)

No

Same as OSCILLATOR_FM_OP1_RELEASE but for operator 6.

FM6 Operator 1 EG Type (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_TYPE

adsr, dx7

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op. Selects envelope type for operator 1: adsr (standard ADSR) or dx7 (DX7-style 4-stage envelope).

FM6 Operator 2 EG Type (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_TYPE

adsr, dx7

No

Same as OSCILLATOR_FM_OP1_EG_TYPE but for operator 2.

FM6 Operator 3 EG Type (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_TYPE

adsr, dx7

No

Same as OSCILLATOR_FM_OP1_EG_TYPE but for operator 3.

FM6 Operator 4 EG Type (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_TYPE

adsr, dx7

No

Same as OSCILLATOR_FM_OP1_EG_TYPE but for operator 4.

FM6 Operator 5 EG Type (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_TYPE

adsr, dx7

No

Same as OSCILLATOR_FM_OP1_EG_TYPE but for operator 5.

FM6 Operator 6 EG Type (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_TYPE

adsr, dx7

No

Same as OSCILLATOR_FM_OP1_EG_TYPE but for operator 6.

FM6 Operator 1 EG Rate 1 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_RATE1

0 - 99

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op and operator EG type is dx7. DX7 envelope rate 1 for operator 1.

FM6 Operator 1 EG Rate 2 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_RATE2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for rate 2.

FM6 Operator 1 EG Rate 3 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_RATE3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for rate 3.

FM6 Operator 1 EG Rate 4 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_RATE4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for rate 4.

FM6 Operator 2 EG Rate 1 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_RATE1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for operator 2.

FM6 Operator 2 EG Rate 2 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_RATE2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE2 but for operator 2.

FM6 Operator 2 EG Rate 3 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_RATE3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE3 but for operator 2.

FM6 Operator 2 EG Rate 4 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_RATE4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE4 but for operator 2.

FM6 Operator 3 EG Rate 1 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_RATE1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for operator 3.

FM6 Operator 3 EG Rate 2 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_RATE2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE2 but for operator 3.

FM6 Operator 3 EG Rate 3 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_RATE3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE3 but for operator 3.

FM6 Operator 3 EG Rate 4 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_RATE4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE4 but for operator 3.

FM6 Operator 4 EG Rate 1 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_RATE1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for operator 4.

FM6 Operator 4 EG Rate 2 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_RATE2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE2 but for operator 4.

FM6 Operator 4 EG Rate 3 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_RATE3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE3 but for operator 4.

FM6 Operator 4 EG Rate 4 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_RATE4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE4 but for operator 4.

FM6 Operator 5 EG Rate 1 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_RATE1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for operator 5.

FM6 Operator 5 EG Rate 2 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_RATE2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE2 but for operator 5.

FM6 Operator 5 EG Rate 3 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_RATE3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE3 but for operator 5.

FM6 Operator 5 EG Rate 4 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_RATE4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE4 but for operator 5.

FM6 Operator 6 EG Rate 1 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_RATE1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE1 but for operator 6.

FM6 Operator 6 EG Rate 2 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_RATE2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE2 but for operator 6.

FM6 Operator 6 EG Rate 3 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_RATE3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE3 but for operator 6.

FM6 Operator 6 EG Rate 4 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_RATE4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_RATE4 but for operator 6.

FM6 Operator 1 EG Level 1 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_LEVEL1

0 - 99

No

groupIndex or position contains the 0-based index of the group. Only applies when waveform is fm6op and operator EG type is dx7. DX7 envelope level 1 for operator 1.

FM6 Operator 1 EG Level 2 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_LEVEL2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for level 2.

FM6 Operator 1 EG Level 3 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_LEVEL3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for level 3.

FM6 Operator 1 EG Level 4 (fm6op only)

general

group

OSCILLATOR_FM_OP1_EG_LEVEL4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for level 4.

FM6 Operator 2 EG Level 1 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_LEVEL1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for operator 2.

FM6 Operator 2 EG Level 2 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_LEVEL2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL2 but for operator 2.

FM6 Operator 2 EG Level 3 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_LEVEL3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL3 but for operator 2.

FM6 Operator 2 EG Level 4 (fm6op only)

general

group

OSCILLATOR_FM_OP2_EG_LEVEL4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL4 but for operator 2.

FM6 Operator 3 EG Level 1 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_LEVEL1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for operator 3.

FM6 Operator 3 EG Level 2 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_LEVEL2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL2 but for operator 3.

FM6 Operator 3 EG Level 3 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_LEVEL3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL3 but for operator 3.

FM6 Operator 3 EG Level 4 (fm6op only)

general

group

OSCILLATOR_FM_OP3_EG_LEVEL4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL4 but for operator 3.

FM6 Operator 4 EG Level 1 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_LEVEL1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for operator 4.

FM6 Operator 4 EG Level 2 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_LEVEL2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL2 but for operator 4.

FM6 Operator 4 EG Level 3 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_LEVEL3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL3 but for operator 4.

FM6 Operator 4 EG Level 4 (fm6op only)

general

group

OSCILLATOR_FM_OP4_EG_LEVEL4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL4 but for operator 4.

FM6 Operator 5 EG Level 1 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_LEVEL1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for operator 5.

FM6 Operator 5 EG Level 2 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_LEVEL2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL2 but for operator 5.

FM6 Operator 5 EG Level 3 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_LEVEL3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL3 but for operator 5.

FM6 Operator 5 EG Level 4 (fm6op only)

general

group

OSCILLATOR_FM_OP5_EG_LEVEL4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL4 but for operator 5.

FM6 Operator 6 EG Level 1 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_LEVEL1

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL1 but for operator 6.

FM6 Operator 6 EG Level 2 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_LEVEL2

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL2 but for operator 6.

FM6 Operator 6 EG Level 3 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_LEVEL3

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL3 but for operator 6.

FM6 Operator 6 EG Level 4 (fm6op only)

general

group

OSCILLATOR_FM_OP6_EG_LEVEL4

0 - 99

No

Same as OSCILLATOR_FM_OP1_EG_LEVEL4 but for operator 6.

Tag Enabled

amp

tag

TAG_ENABLED

true, false

identifier contains the tag name

Tag Volume

amp

tag

TAG_VOLUME

0.0 - 16.0

identifier contains the tag name

Tag Polyphony

general

tag

TAG_POLYPHONY

Any whole number (1 for mono, >1 for poly)

identifier contains the tag name. Useful for creating mono/poly switches.

MIDI CC Binding Enabled

cc_binding

midi

ENABLED

true or false

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Note Mapping Enabled

note

midi

ENABLED

Any number

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>)

MIDI Note Binding Enabled

note_binding

midi

ENABLED

Any number

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Note Binding Change seqIndex

note_binding

midi

SEQ_INDEX

Any whole number

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Note Binding Change seqLoopMode

note_binding

midi

SEQ_LOOP_MODE

forward, reverse, random, random_no_repeat, no_loop

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Note Binding Change seqTransposeWithRootNote

note_binding

midi

SEQ_TRANSPOSE_WITH_ROOT_NOTE

0 - 128

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Note Binding Change seqPlaybackRate

note_binding

midi

SEQ_PLAYBACK_RATE

0.001 - 10000

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Note Binding Change seqTrackMidiInputVelocity

note_binding

midi

SEQ_TRACK_MIDI_INPUT_VELOCITY

0.0 - 1.0

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Note Binding Change seqTranspose

note_binding

midi

SEQ_TRANSPOSE

-36 - 36

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

MIDI Velocity Binding Enabled

velocity_binding

midi

ENABLED

true or false

midiElementIndex that contains the 0-based index of the note handler within the <midi> element (this used to be called <noteIndex>) and bindingIndex that contains the index of the binding being referenced.

Modulator Amount (Depth)

modulator

instrument

MOD_AMOUNT

0.0 - 1.0

modulatorIndex or modulatorTags identifies the target modulator(s)

LFO Modulator Rate (or Frequency)

modulator

instrument

FREQUENCY

0.0 - 22000.0

modulatorIndex or modulatorTags identifies the target modulator(s)

LFO Modulator Delay Time

modulator

instrument

MOD_DELAY_TIME

0.0 - 10000.0

modulatorIndex or modulatorTags identifies the target modulator(s)

Envelope Modulator Attack

modulator

instrument

ENV_ATTACK

0.0 - 10.0

modulatorIndex or modulatorTags identifies the target modulator(s)

Envelope Modulator Attack Curve Shape

modulator

instrument

ENV_ATTACK_CURVE

-100 - 100

modulatorIndex or modulatorTags identifies the target modulator(s)

Envelope Modulator Decay

modulator

instrument

ENV_DECAY

0.0 - 25.0

modulatorIndex or modulatorTags identifies the target modulator(s)

Envelope Modulator Decay Curve Shape

modulator

instrument

ENV_DECAY_CURVE

-100 - 100

modulatorIndex or modulatorTags identifies the target modulator(s)

Envelope Modulator Sustain

modulator

instrument

ENV_SUSTAIN

0.0 - 1.0

modulatorIndex or modulatorTags identifies the target modulator(s)

Envelope Modulator Release

modulator

instrument

ENV_RELEASE

0.0 - 25.0

modulatorIndex or modulatorTags identifies the target modulator(s)

Envelope Modulator Release Curve Shape

modulator

instrument

ENV_RELEASE_CURVE

-100 - 100

modulatorIndex or modulatorTags identifies the target modulator(s)

Sequence Rate

note_sequence

instrument

RATE

0.01 - 100

seqIndex contains the 0-based index of the note sequence in question

All Notes Off

general

instrument

ALL_NOTES_OFF

true

UI Parameters

NOTE: The table below scrolls to the right.

Description

type

level

parameter

Valid Range

Modulatable

Additional required parameters

UI Background Image Path

general

ui

BG_IMAGE

Text

UI Button State Binding Enabled

button_state_binding

ui

ENABLED

true, false

tags or controlIndex contains the 0-based index of the control in question (see note 1 below), stateIndex contains the 0-based index of the state in question, and bindingIndex that contains the index of the binding being referenced.

UI Control Enabled

control

ui

ENABLED

true, false

tags or controlIndex/position contains the 0-based index of the control in question (see note 1 below)

UI Control Visible

control

ui

VISIBLE

true, false

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

UI Control Value

control

ui

VALUE

Any number

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

UI Control Text

control

ui

TEXT

Text

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

UI Control Minimum Value

control

ui

MIN_VALUE

Any number

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

UI Control Maximum Value

control

ui

MAX_VALUE

Any number

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

UI Control Value Type

control

ui

VALUE_TYPE

float, integer, musical_time

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

Image or Animation File Path

control

ui

PATH

Text

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

Image or Animation Opacity

control

ui

OPACITY

0.0 - 1.0

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

UI Keyboard Coloring Enable / Disable

keyboard_color

ui.

ENABLED

true, false

colorIndex that contains the 0-based index of the color element within the <keyboard> element

UI Keyboard Coloring Low Note

keyboard_color

ui

LO_NOTE

0 - 127

No

colorIndex that contains the 0-based index of the color element within the <keyboard> element

UI Keyboard Coloring High Note

keyboard_color

ui

HI_NOTE

0 - 127

No

colorIndex that contains the 0-based index of the color element within the <keyboard> element

Animation Frame Rate

control

ui

FRAME_RATE

0 - 24

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

Animation Current Frame

control

ui

CURRENT_FRAME

Any number

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

Animation Playback Mode

control

ui

PLAYBACK_MODE

Valid values: forward_loop, forward_once, reverse_loop, reverse_once, ping_pong_loop (forth and back), and stopped. Default value is forward_loop.

controlIndex or position contains the 0-based index of the control in question (see note 1 below)

X-Y Pad X Value

control

ui

X_VALUE

0.0 - 1.0

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

X-Y Pad Y Value

control

ui

Y_VALUE

0.0 - 1.0

tags or controlIndex or position contains the 0-based index of the control in question (see note 1 below)

Rectangle X Position

control

ui

X

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the rectangle control in question (see note 1 below)

Rectangle Y Position

control

ui

Y

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the rectangle control in question (see note 1 below)

Rectangle Width

control

ui

WIDTH

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the rectangle control in question (see note 1 below)

Rectangle Height

control

ui

HEIGHT

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the rectangle control in question (see note 1 below)

Line X1 Position

control

ui

X1

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the line control in question (see note 1 below)

Line Y1 Position

control

ui

Y1

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the line control in question (see note 1 below)

Line X2 Position

control

ui

X2

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the line control in question (see note 1 below)

Line Y2 Position

control

ui

Y2

Any number (pixels)

tags or controlIndex or position contains the 0-based index of the line control in question (see note 1 below)

  1. NOTE: The indexes of the controls within the UI also include UI controls that are not editable, such as <label> elements, so you’ll want to account for that when calculating your positions.

    Here’s a quick example:

    If your UI’s <tab> section has the following elements under it: <label>, <control>,<label>,<control>. The position indexes of the four elements will be 0, 1, 2, 3. Therefore, the indexes of the two <control> elements will be 1 and 3, respectively.

    It’s also possible to use tags to address several controls at once. For example, if you have several <control> elements with the tag some-controls, you can use the following binding to address all of those controls in a single binding:

    <binding type="control" level="ui" tags="some-controls" parameter="VISIBLE" translation="fixed_value" translationValue="true"></binding>
    

Effects Parameters

NOTE: The table below scrolls to the right.

Description

type

level

parameter

Valid Range

Modulatable

Additional required parameters

Effect Enabled (all effects)

effect

instrument

ENABLED

false, true

Yes

effectIndex, position, or tags identifies the target effect(s)

Convolution Mix Level

effect

instrument

FX_MIX

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Convolution IR File

effect

instrument

FX_IR_FILE

Text

No

effectIndex, position, or tags identifies the target effect(s)

Filter Frequency (for several filters)

effect

instrument

FX_FILTER_FREQUENCY

0.0 - 22000.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Peak or Notch Filter Q

effect

instrument

FX_FILTER_Q

0.01 - 18.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Peak or Notch Filter Gain

effect

instrument

FX_FILTER_GAIN

0.0 - 10.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Low-pass or High-pass Filter Resonance

effect

instrument

FX_FILTER_RESONANCE

0.0 - 5.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Reverb Wet Level

effect

instrument

FX_REVERB_WET_LEVEL

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Reverb Room Size

effect

instrument

FX_REVERB_ROOM_SIZE

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Reverb Damping

effect

instrument

FX_REVERB_DAMPING

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Chorus/Phaser/Pitch-Shift/Convolution Mix Level

effect

instrument

FX_MIX

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Chorus/Phaser Mod Depth

effect

instrument

FX_MOD_DEPTH

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Chorus/Phaser Mod Rate

effect

instrument

FX_MOD_RATE

0.0 - 10.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Phaser Center Frequency

effect

instrument

FX_CENTER_FREQUENCY

0.0 - 22000.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Phaser/Delay Feedback

effect

instrument

FX_FEEDBACK

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Delay Time

effect

instrument

FX_DELAY_TIME

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Delay Time Format

effect

instrument

FX_DELAY_TIME_FORMAT

seconds, musical_time

Yes

effectIndex, position, or tags identifies the target effect(s)

Delay Stereo Offset

effect

instrument

FX_STEREO_OFFSET

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Delay Wet Level

effect

instrument

FX_WET_LEVEL

0.0 - 1.0

Yes

effectIndex, position, or tags identifies the target effect(s)

Gain Level

effect

instrument

LEVEL

0.0 - 8.0

Yes

groupIndex or position contains the 0-based index of the group

Pitch Shifter Semitones

effect

instrument

FX_PITCH_SHIFT

-24 - 24

Yes

effectIndex, position, or tags identifies the target effect(s)

Wave Folder Drive Level

effect

instrument

FX_DRIVE

1 - 100

Yes

groupIndex or position contains the 0-based index of the group

Wave Folder Threshold

effect

instrument

FX_THRESHOLD

1 - 100

Yes

groupIndex or position contains the 0-based index of the group

Wave Shaper Drive Level

effect

instrument

FX_DRIVE

0.0 - 1000.0

Yes

groupIndex or position contains the 0-based index of the group

Wave Shaper Output Level

effect

instrument

FX_OUTPUT_LEVEL

0.0 - 8.0

Yes

groupIndex or position contains the 0-based index of the group

Wave Shaper Drive Boost

effect

instrument

FX_DRIVE_BOOST

0.0 - 1.0

Yes

groupIndex or position contains the 0-based index of the group

Translation Modes

There are currently three binding translation modes: linear, table, fixed_value

Mode #1: linear

linear mode allows values that come in to be scaled up or down before they get passed along to the binding’s target. If you set your translation mode to linear you should also translationOutputMin and translationOutputMax.

Example usage:

<binding level="ui" type="control" position="0" parameter="value" translation="linear" 
               translationOutputMin="0" translationOutputMax="1"/>

Mode #2: table

table mode allows you to transform the binding’s input in a more complex fashion before it gets passed along to the binding’s target. If you set your translation mode to table you must define the translationTable parameter as well. This consists of a series of input-output pairs, separated by semi-colons.

Mode #3: fixed_value

fixed_value mode allows you to completely disregard the input of a binding and instead always use a supplied value. In order to use this translation mode, you must also specify a translationValue. This can be very useful when trying to have menu options enable and disable groups. An example usage:

<binding type="general" level="group" position="1" parameter="ENABLED" translation="fixed_value" translationValue="true" />