A simple stereo-panning implementation

The Stereo suite (stereoActor, stereoHand, stereoAlg) implements a basic stereo panning algorithm and its associated handler and actor. Stereo inputs are panned such that both channels will get sent "hard right" if the pan position is hard right, and such that the channels remain unaltered and separated if the pan position is dead center. (The input channels are processed separately, not merely summed.)

Note that all Generator Actors understand the SetPan message. If you just want to pan around a monophonic source, use that instead of the StereoActor. The StereoActor is intended for panning sounds, particularly stereo sounds, into a two-channel stream which other Processor Actors will modify.

To use this stereo implementation, load stereo.so and create an actor of type StereoActor.

StereoActor messages

In addition to the messages understood by all generator actors, the StereoActor understands the following messages:
SetPan hActor x
Set the default pan position for new instances created by this actor to x (-1 to +1 is hard left to hard right).
SetAllPan hActor x time
Set the pan position of all children to x (-1 to +1 is hard left to hard right), and set the default pan position for all future children. If time is specified, children will modulate to the new pan position over the specified duration. Default pan position is always set immediately regardless of time.

StereoActor handler messages

In addition to the messages understood by all handlers, the handler for the stereo algorithm understands the following messages:
SetInput hSound hHandler
Set the input to come from the handler hHandler.
SetPan hSound x time
Set the pan position to x (-1 to +1 is hard left to hard right). If time is specified, move to the new pan position over the specified duration.