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.