Skip to content

Core components

Core components can be used with all files (audio, video, tinkerforge, etc.) in the graph editor.


Component that can contain other components. Use core|audio|video:container:in|out to add ports.


Base for core (not audio, video, etc.) components. No ports or controls by default. See coding guide.


Stores a property, and sends it from its output port whenever a new value is received. Also sends its value when the root container starts (eg. window opens).

  • out : ControlOut
  • value : Property : set / get value.


Output a signal (empty value) when the root container starts.

  • out : ControlOut


Tracker sequencing component, supporting 8 channels and multiple patterns. The trigger port would normally be connected to a core:timing:timer or audio:clock component.

Use Edit patterns from the component popup menu to open the pattern table editor. Use Save (CTRL-S) to update the component.

  • out-N : ControlOut : output for N channel
  • patterns : Property : pattern data
  • pattern : Property (integer 0..) : current pattern
  • position : Property (integer 0.., transient) : current row position in pattern
  • trigger : Action : send current row from outs and increment position
  • reset : Action : reset position to 0


Stores a value and sends it whenever triggered. Unlike core:property it does not automatically send on each update.

  • out : ControlOut
  • value : Property : set / get value.
  • trigger : Action : trigger output.


Loops through an array of arguments, jumping to the next each time it is triggered. Can be set to jump a (random) number of elements ahead, determined by min-skip and max-skip. Can loop continuously forwards, or ping-pong back and forth through the array.

If the array is empty, an empty string will be sent instead.

  • out : ControlOut
  • values : Property (array) : set / get values array.
  • index : Property (read-only) : current position.
  • trigger : Action : trigger output.
  • min-skip : Property (number 1..) : minimum count to move on trigger.
  • max-skip : Property (number 1..) : maximum count to move on trigger.
  • ping-pong : Property (boolean) : loop back and forth.
  • reset-on-change : Property (boolean) : reset index to 0 when values changes.
  • trigger : Action : trigger output and increment position.
  • reset : Action : reset index to 0.


Stores an array (list) of arguments, and selects and sends one randomly when triggered.

If the array is empty, an empty string will be sent instead.

  • out : ControlOut
  • values : Property (array) : set / get values array.
  • trigger : Action : trigger random output.


Add value to input.

  • in : ControlIn (number)
  • out : ControlOut
  • value : Property (number)


Multiply input by value.

  • in : ControlIn (number)
  • out : ControlOut
  • value : Property (number)


Sends a random number between minimum and minimum + range when triggered

If range is zero, the value of minimum will be sent when triggered.

  • out : ControlOut
  • minimum : Property (number)
  • range : Property (number 0..)
  • trigger : Action : trigger output.


Takes a number between x1 and x2 and scales it between y1 and y2. The input value will be clamped between x1 and x2 before scaling. x1 may be higher than x2, and y1 may be higher than y2 - this allows inverse scaling.

  • in : ControlIn (number)
  • out : ControlOut
  • x1 : Property (number)
  • x2 : Property (number)
  • y1 : Property (number)
  • y2 : Property (number)


Takes a number on its input port and sends it from its out-high port if greater than or equal to the threshold value, or from the out-low port if below the threshold value.

  • in : ControlIn (number)
  • out-low : ControlOut
  • out-high : ControlOut
  • threshold : Property (number)


Allow every count message through.

  • in : ControlIn
  • out : ControlOut
  • count : Property (integer 1..)
  • position : Property (integer 0.., read-only) : current position in count
  • reset : Action : reset position to 0 - next input will be allowed through


A gate for control signals. Stops signals getting through when inactive.

The pattern property offers rudimentary sequencing support. It accepts an array of numbers between 0 and 1. The pattern loops through with each input signal (when active). A value of 0 means the signal is discarded. A value of 1 means the signal gets through. Values in-between mean that the signal will sometimes get through - 0.5 means the signal will get through on average half of the time, 0.25 means quarter of the time, etc. An empty pattern is ignored and the value of active is used as is.

  • in : ControlIn
  • out : ControlOut : values allowed through the gate.
  • discard : ControlOut : values not allowed through the gate.
  • active : Property (boolean)
  • pattern : Property (array of number 0..1) : see description.
  • retrigger : Action : restart pattern sequence.


Stop more than one signal being sent through the component in a period of time.

  • in : ControlIn
  • out : ControlOut
  • time : Property (number 0..60) : minimum time between signals (in seconds).


Join two input signals. A signal to either input port will arm the component. A signal to the other input port will then pass through, and un-arm the component.

Repeated signals to the arming port will be ignored.

  • in-1 : ControlIn
  • in-2 : ControlIn
  • out : ControlOut
  • reset : Action : un-arm component.


Send input to all ports connected to out-1 before out-2.

  • in : ControlIn
  • out-1 : ControlOut
  • out-2 : ControlOut


Send the input signal to a control address. Primarily used for sending to controls in different roots.

  • in : ControlIn
  • address : Property (control address)


Animate to a value.

  • out : ControlOut (number)
  • to : Property (number, transient) : value to animate to.
  • value : _Property (number) : set / get current value; setting value will stop animation.
  • time : Property (number 0..60) : animation time in seconds.


Delay an input signal for a period of time.

A delay of 0 will delay the signal until the next control period (video frame, audio buffer, etc.) is processed.

  • in : ControlIn
  • out : ControlOut
  • time : Property (number 0.60) : delay time in seconds.


A simple timer. Sends a signal (empty value) every period.

  • out : ControlOut
  • period : Property (number 0..60) : timer period in seconds.