PLUG'N SCRIPT
rapid plugin development
Tutorial
DSP
KUIML
How-to
Scripts
  • Overview
  • Tutorial
  • Reference
Layout and positioning
  • CELL
  • TABLE
Language basics
  • SKIN
  • DUMMY
  • INCLUDE
  • INCLUDE_ONCE
  • DEFINE
  • UNDEFINE
  • VARIABLE
  • LOCAL_VARIABLE
  • TEMPLATE
  • TEMPLATE_INNER_CONTENT
  • TEMPLATE_UNLOAD
  • REPEAT
Text widgets
  • TEXT
  • TEXT_FIELD
  • TEXT_EDIT_BOX
  • TOOLTIP
  • PARAM_TEXT
  • PARAM_TEXT_CONTROL
  • PARAM_TEXT_EDIT_BOX
  • PARAM_TOOLTIP
Image widgets
  • IMAGE
  • IMAGE_ACTION_BUTTON
  • IMAGE_GROUP_BOX
  • IMAGE_PARAM_BUTTON
  • IMAGE_PARAM_KNOB
  • IMAGE_PARAM_LINEAR_METER
  • IMAGE_PARAM_MENU_BUTTON
  • IMAGE_PARAM_METER
  • IMAGE_PARAM_SLIDER
  • IMAGE_PARAM_TOGGLE_SWITCH
  • XYZ_IMAGE_PARAM_JOYSTICK
Invisible controls
  • INVISIBLE_ACTION_BUTTON
  • INVISIBLE_PARAM_BUTTON
  • INVISIBLE_PARAM_KNOB
  • INVISIBLE_PARAM_MENU_BUTTON
  • INVISIBLE_PARAM_SLIDER
  • INVISIBLE_PARAM_TOGGLE_SWITCH
  • XY_PARAM_PAD
  • XY_ZOOM_SELECT_PAD
  • XYZ_PARAM_SCRATCH_PAD
  • XYZ_PARAM_CLICK_PAD
Drawing, curves & 3D
  • CANVAS
    • Graphics API
  • svg
  • CURVE_GRAPH
  • XY_CURVES_GRAPH
  • GRID
  • RULER
  • COLOR_SCALE
  • VIEW_3D
  • COLOR_SURFACE_3D
  • GRID_3D
  • GL_OBJECT_3D
    • OpenGL Cheat Sheet
  • SURFACE_COLORMAP_2DPLOT
Miscellaneous
  • SCRIPT
  • WIDGET
  • KUIML_WIDGET
  • POPUP_MENU
  • MENU_ITEM
  • MENU_SEPARATOR
  • FILE_SELECT_MENU
  • SYSTEM_ACTION_BUTTON
  • SYSTEM_PARAM_CHECKBOX
  • SYSTEM_PARAM_DROPDOWN_LIST
  • WINDOW
  • LOAD_FONT
Data model
  • STRING
  • PARAM
  • FORMULA_PARAM
  • PARAM_ANIMATOR
  • ACTION
    • Built-in action types
  • TIMER
  • ACTION_TRIGGER
  • CURVE
  • FORMULA_CURVE
  • CURVE_FROM_PARAM_OVER_TIME
  • SURFACE
  • FORMULA_SURFACE
  • SURFACE_FROM_CURVE_OVER_TIME
  • GROUP
Links and commands
  • PARAM_LINK
  • PARAM_MULTI_LINK
  • PARAM_CONNECTION
  • PARAM_TO_STRING_LINK
  • STRING_LINK
  • STRING_MULTI_LINK
  • CURVE_LINK
  • CURVE_MULTI_LINK
  • SURFACE_LINK
  • REQUIRED_OBJECTS
  • EXPOSED_OBJECTS
  • PERSISTENT_OBJECTS
Common attrubutes
  • For all elements
  • Widgets
  • Param Widgets
  • Param Controls
  • Param Info Viewers
  • Text Widgets
  • Surface Viewers
  • Curve Viewers
  • Images
  • 3D Objects
Additional information
  • All attributes
  • Attribute types
  • Cursors
  • Math formulas
  • Scripting
    • Built-in addons
  • User experience
  • Errors and solutions
  • Built-in variables
  • Runtime model
  • Parameters mapping
  • Script converter
  • LetiMix
KUIMLReferencePARAM_MULTI_LINK
September 01, 2025

PARAM_MULTI_LINK

This element connects multiple source parameters to multiple target parameters: whenever one of the 'from' parameters changes, the 'to' parameters take the 'from' parameter value modified by the 'response_curve' and mux_function functions.

For simple scenarios (single to single param link) use PARAM_LINK or PARAM_CONNECTION.

Attributes brief detailed show all inherited

Name DescriptionDefault
fromIdentifiers of the source parametersMandatoryempty
toIdentifier of the destination parametersMandatoryempty
mux_functionFunction that convert the n input values to a single value, before being converted by the response_curve functionPossible values: 'min','max','-min','-max', '>','>=','<','<=','='. Since the format of the skin is xml, you need to use xml entities for special characters (for example write '&gt;' for '>')max
response_curveResponse curve: the value computed by the mux_function is modified by the curve before being set on the destination parameterlinear
formulaFormula to transform the output of the mux function into the destination parameters. Acts as a custom response curveThis attributes overrides the "response_curve" attribute when set.The formula cannot reference external model data but 'x' (value of the 'from' param) and can only use built-in functions. If you want to reuse functions or parameters defined in the skin, please use the FORMULA_PARAM element and one or several PARAM_LINK insteadempty
Exposed: v. 1.2reverseReverse the response curveIf the curve is normalized, the transfer function of the link is:to=1-f(from),else it is:to=max-f(from)(f being the response curve)'false'
Exposed: v. 1.2enabledEnables or disables the link'true'
normalizedLinks the normalized values of the parameters instead of the absolute valuesSet this parameter to true if you want to link the parameters relatively to their ranges, and not as absolute values. 'Normalized' values are set between 0 and 1, 0 corresponding to the minimum and 1 the maximum values of the parameters'false'
Undocumented features
trigger_minWhen source param(s) value is lower than that, destination param(s) doesn't change.
trigger_maxWhen source param(s) value is higher than that, destination param(s) doesn't change.
trigger_conditionWhen this is set to "modify" the destination changes only when source param(s) are modified (not on window.loaded etc).
Common attributesRead about `common`
idIdentifier of the elementThe id of an element has to be globally unique. Don't start with a digit for AngelScript compatibility.empty
Name Value type Default Description Comment
fromList of param id separated by ';'emptyIdentifiers of the source parametersMandatory
toList of param id separated by ';'emptyIdentifier of the destination parametersMandatory
mux_functionMux functionmaxFunction that convert the n input values to a single value, before being converted by the response_curve functionPossible values: 'min','max','-min','-max', '>','>=','<','<=','='. Since the format of the skin is xml, you need to use xml entities for special characters (for example write '&gt;' for '>')
response_curveresponse curvelinearResponse curve: the value computed by the mux_function is modified by the curve before being set on the destination parameter
formulaMath FormulaemptyFormula to transform the output of the mux function into the destination parameters. Acts as a custom response curveThis attributes overrides the "response_curve" attribute when set.The formula cannot reference external model data but 'x' (value of the 'from' param) and can only use built-in functions. If you want to reuse functions or parameters defined in the skin, please use the FORMULA_PARAM element and one or several PARAM_LINK instead
Exposed: v. 1.2reverseboolean'false'Reverse the response curveIf the curve is normalized, the transfer function of the link is:to=1-f(from),else it is:to=max-f(from)(f being the response curve)
Exposed: v. 1.2enabledboolean'true'Enables or disables the link
normalizedboolean'false'Links the normalized values of the parameters instead of the absolute valuesSet this parameter to true if you want to link the parameters relatively to their ranges, and not as absolute values. 'Normalized' values are set between 0 and 1, 0 corresponding to the minimum and 1 the maximum values of the parameters
Undocumented features
trigger_minWhen source param(s) value is lower than that, destination param(s) doesn't change.
trigger_maxWhen source param(s) value is higher than that, destination param(s) doesn't change.
trigger_conditionWhen this is set to "modify" the destination changes only when source param(s) are modified (not on window.loaded etc).
Common attributesRead about `common`
ididentifieremptyIdentifier of the elementThe id of an element has to be globally unique. Don't start with a digit for AngelScript compatibility.

Examples

In comparison to PARAM_LINK this can quickly link a single source PARAM to multiple target params:

  1. <!-- create a param -->
  2. <PARAM id="color_intensity" min="0" max="1" default="0" />

  3. <!-- link single-to-many -->
  4. <PARAM_MULTI_LINK from="color_intensity" to="widgetA.background_color.r;widgetB.background_color.g;widgetC.background_color.b" />

  5. <!-- three squares -->
  6. <ROW spacing="10">
  7. <WIDGET id="widgetA" background_color="#000000" width="20" height="20" />
  8. <WIDGET id="widgetB" background_color="#000000" width="20" height="20" />
  9. <WIDGET id="widgetC" background_color="#000000" width="20" height="20" />
  10. </ROW>

  11. <!-- layout with slider -->
  12. <COLUMN width="150" v_margin="10">
  13. <TEXT value="color_intensity" />
  14. <LM_SLIDER_A param_id="color_intensity" />
  15. <PARAM_TEXT_CONTROL param_id="color_intensity" />
  16. </COLUMN>

The power of PARAM_MULTI_LINK comes in handy when you need to link several sources to a single (or multiple) targets. Here's a playground script to see how it works with various mux_functions enabled.

  1. <!-- create params -->
  2. <PARAM id="A" min="0" max="1" default="0" />
  3. <PARAM id="B" min="0" max="1" default="0" />

  4. <!-- link several-to-one trying various mux_functions -->
  5. <VARIABLE id="N" value="0" override="true" />
  6. <ROW>
  7. <REPEAT index_list="min;max;>;>=;&lt;;&lt;=;=">
  8. <COLUMN width="35" spacing="5">
  9. <TEXT value="$index$" font_size="12" />
  10. <WIDGET id="widget$N$" background_color="#5799F0" width="20" height="20" />
  11. <PARAM_TEXT param_id="widget$N$.opacity" font_size="12" />
  12. <PARAM_MULTI_LINK from="A;B" to="widget$N$.opacity" mux_function="$index$" />
  13. </COLUMN>
  14. <VARIABLE id="N" formula="$N$+1" override="true" />
  15. </REPEAT>

  16. <REPEAT index_list="-min;-max">
  17. <COLUMN width="35" spacing="5">
  18. <TEXT value="$index$" font_size="12" />
  19. <WIDGET id="widget$N$" background_color="#5799F0" width="20" height="20" />
  20. <PARAM_TEXT param_id="test$N$" font_size="12" />
  21. <PARAM_MULTI_LINK from="A;B" to="test$N$" mux_function="$index$" />
  22. <PARAM id="test$N$" min="-1" max="1" />
  23. <PARAM_LINK from="test$N$" to="widget$N$.opacity" formula="x+1" />
  24. </COLUMN>
  25. <VARIABLE id="N" formula="$N$+1" override="true" />
  26. </REPEAT>
  27. </ROW>

  28. <!-- layout with sliders -->
  29. <ROW v_margin="10">
  30. <REPEAT index_list="A;B">
  31. <COLUMN width="35">
  32. <TEXT value="$index$" />
  33. <LM_SLIDER_A param_id="$index$" />
  34. <PARAM_TEXT_CONTROL param_id="$index$" />
  35. </COLUMN>
  36. </REPEAT>
  37. </ROW>

When you have several input sources, you may get confused on how "<" and ">" mux_functions work: they compare parameters in order, so < gives 1 if A < B < C < D in the example below.

See more examples in PARAM_LINK and Params 101.


Comments

Please, authorize to view and post comments.

2020 - 2026 © Site by LetiMix · Donate  |  Plug'n Script and KUIML by Blue Cat Audio