## A simple pseudo-noise implementation

The PseudoNoise suite implements a basic colored noise synthesis algorithm, along with its associated handler and actor. The noise is psueudo-random or repetitive. Various amounts of filtered, non-repetitive "random" noise can be introduced to modulate or "break up" the repetitiveness of the resulting sound.

PseudoNoise uses three parameters: "Cutoff", "Modulation Cutoff", and "Modulation Index". Cutoff controls the frequency at which the noise spectrum falls off. Specifically, a cutoff of 1000 Hz produces an output spectrum whose half-power point occurs at roughly 300 Hz. Modulation Cutoff controls the cutoff frequency of the random modulating noise, in similar fashion to Cutoff. . Modulation Index ranges from 0 to 10 and controls the overall amount of random modulation applied to the repetitive noise.

To use the PseudoNoise implementation, load pnoise.so and create an actor of type PseudoNoiseActor.

### PseudoNoiseActor messages

In addition to the messages understood by all generator actors, the PseudoNoiseActor understands the following messages:

SetCutoff `hActor x`
  Set the default cutoff frequency for new instances created by this actor to `x` Hz.
SetAllCutoff `hActor x time`
  Set the cutoff frequency of all children to `x` Hz, and set the default value for all future children. If `time` is specified, children will modulate to the new value over the specified duration (in seconds). Default cutoff is always set immediately regardless of `time`.
SetModCutoff `hActor x`
  Set the default modulation cutoff frequency for new instances created by this actor to `x` Hz.
SetAllModCutoff `hActor x time`
  Set the modulation cutoff frequency of all children to `x` Hz, and set the default mod cutoff for all future children. If `time` is specified, children will modulate to the new mod cutoff over the specified duration. Default mod cutoff is always set immediately regardless of `time`.
SetModIndex `hActor x`
  Set the default modulation index for new instances created by this actor to `x` (in the range 0 to 10).
SetAllModIndex `hActor x time`
  Set the modulation index of all children to `x` (between 0 and 10; default 0), and set the default value for all future children. If `time` is specified, children will modulate to the new value over the specified duration (in seconds). Default modulation index is always set immediately regardless of `time`.

### PseudoNoise handler messages

In addition to the messages understood by all handlers, the handler for the pseudonoise algorithm understands the following messages:

SetCutoff `hSound x time`
  Set the cutoff frequency to `x` Hz. If `time` is specified, move to the new value over `time` seconds.
SetModCutoff `hSound x time`
  Set the modulation cutoff frequency to `x` Hz. If `time` is specified, move to the new value over `time` seconds. Note that this message has no audible effect if SetModIndex below is still zero.
SetModIndex `hSound x time`
  Set the modulation index to `x` (between 0 and 10). If `time` is specified, move to the new value over `time` seconds. Default value is zero.