Penumbra

Live Granular Processor
The half-shadow between sound and texture
Version 1.5 - User Manual
by Apophenia

Contents

1. Introduction

Penumbra is a real-time granular processor (VST3) that continuously captures incoming audio into a circular buffer and scatters it back as overlapping grains - tiny windowed slices of the recorded sound. By controlling grain size, density, position, pitch, and spread, you can transform any incoming signal into evolving textures, lush pads, rhythmic stutters, or impossible atmospheres.

The plugin combines a live grain engine with two tempo-syncable LFOs, an envelope follower, a built-in stereo delay and reverb, MIDI triggering, burst mode, an interactive XY pad, and a motion recorder that captures and replays your XY gestures. Everything is designed to run in real time without pre-loading samples - whatever you feed it becomes the material.

Key Features

How Granular Synthesis Works

Penumbra writes incoming audio continuously into a circular buffer of configurable length. A scheduler then triggers short overlapping grains read from anywhere in that buffer. Each grain is shaped by a window function (a smooth envelope that fades it in and out), independently pitched, panned, and filtered, then summed with all the other live grains into the output. By layering many overlapping grains per second - sometimes dense clouds, sometimes sparse fragments - the result ranges from subtle thickening to complete deconstruction of the source.

2. Installation

System Requirements

Install Steps

  1. Close your DAW.
  2. Copy Penumbra.vst3 to your VST3 plugin folder (typically C:\Program Files\Common Files\VST3 or your custom VST3 path).
  3. Restart your DAW - it should rescan and detect Penumbra under the Apophenia manufacturer.
  4. Insert Penumbra as an effect on an audio track or bus.
Penumbra is a stereo effect plugin. It does not require a sidechain input - all granular processing operates on the main input bus. To use it as a sound generator, feed it a sample, drum loop, or any audio source and tweak from there.

3. Quick Start

Five steps to hear Penumbra in action:

  1. Insert Penumbra on a track containing audio (a pad, drum loop, vocal, anything sustained works best).
  2. Set Dry/Wet to around 60–80% so you hear plenty of the granular signal.
  3. Hit play. You should hear granular streams - if not, turn Grain Density up.
  4. Sweep Position from left to right - you are scrubbing through the live buffer.
  5. Push Pitch Random up to about 6–12 semitones for evolving texture.
For long, evolving pads, enable Freeze. Penumbra stops writing new audio to the buffer and infinitely loops the frozen material - perfect for capturing a moment and sustaining it indefinitely while you sculpt with the other controls.

4. Interface Overview

Penumbra’s interface is organized into functional sections, each grouping related controls. The top of the window shows the plugin name, version, and global status indicators (Freeze, MIDI, Delay, etc.).

Section Layout

Signal Flow

INPUT CIRCULAR BUFFER GRAIN SCHEDULER
PITCH SHIFT WINDOW GRAIN FILTER SUM
FEEDBACK GLOBAL FILTER DELAY REVERB DRY/WET OUTPUT

5. Parameter Reference

All controls support right-click for context menu (set default, enter value, lock from randomize). Hover any control to see its current value and a brief description in the status bar.

5.1 Grain Engine

Grain Engine core

The heart of Penumbra. These controls shape how grains are sliced and scheduled.

5.2 Buffer & Position

Buffer & Position read-head

5.3 Pitch & Quantization

Pitch tuning

5.4 Window & Filter

Window Shape tone

The envelope applied to each grain. Different shapes give different timbres:

Global Filter tone

5.5 Stereo

Stereo Width image

5.6 Freeze, Reverse, Feedback

Freeze / Reverse / Feedback sustain

Freeze + high Feedback + slow Position drift creates evolving drone textures that never repeat. Great for ambient beds.

5.7 LFO 1 & 2

LFOs modulation

Two independent low-frequency oscillators. Each has the same controls:

5.8 Envelope Follower

Envelope Follower modulation

The envelope follower tracks the input signal’s amplitude and uses it to drive whatever destination you select - e.g., open the filter on louder input, narrow the spread on quiet sections, etc.

5.9 Delay

Stereo Delay time

5.10 Reverb

Reverb space

5.11 MIDI Trigger

MIDI Trigger midi

5.12 Burst Mode

Burst Mode rhythm

Useful for stuttered hits, rolled drum textures, or rhythmic granular bursts triggered by MIDI.

5.13 Mix & Output

Output levels

A built-in soft limiter sits on the output to protect against clipping when feedback or many overlapping grains push the signal too hot.

6. XY Pad & Motion Recorder

The XY pad gives you simultaneous control over two parameters with mouse or touch. Both axes can be re-assigned via right-click menu on the pad.

Motion Recorder

Below the XY pad, a record button captures your gesture motion. Once recorded, the playback button replays the gesture in a loop, automating the two assigned parameters with whatever timing and shape you played. Useful for hands-free evolving performances or for layering automation that would be tedious to draw.

7. Presets

Penumbra ships with a curated factory preset bank covering pads, textures, stutters, rhythmic grains, ambient drones, and creative experiments. Use the preset browser (header bar) to step through presets with the < and > arrows or select directly from the dropdown.

User Presets

User presets are saved as XML files in %APPDATA%/Penumbra/Presets/ with the extension .gfxpreset. Click Save in the preset browser, give your preset a name, and it will appear under the User category in the dropdown.

Randomize & Parameter Locks

The RND button randomizes most parameters within musically useful ranges. To prevent specific parameters from being randomized, hold Ctrl and click any knob to lock/unlock it - locked knobs are marked visually and skipped during randomization.

8. Tips & Tricks

Lush evolving pad

Feed Penumbra a sustained chord. Set Grain Size around 200 ms, Density 15, Position Random 30%, Stereo Spread 60%, Pitch Random 7 st with Minor scale quantization. Enable Freeze. Add Reverb Mix 40% and slow LFO 1 on Position. Endless texture from a single chord.

Rhythmic stutters

Feed a drum loop. Grain Size 50 ms, Density 30, Window = Trapezoid, Position Random 5% (tight). Sync LFO 1 to 1/16, route to Position with high depth. The output becomes a beat-synced glitch loop locked to your DAW tempo.

Tape echo emulation

Long Grain Size (350 ms), low Density (3–5), Buffer Length 3 s, Position near 80%, Pitch −1 st, Feedback 30%, Filter cutoff 4 kHz LP. Sounds like a warm degraded tape delay.

Self-oscillating drone

Freeze on, Feedback around 85%, very small Grain Size, low Density. Penumbra will slowly self-evolve into a sustained drone with no original input needed once primed. Use Filter Cutoff and Pitch Shift to sculpt it. Lower the output gain first - this can get loud fast.

Be mindful of CPU at very high Grain Density (40+) combined with long Grain Size - you can easily have 50+ overlapping grains active. If you need to save CPU, lower density or use shorter grains.

A. Appendix: Full Parameter Reference

Grain Engine

ParameterIDRangeDefault
Grain SizegrainSize10 – 500 ms100 ms
Grain DensitygrainDensity1 – 50 grains/sec10
Positionposition0 – 100%50%
Position RandompositionRandom0 – 100%0%
Stereo SpreadstereoSpread0 – 100%0%
Buffer LengthbufferLength0.1 – 30 s5 s
Window ShapewindowShapeHann / Tri / Trap / BlackmanHann

Pitch

ParameterIDRangeDefault
Pitch ShiftpitchShift±24 st0
Pitch RandompitchRandom0 – 24 st0
Pitch ScalepitchScaleOff / Chrom / Maj / Min / Pent / Blues / WTOff

Filter & Tone

ParameterIDRangeDefault
Filter CutofffilterCutoff20 Hz – 20 kHz20 kHz
Filter TypefilterTypeLP / HPLP
Grain FiltergrainFilter0 – 100%0%

Sustain

ParameterIDRangeDefault
FreezefreezeOn / OffOff
ReversereverseOn / OffOff
Feedbackfeedback0 – 100%0%

LFOs

ParameterIDRangeDefault
LFO1 Rate / LFO2 Ratelfo1Rate / lfo2Rate0.01 – 20 Hz1 Hz
LFO1 Depth / LFO2 Depthlfo1Depth / lfo2Depth0 – 100%0%
LFO1 Shape / LFO2 Shapelfo1Shape / lfo2ShapeSine / Tri / Saw / Sqr / S&HSine
LFO1 Target / LFO2 Targetlfo1Target / lfo2TargetPosition / Size / Pitch / Filter / SpreadPosition
LFO1 Sync / LFO2 Synclfo1Sync / lfo2SyncFree / 1/1 … 1/32Free

Envelope Follower

ParameterIDRangeDefault
Env AmountenvAmount0 – 100%0%
Env TargetenvTargetFilter / Pitch / Size / Spread / Dry-WetFilter

Delay

ParameterIDRangeDefault
Delay TimedelayTime10 – 2000 ms300 ms
Delay FeedbackdelayFeedback0 – 95%30%
Delay MixdelayMix0 – 100%0%
Ping PongdelayPingPongOn / OffOff

Reverb

ParameterIDRangeDefault
Reverb DecayreverbDecay0.1 – 10 s1.5 s
Reverb DampingreverbDamping0 – 99%30%
Reverb MixreverbMix0 – 100%0%

MIDI & Burst

ParameterIDRangeDefault
MIDI TriggermidiTriggerOn / OffOff
Velocity SensvelocitySens0 – 100%50%
Burst ModeburstModeOn / OffOff
Burst CountburstCount2 – 84

Mix & Output

ParameterIDRangeDefault
Input GaininputGain−24 to +12 dB0 dB
Dry/WetdryWet0 – 100%50%
Output GainoutputGain−24 to +6 dB0 dB
Stereo WidthstereoWidth0 – 200%100%