The general idea of these examples is to do granular synthesis with some control over how random or how regular the grain triggering and frequency deviations are.
In classic granular synthesis the grains are triggered by a uniform random number generator or white noise. In these examples, I took a CloudBank? and triggered it with a PulseTrain? in order to achieve a regular pulse controllable by a !BPM fader. Then I added some noise (scaled by a !Jitter parameter) so you could gradually make the grain attacks less regular and more random. There are also examples of using an InputOutputCharacteristic? as a sieve on the FrequencyJitter?. By varying the smoothness of the InputOutputCharacteristic?, you can reject any random pitches that don't fall within a particular scale (and as you increase the smoothness parameter, allow more pitches through the sieve until you are back to a random jitter again).
-- CarlaScaletti - 29 Jul 2004
In the second example, Density is controlled by a bpm:dutyCycle: expression. By controlling the duty cycle of the metronome, you control whether the grain cloud has a density of 0 or a density controlled by the !Density controller.
-- CarlaScaletti - 27 Aug 2004