Binding is a Parameter Mode that ties two or more parameters' values together, where changing the value of any one of the bound parameters changes all of them. The actual value is stored in one place, whichever value is at the top of the bind chain, called the bind master. Parameters can be bind references, bind masters, or both.
A bind chain is a tree of interconnected values that are linked by binding. A bind master can have multiple bind references, each of which can also be the bind master for other parameters. In other words, you can have one or more bind references bound to one bind master, and you can also set up a chain where parameter C is the bind reference of parameter B, which is the bind reference of parameter A.
A bind reference is a parameter in a fourth "Bind" Parameter Mode, and will show up as purple text in parameter dialogs. A bind reference's bind expression will resolve to its master. It can only be changed via its UI, its
val property, or its bind master. A bind reference does not use its constant, expression or export parameter modes.
The bind master is at the top of the bind chain and holds the current value. A Bind master parameter can have exports and expressions and generally works like any other parameter, but its value can also be changed indirectly by the bind references. Note: If a bind master parameter is changed by its references, it will enter Constant Parameter Mode.
Bind master table cells can be changed by changing the cell value or bind reference parameter values. Bind master channels, only available on the Bind CHOP, can be changed by changing the CHOP's channel inputs or by changing the bind reference parameter values.
Setting Up by Using Bind Expressions
To set up bind references, set a parameter's Parameter Mode to Bind, then add a bind expression that points to the bind master, like
op('lfo1').par.phase. The bind expression is accessed by expanding the parameter and typing into the lower entry field. The upper text entry area (available in some parameters) is used for changing the parameter's actual value, similar to constant mode. Setting up binding to table cells or bindCHOP channels is similar. Enter an expression to the object in the bind expression, e.g.
You can also set the bind expression using python:
Par.bindExpr = string
Setting Up by Dragging
You can also set up binding between parameters by dragging. To bind parameters using the mouse, always drag the bind master to the bind reference. Drag the parameter name from the bind master's parameter dialog into the parameter name or entry field of the bind reference parameter. In the case of multi-value parameters, drag the name of the bind master onto the name of the bind reference. Once you have done this, select Bind from the popup menu that appears.
Binding Custom Menu Parameters
When binding a custom menu parameter to another menu parameter, you will usually want to duplicate the options in the other menu. This is easily achieved using the
menuSource member. Using the Component Editor Dialog (or Python), write an expression in the custom parameter's
menuSource that points to the parameter whose menu you want to duplicate. Note: this is done automatically when you drag a menu parameter into the Component Editor's parameter area and choose a bind or reference option in the pop-up menu.