perlin produces smooth cycle-to-cycle random modulation unlike the per-event jitter of rand
Where rand gives independent random values on each query (creating jitter), perlin generates 1D Perlin noise: values that smoothly interpolate toward a new random target each cycle. The result sounds organic rather than spiky — a slowly wandering cutoff or speed rather than rapid flickering. Speed can be adjusted with fast/slow applied to perlin. perlinWith substitutes a custom pattern as the lookup axis instead of the cycle count. perlin2 and perlin2With extend to two dimensions. A common misconception is that perlin is merely a slower rand — it is structurally different: adjacent queries return nearby values rather than independent ones.
Examples
d1 $ sound “bd32” # speed (perlin + 0.5) d1 $ s “arpy32” # cutoff (perlinWith (saw * 4) * 2000) d1 $ s “bd32” # speed (perlin2 (sine4) + 1)
Assessment
Contrast the waveform shape heard from # speed rand vs # speed perlin on a dense pattern. Demonstrate slowing the modulation rate with slow 4 $ perlin.