A simple wind-chime actor
The PentaActor simulates a wind chime with controllable tonal center,
randomness, density, and one user-defined parameter (typically duration).
It does not make sound itself, but calls a user-defined message group for each
"chime"; this message group does the actual sound production.
To use the PentaActor, load pentatonic.so and create an actor of type PentaActor.
In addition to the messages understood by all actors, the PentaActor understands the following messages:
- SetMessageGroup hActor "name"
- Set the sound-producing message group to the one with
name name. The parameters sent to the message group are:
The message group may of course ignore any or all of these
- *0 = frequency in Hz
- *1 = amplitude
- *2 = value
- *3 = random value in the range +-0.9, useful for panning.
- SetIrregularity hActor x
- Set the irregularity of chime-occurrences. 0 or less
produces a steady pulse; greater values of x produce greater
irregularity. As x approaches 1, arbitrarily small and
arbitrarily large pauses between chimes can occur. This is
computed with what can be grandly referred to as Goudeseune's
improvement to the Xenakis-Poisson-Myhill algorithm.
- SetHueExact hActor x
- Choose one of twelve possible pentatonic pitch sets for
the chimes, exactly. x is an integer from 0 to 11 inclusive.
- SetHue hActor x
- Choose one of the twelve pitch sets, as x (floating point) ranges from 0 to 1.
- SetSaturation hActor x
- Set the mean number of chimes per second to x (x must be positive). Default is 1.
- SetValue hActor x
- Set this user-defined parameter, passed verbatim to *2
in the aforementioned message group. Duration of a chime is one
useful interpretation of this value.
- SetAmp hActor x
- Set a scaling factor for amplitudes passed to *1
of the message group. Defaults to unity.
- SetWidth hActor x
- Set the average width of the effective pitch set used, x
between 0 and 1 (default 0.25). Smaller values produce a pitch distribution
more nearly Gaussian (and also somewhat more expensive to compute);
unity produces a uniform pitch distribution.
- SetLowestFreq hActor freq
- Set the lowest frequency for the chimes, in Hz (20 to
8820 Hz). Defaults to 220 Hz.