Skip to content
Voro
  1. Audio
  2. Audio FX

Granular

Granular records the live input into a buffer and re-plays it as a cloud of short grains. Grain size, density, pitch, and spray set the texture, from a subtle shimmer behind the dry signal to a fully smeared cloud that no longer resembles the source. Freeze latches the buffer so the current moment can be held and played indefinitely.

Insert it inline on a source or an effect send. Wire audio into in and out onward. Start with Size and Density for the grain texture, add Pitch or Pitchjitter for movement, and raise Spray to scatter grain start points. Toggle Freeze to hold the buffer while you play over it.

  • Input 0: in accepts mono or stereo PCM. It is required.
  • Output 0: out emits the same shape as the input.
  • Size: grain length in milliseconds, 5 to 500.
  • Density: grains per second, 1 to 200. High density with small grains gives a smooth texture.
  • Pitch: grain transpose in semitones, -24 to +24.
  • Pitchjitter: random per-grain pitch variation.
  • Spray: random offset of each grain’s start point in milliseconds.
  • Position: how far back in the buffer grains are read from, up to 2000 ms.
  • Spread: stereo placement spread of the grains.
  • Window: grain envelope shape. hann is smooth, tukey flatter, expo percussive, gate hard-edged.
  • Reverse: chance that a grain plays backwards.
  • Feedback: feeds the output back into the buffer for evolving, recursive textures.
  • Freeze: stops writing to the buffer so the current contents loop as the grain source.
  • Mix: dry/wet blend.
  • Freeze plus a slow Position sweep scrubs through the held moment.
  • Feedback compounds quickly; small amounts already make the cloud self-sustaining.
  • Large Size with low Density gives audible overlapping echoes; small Size with high Density approaches pitch-smeared reverb.

Inputs

  • in row required
    audio_pcm_f32_mono_v1audio_pcm_f32_stereo_v1

Outputs

  • out row
    mirror_input
Size (Size) Float op('granular').par.Size
Default:
80
Range:
5 to 500
Density (Density) Float op('granular').par.Density
Default:
30
Range:
1 to 200
Pitch (Pitch) Float op('granular').par.Pitch
Default:
0
Range:
-24 to 24
Pitchjitter (Pitchjitter) Float op('granular').par.Pitchjitter
Default:
0
Range:
0 to 1
Spray (Spray) Float op('granular').par.Spray
Default:
30
Range:
0 to 500
Position (Position) Float op('granular').par.Position
Default:
200
Range:
0 to 2000
Spread (Spread) Float op('granular').par.Spread
Default:
0.5
Range:
0 to 1
Window (Window) Menu op('granular').par.Window
Default:
hann
Options:
hann, tukey, expo, gate
Reverse (Reverse) Float op('granular').par.Reverse
Default:
0
Range:
0 to 1
Feedback (Feedback) Float op('granular').par.Feedback
Default:
0
Range:
0 to 0.9
Freeze (Freeze) Toggle op('granular').par.Freeze
Default:
Off
Options:
Off, On
Mix (Mix) Float op('granular').par.Mix
Default:
0.5
Range:
0 to 1