## A simple random-noise implementation

The Noise suite implements a basic colored noise synthesis algorithm, along with its associated handler and actor. The noise is random, or repetitive, in nature. (Actually, it repeats once every 2^48 samples, or at worst, once every 203 years at 44.1 kHz sampling rate. So, who's counting?) The noise is colored by filtering through a selectable zero-order or first-order hold process.

Noise characteristics are controlled through two parameters: "Order", and "Cutoff". Order determines the filter type used for coloring the noise. Order=0 corresponds to a simple zero-order hold (i.e. sampled-and-held noise samples), while Order=1 corresponds to a first-order hold (i.e. linearly interpolated noise samples). Both types of filtering are lowpass in nature, with a falloff slope of 6dB/octave for Order=0 and 12dB/octave for Order=1.

Cutoff controls the frequency at which the noise spectrum falls off, i.e., is filtered out, and is expressed in Hz. Specifically, a cutoff of 1000Hz produces an output spectrum whose half-power point occurs at 443Hz for Order=0, and at 319Hz for Order=1.

To use the Noise implementation, load noise.so and create an actor of type NoiseActor.

### NoiseActor messages

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

SetCutoff `hActor x`
  Set the default cutoff frequency for new instances created by this actor to `x`.
SetAllCutoff `hActor x time`
  Set the cutoff frequency of all children to `x`, and set the default cutoff for all future children. If `time` is specified, children will modulate to the new cutoff over the specified duration. Default cutoff is always set immediately regardless of `time`.
SetOrder `hActor bool`
  Set the default filter order for new instances created by this actor to `bool`, either 0 or 1.
SetAllOrder `hActor bool`
  Set the filter order of all children to `bool`, and set the default order for all future children.

### Noise handler messages

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

SetCutoff `hSound x time`
  Set the cutoff frequency to `x`. If `time` is specified, move to the new cutoff over the specified duration.
SetOrder `hSound bool`
  Set the filter order to `bool`, either 0 or 1.