Home Nodes Channel nodes 

Expression channel node

Modify input channels by using expressions.

This CHOP allows you to modify input channels by using expressions. Up to six expressions are available. Each input channel is modified by exactly one expression, and the expressions are looped for multiple channels.

The output is the same length and set of channels as the first input, but its sample values are changed according to the expressions.

An expression is applied to each keyframe value or raw sample. There are up to six expressions. If there are more channels coming from input 0, the expressions are recycled. A repeat parameter controls how many channels to apply the first expression to before going on to the second expression.

The power of this CHOP extends when using special expression functions to access the other input CHOPs: ic(input#, channel#, index) This gets the value at the specified index of the specified channel of the specified input CHOP (all 0-relative). Others include:

  • ic() can use local variables: $C (channel #), $I (index).

  • oc(chan_idx, samp_idx) gets at the output CHOP’s samples as they are being built. Like in calculus integration, you need a value from the previous output sample to generate the next one.

  • ics(input#) gets the start index of any input CHOP. similar for ice() and icl().

  • icr() gives the sample rate.

This CHOP has Sample Rate Match options in the Common page.

Parameters

Group

Channels Per Expr

The number of channels that use the current expression before the next expression is selected.

Num Expressions

The total number of expressions that are defined.

Expr

Expression 1-6

The expressions.

Locals

V

The current value.

I

The current index.

C

The current channel (0 to NC-1). With this variable, channels can be shifted relative to one another.

NC

The total number of channels.

Examples

The following examples use this node:

Lookup

$HFS/mozilla/documents/examples/nodes/chop/lookup/LookupCHOPExample.otl