Granular Delay
Live-memory granular delay that records incoming audio into a rolling buffer and freezes capture with Hold.
Live-memory granular delay records incoming audio into a rolling buffer and sprays overlapping grains back into the mix for shimmering echoes and frozen textures. Hold freezes capture so the current memory keeps replaying.
Position, Grain Size, Spread, Pitch, and the grain Window shape how each grain reads from the buffer. Density sets the grain-spawn cadence: it runs free in grains per second, or locks to a patched phase clock divided by the Density Division for tempo-synced spawns. Feedback and Damping recirculate wet grains into memory, and Mix balances the granular wet path against the dry signal.
Inputs
Audio In
Stereo audio captured into the live granular delay memory.
| ID | audio |
|---|---|
| Signal | audio · audio rate · stereo |
| Unit | normalized |
| Range | -1 to 1 normalized |
| Default | 0 |
| Coercion | Implicit |
Trigger
Spawn one grain immediately and re-anchor Density scheduling without clearing active grains; when clocked, subsequent grains resume on wired phase boundaries.
| ID | trigger |
|---|---|
| Signal | trigger · event rate |
| Coercion | Implicit |
Hold
High freezes capture so incoming audio no longer overwrites memory.
| ID | hold |
|---|---|
| Signal | gate · event rate |
| Coercion | Implicit |
Position
Read position in milliseconds, or a Clock Divider phase output for synced grain memory access.
| ID | positionMs |
|---|---|
| Signal | control · control rate |
| Unit | ms |
| Range | 0 to 8000 ms |
| Default | 250 |
| Coercion | Implicit |
Grain Size
Grain length in milliseconds, or a Clock Divider phase output for synced grain length.
| ID | grainSizeMs |
|---|---|
| Signal | control · control rate |
| Unit | ms |
| Range | 1 to 500 ms |
| Default | 60 |
| Coercion | Implicit |
Spread
Random read-position spread in milliseconds, or a Clock Divider phase output for synced spread width.
| ID | spreadMs |
|---|---|
| Signal | control · control rate |
| Unit | ms |
| Range | 0 to 2000 ms |
| Default | 125 |
| Coercion | Implicit |
Feedback
Wet granular feedback written into memory while capture is live.
| ID | feedback |
|---|---|
| Signal | control · control rate |
| Unit | gain01 |
| Range | 0 to 0.95 gain01 |
| Default | 0.25 |
| Coercion | Implicit |
Mix
Dry/wet mix.
| ID | mix |
|---|---|
| Signal | control · control rate |
| Unit | mix01 |
| Range | 0 to 1 mix01 |
| Default | 0.35 |
| Coercion | Implicit |
Seed
| ID | seedMod |
|---|---|
| Signal | control · control rate |
| Unit | count |
| Range | 1 to 65535 count |
| Default | 7919 |
| Coercion | Implicit |
Density
Grains per second, or a phase clock to lock the grain-spawn cadence to the Density Division. Free (unwired) keeps the raw rate; a patched clock drives synced spawns.
| ID | density |
|---|---|
| Signal | control · control rate |
| Unit | grainsPerSec |
| Range | 1 to 200 grainsPerSec |
| Default | 20 |
| Coercion | Implicit |
Outputs
Stereo Output
Stereo granular delay output.
| ID | out |
|---|---|
| Signal | audio · audio rate · stereo |
| Unit | normalized |
| Range | -1 to 1 normalized |
| Coercion | Implicit |
Parameters
Position
Sets the center position sampled from the captured delay memory.
| ID | positionMs |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 0 to 8000 ms, step 1 |
| Default | 250 |
| Group | Grains |
Grain Size
Sets the duration of each grain.
| ID | grainSizeMs |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 1 to 500 ms, step 1, log |
| Default | 60 |
| Group | Grains |
Density
Grain spawn rate in grains per second. Ignored when a phase clock is patched into the Density input (see Density Division).
| ID | density |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 1 to 200 grainsPerSec, step 1 |
| Default | 20 |
| Group | Grains |
Density Division
Sets the grain-spawn interval when a phase clock controls Density.
| ID | densityDivision |
|---|---|
| Type | enum |
| Control | select |
| Range or Options | 1/64 (1/64), 1/32 (1/32), 1/16 (1/16), 1/8 (1/8), 1/4 (1/4), 1/2 (1/2), 1/1 (1/1) |
| Default | 1/16 (1/16) |
| Group | Grains |
Spread
Randomizes each grain position around the selected capture position.
| ID | spreadMs |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 0 to 2000 ms, step 1 |
| Default | 125 |
| Group | Grains |
Seed
Sets the repeatable random sequence used to generate grains.
| ID | seed |
|---|---|
| Type | int |
| Control | numberInput |
| Range or Options | 1 to 65535 count, step 1 |
| Default | 7919 |
| Group | Grains |
Window
Chooses the amplitude envelope applied to each grain.
| ID | window |
|---|---|
| Type | enum |
| Control | select |
| Range or Options | Hann (hann), Triangle (triangle), Gaussian (gaussian), Exponential (exponential) |
| Default | Hann (hann) |
| Group | Grains |
Pitch
Transposes every grain by a fixed number of semitones.
| ID | pitchSemitones |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | -24 to 24 semitones, step 0.1 |
| Default | 0 |
| Group | Pitch |
Pitch Random
Randomizes grain pitch around the fixed transposition.
| ID | pitchRandomSemitones |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 0 to 24 semitones, step 0.1 |
| Default | 0 |
| Group | Pitch |
Stereo Spread
Spreads grains across the stereo field.
| ID | stereoSpread |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 0 to 1 phase01, step 0.01 |
| Default | 0.35 |
| Group | Pitch |
Feedback
Feeds the granular output back into capture memory.
| ID | feedback |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 0 to 0.95 gain01, step 0.01 |
| Default | 0.25 |
| Group | Output |
Damping
Reduces high frequencies in the feedback path.
| ID | damping |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 0 to 1 phase01, step 0.01 |
| Default | 0.35 |
| Group | Output |
Mix
Blends the dry input with the granular delay output.
| ID | mix |
|---|---|
| Type | float |
| Control | slider |
| Range or Options | 0 to 1 mix01, step 0.01 |
| Default | 0.35 |
| Group | Output |
Details
| Canonical ID | fx.granularDelay |
|---|---|
| Category | effects |
| Runtime Surface | control |
| Runtime Targets | control-main-thread |
| JUCE Early Access | Supported |
| Early Access Note | Native-supported in the plugin for the current catalog/runtime support contract. |
| Audio Channel Behavior | Width Transform (alters the stereo image) |
| Stereo Width | stereoSpread (neutral 0.35, range 0–1) |