Grain Galaxy allows you to freeze three granular buffers and use their contents as oscillators, playing them across a keyboard, or to pass live audio through and use the keys and other controls to manipulate it in real time.
When the grain size is small (~40 ms), the grains act very much like traditional oscillators — adjusting grain size itself will change the pitch of the oscillators, like a tune control, since they begin to oscillate faster and faster — while larger grains will function more like samples begin swept across at different pitch/speeds. Used to process live audio, this can lead to all sorts of fun mangling, while frozen buffers can be morphed between samples and oscillators with a twist of the mod wheel.
Audio passes into the granular modules (set to 7 grains each; this was the most density I could achieve without angering the CPU; the patch is _very_ CPU dynamic), then through VCAs, before exiting the patch.
The audio path is mono in (left) with two outputs: the left output is the granular synth, while the right output is the unaffected dry signal. This is so you can process them independently, if you would like.
MIDI is set to channel 1; all of the MIDI inputs (note in, mod wheel, aftertouch, pitch bend) are found on the same page, so if you would like to adjust the channel, it should be easy to do.
Left — freezes the granular buffers (there is also a UI button on the control page you can use to do this)
Middle — bypasses the VCAs; when the VCAs are bypassed, the envelope won’t open or close them, allowing audio to pass through without the need to press keys (the keys can still be used to change pitch)
Across the top left are traditional granular controls: size, position, density, and texture. The ways in which they affect the sound are multitudinous, so I’m not going to spend a lot of time on them except to say how they interact with other controls:
Grain size sets the minimum range of the mod wheel, with the maximum always being the largest grain size (1000 ms).
Position sets the minimum for position modulation (more on this in a moment).
On the second row on the right are the controls for the VCA envelopes: attack, decay, sustain, release. These use linearly controlled ADSRs, and each timed stage is set to 15 seconds at maximum.
Returning to the left side are the controls for position modulation. Modulating the position of the buffer can produce a lot of dynamic sounds. The range of the modulation is set by two controls: position on the top row sets the minimum, while “Pos attenuate,” below it sets the maximum.
There is a control called “Pos modulation.” As you turn it, the UI button beside it will sweep through four colors; as it changes colors, you move to different modulation options:
First, the grain position is set by the position control, with no modulation.
Second, the grain position is set by an attack/decay envelope. The envelope can be looped (forming an LFO) by turning the “Loop env off” button off (in other words, when the button is pressed on, the envelope looping is turned off); you can also turn the retriggering of the envelope off (useful when looping the envelope, if you don’t want the LFOs to reset with each keypress). The envelope can be shaped (0 is a decay envelope; 1 is an attack envelope) and the length can be set (from 0 to 60seconds).
Third, velocity can be routed to the grain position.
Fourth, a random grain position can be chosen each time a key is pressed.
Finally, there some controls for the dynamics: a pitch bend range control (default +/- one octave) and a button which when on will turn velocity routing to the amp envelopes off.
A note: I tried, tried, tried, my hardest to keep this patch under the CPU threshold in all instances, but if you use a lot of high notes, turn the texture all the way down, and mess with the grain size a bunch, it can freeze.