Files
Cagire/docs/lfo.md

1.3 KiB

LFO & Ramps

Generate time-varying values synchronized to the beat for modulation.

Ramp

The ramp word creates a sawtooth wave from 0 to 1:

0.25 1.0 ramp  ( one cycle per 4 beats, linear )
1.0 2.0 ramp   ( one cycle per beat, exponential curve )

Stack: (freq curve -- val)

Shortcut Ramps

0.5 linramp   ( linear ramp, curve=1 )
0.25 expramp  ( exponential ramp, curve=3 )
2.0 logramp   ( logarithmic ramp, curve=0.3 )

Triangle Wave

0.5 tri  ( triangle wave 0→1→0 )

Perlin Noise

Smooth random modulation:

0.25 perlin  ( smooth noise at 0.25x beat rate )

Range Scaling

Scale a 0-1 value to any range:

0.5 200 800 range  ( 0.5 becomes 500 )

Examples

Modulate filter cutoff:

"saw" s
  0.25 1.0 ramp 500 2000 range lpf
.

Random panning:

"hat" s
  0.5 perlin -1 1 range pan
.

Words

Word Stack Description
ramp (freq curve -- val) Ramp 0-1: fract(freq*beat)^curve
linramp (freq -- val) Linear ramp (curve=1)
expramp (freq -- val) Exponential ramp (curve=3)
logramp (freq -- val) Logarithmic ramp (curve=0.3)
tri (freq -- val) Triangle wave 0→1→0
perlin (freq -- val) Perlin noise 0-1
range (val min max -- scaled) Scale 0-1 to min-max