Grainer - Granular Synthesis Processor¶
Real-time granular processor for shaping live audio textures.
Overview¶
Grainer processes incoming audio with up to 128 grains and a 6-second buffer. Pitch, position, density, and randomization controls enable a wide range of textures.
Parameters¶
GRAIN LENGTH — how long each grain’s read spans in the buffer (0–100% on panel).
DENSITY — % chance each voice fires a grain when its cycle wraps.
PITCH (-1.0–1.0, default 0.0) - Playback pitch (displayed as ⅓x–3x) - Repitch (default, context menu Pitch knob → Repitch): turning the knob/CV updates currently playing grains immediately. The random/quantize ratio relative to the base pitch is locked per grain. - Per-grain (Pitch knob → Per-grain): only new grains use the updated pitch; playing grains keep their trigger pitch until they finish (gradual texture crossfade). Reverse and Grain Length remain live-tracked on active grains. - Examples: - Value = 0.0: 1x - Value = 1.0: 3x
PITCH RANDOM (0.0–3.0, default 0.0) - Random pitch range (±octaves) - The random offset is sampled at trigger time and locked for the duration of the grain. - Examples: - Value = 0.0: No randomization - Value = 3.0: Large randomization
PITCH QUANTIZE (0.0–1.0, default 1.0) - Pitch quantization amount (snaps to ratios) - LED brightness shows closeness to simple ratios - Examples: - Value = 0.0: Free pitch - Value = 0.5: Partial snapping (e.g. 1.0x/1.5x/2.0x) - Value = 1.0: Strong ratio snapping - Interval guide (upward direction):
Quant value (q) |
Common upward ratios | Semitones (approx.) | Interval feel (rough) |
|---|---|---|---|
1.0 |
2.0x, 3.0x |
+12.00, +19.02 |
Octave / Octave + perfect fifth |
0.5 |
1.5x, 2.0x, 2.5x, 3.0x |
+7.02, +12.00, +15.86, +19.02 |
Perfect fifth to octave+fifth range |
around 0.333 |
1.333x, 1.666x, 2.0x, 2.666x |
+4.98, +8.84, +12.00, +16.98 |
Perfect fourth / near minor seventh / octave / near 11th |
0.25 |
1.25x, 1.5x, 1.75x, 2.0x |
+3.86, +7.02, +9.69, +12.00 |
Near major third / fifth / near major sixth / octave |
- Notes:
- Internally this is step quantization:
ratio = floor(rawRatio / q) * q(not fixed semitone quantization). - Semitone conversion uses
12 * log2(ratio).
WINDOW SHAPE (-1.0–1.0, default 0.0) - Hann window bias - Examples: - Value = -1.0: Fast attack bias - Value = 1.0: Slow attack bias
POSITION (0–100%, default 100%) - Read position - Examples: - Value = 0: Oldest - Value = 100: Newest - Note: When pitch is significantly increased and Grain Length is large, the actual read position may differ from the displayed knob value by a small amount (up to ~8%) to avoid click artifacts caused by reading across the ring buffer seam.
POSITION RANDOM (0.0–1.0, default 0.5) - Position random amount - Examples: - Value = 0.0: No randomization - Value = 1.0: Full randomization
STEREO SPREAD (0.0–1.0, default 0.5) - Stereo width - Examples: - Value = 0.0: Mono - Value = 1.0: Full width
REVERB (0.0–1.0, default 0.0) - Reverb amount - Examples: - Value = 0.0: Off - Value = 1.0: Max
INPUT GAIN (0.0–1.0, default 0.5) - Input gain (displayed as -18dB to +6dB) - Examples: - Value = 0.0: Mute - Value = 1.0: Max
DRY/WET (0.0–1.0, default 0.5) - Dry/wet mix - Examples: - Value = 0.0: Dry only - Value = 1.0: Wet only
REVERSE (button) - Toggle reverse playback - Live-tracked: toggling mid-playback flips the direction of currently playing grains on the next sample. - Examples: - OFF: Forward - ON: Reverse
FREEZE (button) - Freeze buffer - Examples: - OFF: Recording - ON: Frozen
I/O / CV¶
- Audio In: L/R
- Audio Out: L/R
- CV In: Grain Length, Density, Pitch(1V/oct), Pitch Random, Position, Position Random, Stereo Spread, Volume, Dry/Wet, Reverb, Window Shape
Context Menu¶
Top-level entries, in order:
- Soft clip — Toggle soft clipping on the output (default: OFF)
- Pitch knob ▶ — Repitch (default) or Per-grain (trigger-locked pitch on active grains)
- Grain Voices ▶ — Submenu to pick polyphony count (4 / 8 / 16 / 32 / 48 / 64 / 96 / 128). The right-side hint shows the current value
- SSD1306 preview ▶ — Submenu for the OLED preview used when porting to Daisy
- Enable SSD1306 128x32 preview: turn the on-panel preview on/off
- Tint (White / Blue / Amber / Yellow/Blue (2-color)): preview color