VOLTAlearn

Learn Volta / Modulation

LFOs: motion

Animate a sound with repeating modulation.

lesson 14 of 39 · about 9 minutes

Open this lesson in the workbench →

A sound that never changes is furniture. An LFO is a slow invisible hand on a knob — and in Volta it's a signal you can point at any parameter.

lfoSine @ 1/4c is a sine wave cycling once per quarter of a pattern cycle — tempo-synced, so the wobble stays in time at any bpm. @ 5Hz clocks it absolutely instead.

Point it at the filter: cutoff = const 600Hz + (lfoSine @ 1/4c |> scale [0, 1800]) * 1Hz. The scale [lo, hi] maps the LFO's swing onto a range; multiplying by 1Hz gives the number its unit.

Point a tiny one at pitch and you get vibrato: pitchMod = (lfoSine @ 6Hz |> scale [0, 8]) * 1Cents.

lfoSH is the odd sibling — sample-and-hold. It doesn't wave, it jumps to a new random value each step: the burbling robot filter of a thousand sci-fi scores.

The starting point#

The lesson opens with this song in the editor. Every edit recompiles and plays.

-- LFOs: this pad holds one frozen color forever. Put a hand on the knob.
pad = patch {
  source = saw (freq pitch) + saw (freq pitch + 8Cents),
  ampEnv = adsr 250ms 0ms 1 500ms,
  cutoff = 1200Hz,
  gain   = vel * 0.35
}

drone = play pad !"c3 ~ ab2 ~"

What to watch#

The LFO is the slow shape UNDER the fast one: the spectrum's bright edge sweeps up and down on its own clock while the notes keep their own time.

Goals#

The workbench checks these as you work; the solution is there when you want it.

  1. Put an LFO on the cutoff
  2. Sync it to the cycle with @
  3. Stretch: sample-and-hold randomness

Make it yours#

One pad, three LFOs: slow on cutoff, fast-and-tiny on pitch, medium on gain. Balance them until the pad feels alive but not seasick.

Further reading#

Macros and automation in the reference.