Shimmer Synthesis Actor


The Shimmer Actor produces a sound with harmonic spectrum by randomly walking the frequencies of several sine waves through an overtone series. The effect can be "shimmery". (It's a cool sound I discovered with an Atari ST and a Yamaha FB01 in 1986.)

To use it, load shimmer.so and create an actor of type ShimmerActor.

ShimmerActor messages

In addition to the messages understood by all generator actors, the ShimmerActor understands the following messages:
SetNumPartials hActor x
Set the default number of partials (i.e., sine waves) for new instances created by this actor to x.
SetAllNumPartials hActor x
Set the number of partials of all children to x, and set the default number of partials for all future children to x.
SetFreq hActor x
Set the default fundamental frequency for all future children to x Hz.
SetAllFreq hActor x time
Set the fundamental frequency of all children to x Hz, and also set the default fundamental frequency for all future children to x Hz. If time is specified, children will modulate to the new frequency over the specified duration. Default frequency is always set immediately regardless of time.
SetWalkspeed hActor x
Set the default random-walk speed for all future children to x seconds (i.e., allow the partials to change frequency every x seconds).
SetAllWalkspeed hActor x time
Set the random-walk speed of all children to x seconds, and also set the default for all future children to x. If time is specified, children will modulate to the new value over the specified duration. Default value is always set immediately regardless of time.
SetAvgFreq hActor x
Set the default average frequency of the partials to x Hz.
SetAllAvgFreq hActor x time
Set the average frequency of all children to x seconds, and also set the default for all future children to x. If time is specified, children will modulate to the new value over the specified duration. Default value is always set immediately regardless of time.
SetRange hActor x
Set the default frequency range of the partials to x, i.e., keep partials between average_frequency/x and average_frequency*x. x should be greater than 1.
SetAllRange hActor x time
Set the frequency range of all children to x, and also set the default for all future children to x. If time is specified, children will modulate to the new value over the specified duration. Default value is always set immediately regardless of time.

ShimmerActor handler messages

In addition to the messages understood by all handlers, the handler for the shimmer synthesis algorithm understands the following messages.

In all of the following, if the parameter time is specified, the value in question will become the new value over the specified duration (instead of instantaneously).

SetFreq hSound x time
Set the fundamental frequency to x Hz.
SetLogFreq hSound x time
Set the fundamental frequency to exp(x) Hz.
SetAvgFreq hSound x time
Set the average frequency to x Hz.
SetLogAvgFreq hSound x time
Set the average frequency to exp(x) Hz.
SetFreqRange hSound x time
Set the frequency range to x.
SetLogFreqRange hSound x time
Set the frequency range to exp(x).
SetWalkSpeed hSound x time
Set the random walk speed to x seconds.
SetLogWalkSpeed hSound x time
Set the random walk speed to exp(x) seconds.
SetNumPartials hSound x
Set the number of partials to x.