Oscillator
Generates a repeating waveform that cycles across the frame's points. Use it as the primary building block for motion, modulation, and pattern generation. Wire oscillators into position, color, scale, or any other parameter.
The waveform shape (sine, triangle, square, saw) is set on the node itself.
Inputs
| Port | Type | Default | Range | Description |
|---|---|---|---|---|
| Cycles | Scalar | 1.0 | 0–32 | Number of full waveform cycles across the frame |
| Phase | Scalar | 0.0 | 0–1 | Shifts the waveform start position |
| Level | Scalar | 1.0 | 0–1 | Output amplitude multiplier |
| Slope | Scalar | 0.0 | −1–1 | Reshapes the waveform curve: positive values sharpen peaks, negative values flatten them |
| Pulse Width | Scalar | 0.5 | 0–1 | Controls the duty cycle of square waves |
Outputs
| Port | Type | Description |
|---|---|---|
| Out | Scalar | Main waveform output |
| 90° | Scalar | Quadrature output: the same waveform shifted 90° ahead |
| Phase | Scalar | Raw phase position, wrapped to 0–1 |
Controls
Waveform: Sine, Triangle, Square, or Saw. Changes the shape of the generated wave.
Ideas
- Wire two oscillators with different cycle counts into a Parametric Curve's X and Y inputs to create Lissajous figures. Try cycles 2/3 or 3/5 for classic patterns.
- Use the 90° output for instant circular motion. Patch Out to X and 90° to Y on a Parametric Curve for a perfect circle without needing the Circle node.
- Modulate Pulse Width with a slow second oscillator to evolve square-wave textures over time.
- Feed Slope with another signal to reshape waveforms dynamically: high slope values produce spiky peaks, low values create soft plateaus.
Tips
- All inputs are per-point, so you can modulate cycles or phase along the frame for complex waveshaping.
- The 90° output is only computed when something is connected to it, so there's no cost if unused.
Related
- Phasor: continuous ramp, useful as a phase source
- Parametric Curve: wire oscillators here for parametric shapes
- From Polar: convert oscillator output to circular coordinates
- Multiply Add: remap oscillator range to fit your target