The Oscillator Node (OscillatorNode) generates continuous, repeating mathematical periodic waveforms for procedural motion, dimmer chases, and color cycling.

Oscillator Node


🌊 Waveforms & Timing Synchronization

Create with a selected waveform

In Add Node, search Oscillator to list all six waveforms, or search Sine, Saw, Square, Impulse, Triangle or Random directly. Click a result such as Random (Oscillator), or highlight it and press Enter, to create the oscillator with that waveform already selected.

Add Node search showing six Oscillator waveforms with the node type after each name

The compact Oscillator entry with an empty search still starts with Sine. Random (Oscillator) uses the usual periodic random behavior; enable Generate once on the node if you need a value held until the next graph start. You can change Shape afterward.

1. Available Waveforms

  • Sine: Smooth, organic harmonic oscillation for ambient dimmers and slow head bobs.
  • Sawtooth / Ramp: Linear sweep with instantaneous drop/rise for sequential chasers.
  • Square: Abrupt on/off alternation for sharp strobes and blinder flashes.
  • Triangle: Linear bi-directional sweep.
  • Noise / Random: Procedural sample-and-hold random flicker.
  • Impulse: Single narrow spike per cycle.

2. Synchronization Modes

  • Hertz (Hz): Free-running frequency specified in cycles per second (0.01 Hz – 50 Hz).
  • BPM Sync: Locks oscillation speed directly to the project's master audio tempo (x16, x8, x4, x2, 1/1, /2, /4, /8, /16).

🔀 Single Value vs Sequence Spread

  • Single Value: Outputs one synchronized number to all fixtures simultaneously.
  • Sequence Spread: Generates an array of phase-offset values across a configured sequenceLength (e.g. 8 fixtures), creating sweeping wave chases down a truss line automatically.

🔌 Socket Outputs Reference

Output Socket Data Type Range Description
Value Number 0.0 – 1.0 Primary instantaneous oscillator amplitude.
Sequence Array Array of Number Phase-distributed values for multi-fixture arrays.

Random timing and sequence spread

The Random shape draws a new value once per completed cycle, so Frequency or BPM controls the update rate. In Sequence mode, Spread 0 redraws all fixture values independently. Spread 1 inserts a new value at the front and shifts previous values along the sequence. Intermediate settings mix independent redraws with following the previous fixture's earlier value.

Generate once per graph start

For a random value that stays fixed while the graph runs, choose Random and turn on Generate once. The switch is off by default, so existing graphs keep their periodic random behavior.

Oscillator Random with Generate once enabled and Single Value output

With Single Value output, the node draws one value when the graph starts and holds it until the next start. Stopping and starting the graph, or disabling and enabling it, draws again. This also works inside groups. As with Math.random(), a new draw can happen to produce the same value.

Frequency, Phase, and BPM timing controls are hidden while Generate once is on. Baseline, Amplitude, Min, and Max still shape and limit the held value. With the default settings, the result is between 0 and 1; for example, Baseline 0.25 and Amplitude 0.25 give a random value between 0 and 0.5.

With Sequence output, each element is drawn independently once and the complete sequence is held. Sequence Length sets the element count (0 uses 64); changing the count rebuilds the sequence. Spread is hidden because there are no repeated random steps in this mode. Turn Generate once off to restore periodic updates and the saved timing and Spread settings.

For complete coordinated Pan/Tilt paths, use the dedicated Movement node.