Link Search Menu Expand Document

Math expressions and structured objects

An expression filter producing signal traces above Object filter queries and value displays

Compare numerical mappings with queries over lists and JSON-like objects.

Try this on web

Download the example

Numerical branches

Start playback and compare each generator with its neighboring displays. Expression Value Generator evaluates cos(10. * pos)+2a; changing Param (a) shifts that signal. A sawtooth LFO feeds x*a+b in Expression Value Filter. Arraygen evaluates an expression for each index i, with n denoting the array size; the ((i+1) * pos) % 1 branch passes through Arraymap’s pow(x,3).

Other expression processes show how to return arrays and inspect xv and pxv. The seven-value filter returns five current elements, 1e3(pxv[1] - xv[1]), and xv[] (the array size). Keep the input size at least five unless you also edit those indexed expressions.

In the trigger branch, a sample-and-hold LFO feeds Micromap’s x < px. Impulse skips false values and turns the remaining messages into triggers for ADSR and Pulse View. Compare the input, boolean result and envelope displays rather than expecting audio output.

Structured-data branches

With the Jk Object filter add-on available, Free metronome triggers construction of {"foo": 123, "bar": 456.5}. Downstream queries demonstrate field selection (.foo), arithmetic (.foo + .bar + 10), nested arrays, multiple emitted results (.foo, .bar), and a pipe ([.foo, .bar] | .[0]). The arithmetic display should show 589.5.

A separate five-element Arraygen uses 100 * i + pos. Compare selected indices, slices, . (the whole input) and .[] (individual elements) in their Value displays. Edit one query at a time so the difference between an array and several messages remains visible.

No devices or media files are required. The unconnected empty audio/MIDI/value mappers and Passthrough shader illustrate port types, not an active audiovisual output. For syntax, see ExprTK expressions.