LFO

Read with AI
All docs in one file (llms-full.txt)
LFO

An LFO that outputs a value changing periodically in sync with the tempo. The output is waveform(0-1) × Amp + Offset. In other words, the bottom is Offset and the top is Offset + Amp (with Amp at 1 and Offset at 0, that is 0-1).

Clock source (chosen from a dropdown)

  • GlobalTempo — syncs to the application’s global tempo (BPM). Phase drift is corrected automatically at beat boundaries, and Resync returns the phase to 0
  • AbletonLink — uses Ableton Link’s continuous beat directly
  • Free — not tempo-synced. FreeRate is the number of cycles per second (equivalent to Hz; negative values are treated as 0)

The length of one cycle is chosen from a dropdown, with seven steps: 1/4 beat, 1/2 beat, 1 beat (default), 2 beats, 1 bar, 2 bars, 4 bars. In Free mode the division is not used.

Waveforms (five)

All of them output 0-1.

  • Sine — the start of the beat is the trough. It rises from the bottom, crests, and comes back (inverted cos)
  • Saw — a straight line from 0 at the start of the beat up to 1
  • Square — 1 while the phase is below PulseWidth, 0 after that (PulseWidth only affects Square; clamped to 0-1)
  • Triangle — a 0→1→0 triangle
  • SampleHold — a new random value each cycle, held for one cycle

Notes on the ports

  • PhaseOffset — the unit is “cycles”. 1.0 shifts by exactly one cycle, so you can do things like offsetting several LFOs in 0.25 steps
  • Cycle Trigger — a trigger output that fires the moment the phase completes a cycle (the same timing as SampleHold’s random value update)

The node UI shows a scope indicating the current waveform and phase. For managing the overall tempo, see GlobalTempo.

Video

Input ports

Port IDType
Ampfloat
Offsetfloat
PhaseOffsetfloat
PulseWidthfloat
FreeRatefloat

Output ports

Port IDType
Valuefloat
Cycle Triggertrigger

Scriptable members

PathType
ampInputfloat
offsetInputfloat
phaseOffsetInputfloat
pulseWidthInputfloat
freeRateInputfloat
divisionIndexint

Synapse Apps (scripting)

await synapse.modules.create({ type: "LFO" })

Pages linking here

Also referenced from