Input node
LFO
Deterministic low-frequency oscillator with 7 waveforms — sine, cosine, triangle, sawtooth, square, sample & hold, smooth noise. The value is a pure function of the shared patch clock: equal settings always produce identical output.
Inputs
| Port | Type | Default |
|---|---|---|
| WaveformThe shape of the modulation: sine, triangle, sawtooth, square, sample and hold, smooth noise or cosine. Values outside the list give a sine. | int | 0 |
| Rate ModeWhether the speed is typed as a frequency in Hz or as a period in seconds. Anything other than Period is read as Frequency. | int | 0 |
| FrequencyCycles per second, used in Frequency mode. Not clamped: 0 freezes the value, negatives run the wave backwards, and past about 30 the motion is faster than the frame rate. | float | 1.0 |
| PeriodSeconds for one full cycle, used in Period mode. Not clamped; negatives run backwards and a period of practically zero freezes the output. | float | 1.0 |
| AmplitudeHow far the value swings around the Offset. Any value works; negatives simply invert the wave. | float | 1.0 |
| OffsetThe center the wave swings around — the value you get at rest. Any value works, so this is where you place the modulation in the target's range. | float | 0 |
| PhaseShifts where in the cycle the wave starts, in degrees. Any value works and wraps every 360; use 90 to turn a sine into a cosine. | float | 0 |
| ShapePulse width for the square, or lean for the triangle — 0.5 is symmetric. Clamped to 0.001…0.999, and only used by those two waveforms. | float | 0.5 |
| ModeLoop runs forever, Once plays a single one-shot and holds, Ping-Pong mirrors every second cycle. Values outside the list run as Loop. | int | 0 |
| RestartA rising edge replays the one-shot from the start. Only Once mode uses it; Loop and Ping-Pong never need retriggering. | bool | false |
| Time SourceInternal follows the shared patch clock, so identical settings always agree. External uses your own clock cable, and Free glides smoothly through live rate changes at the cost of lock. | int | 0 |
| TimeYour own clock in seconds, used only with Time Source set to External. Any value works — scrubbing it or running it backwards behaves correctly. | float | 0 |
| UnipolarOn, the wave rides from Offset up to Offset plus Amplitude instead of swinging both ways — the right choice for sizes, opacities and anything that must not go negative. | bool | false |
Outputs
| Port | Type |
|---|---|
| Value | float |
| PhaseShifts where in the cycle the wave starts, in degrees. Any value works and wraps every 360; use 90 to turn a sine into a cosine. | float |
| Cycle | int |
| Trigger | bool |
How It Works
With the default Internal time source the LFO computes cycles = patchTime × frequency and derives the waveform value from that — no per-node state, no drift. Two LFOs with the same settings agree exactly forever; a Sine + Cosine pair from two separate nodes draws a mathematically true circle. External mode uses any float as the absolute clock (audio position, EEG time — scrubbing behaves correctly); Free (Glide) opts into per-node phase accumulation for performance-style rate morphing.
Use Cases
- Breathing visuals — drive Scale or Opacity of any generator with a slow sine.
- Circular motion — Sine → X, Cosine → Y with identical settings: a perfect circle.
- Rhythmic triggers — the one-frame Trigger pulse per cycle chains into Counter / Do Once / Integrator.
- Stepped randomness — Sample & Hold and Smooth Noise levels come from per-cycle hashes, so patterns replay identically.
Open LFO in the interactive catalog →
LFO is one of 381 nodes in Grafit Pro.
Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.