GSX - Real-Time Granular Synthesis
Overview
GSX is a granular synthesis module inspired by Barry Truax’s pioneering GSX system (1985-86). It generates dense textures from hundreds of short sound events called grains, with real-time control over temporal, spectral, and spatial parameters.
As far as I am aware, this is the only Granular module on VCV rack that uses purely ‘synthetic’ grains, meaning that each grain’s waveform is created within the module itself. Synthetic granular synthesis was the first form as imagined by Iannis Xenakis and first fully realized by Curtis Roads in the mind 1970s. Truax’s GSX was the first synthetic granular synthesizer that could generate grains in real-time. He also pioneered real-time granulation synthesis which creates grains from arbitrary sound material. Today, granulation has more or less eclipsed synthetic granular synthesis, but it is interesting to play with the synthetic approach as well. Road’s Point Line Cloud is one example of the complexity and interest that is possible with synthetic granular synthesis (to say nothing of Truax’s Riverrun).
I’ve taken a few liberties in how the VCV GSX interprets Truax’s original design, and I make no real claim that it is a reproduction. This version is based upon his description of the capabilities in a video hosted on his website. I’ve further modified things by adding a VCA in place of the original’s ramp function support. This allows more varied envelopes in addition to the ramp.
Frequency is supposed to be 1V/Oct, but the frequency range setting will mess with this when set to anything greater than zero, so I didn’t label it as such.
Truax’s GSX also supported FM, but I’ve not included support for that here.
Parameters
Each of the 9 parameters has:
- Dedicated control knob
- CV input with attenuator
1. Frequency
- Range: 50 Hz to 2000+ Hz
- Function: Average frequency of generated grains
- Notes: Center frequency around which grains are generated
2. Streams
- Range: 1 to 20 streams
- Function: Number of simultaneous grain generators
- Notes: More streams = denser texture; affects CPU load
3. Shape
- Range: Continuous morphing or stepped selection
- Function: Grain waveform (Sine → Triangle → Sawtooth → Square)
- Notes: Sine = mellow textures; Square/Saw = rich harmonic content
4. Range
- Range: 0 Hz to 500+ Hz
- Function: Frequency deviation/bandwidth around the center frequency
- Notes: 0 Hz = all grains at same frequency; larger values = wider spectral spread
5. Duration
- Range: 1 ms to 50 ms (microsound domain)
- Function: Length of individual grains
- Notes: Shorter = percussive; longer = smoother; affects timbre due to time-domain/frequency-domain relationship
6. Delay
- Range: 0 ms to 200+ ms
- Function: Time between successive grains
- Notes: 0ms = dense/continuous texture (quasi-synchronous); larger values = rhythmic/detached grains
7. Density
- Range: 1 to 1000+ grains per second (per stream)
- Function: Rate of grain generation
- Notes: Higher density = more continuous sound; lower density = sparse, scattered grains
8. Variation
- Range: 0% to 100%
- Function: Amount of random/stochastic variation applied to grain parameters
- Notes: 0% = quasi-synchronous (regular/pitched); 100% = fully asynchronous (stochastic texture)
9. Spread
- Range: 0% to 100%
- Function: Stereo width and spatial distribution of grain streams
- Notes: 0% = mono (center); 100% = wide stereo field
Outputs
Left Out
- Stereo left channel output
Right Out
- Stereo right channel output
Synthesis Modes
Quasi-Synchronous Mode
- Achieved with low Variation and regular Delay values
- Creates pitch through amplitude modulation
- Grain duration determines modulation frequency (e.g., 20ms = 50Hz modulator)
Asynchronous Mode
- Achieved with high Variation values
- Creates stochastic, cloud-like textures
- No clear pitch relationship
Parameter Interaction Examples
Dense Texture (Cloud):
- Streams: 15-20, Duration: 10-30ms, Delay: 0-5ms, Variation: 60-100%, Spread: 80-100%
Quasi-Synchronous (Pitched):
- Streams: 8-12, Duration: 20ms, Delay: 20ms, Variation: 5-15%, Spread: 30-50%
Sparse Granular (Detached grains):
- Streams: 3-8, Duration: 5-15ms, Delay: 50-200ms, Variation: 40-80%, Spread: 60-100%
Rhythmic Pulse:
- Streams: 10-15, Duration: 10-20ms, Delay: 100-150ms, Variation: 0-10%, Spread: 20-40%
Historical Context
Based on Barry Truax’s GSX system developed in 1985-86 for the DMX-1000 digital signal processor. First real-time granular synthesis implementation, used to create the seminal work “Riverrun” (1986).