Perry Cook's 4-Operator FM TubeBell

The tubebell suite (tubebellActor, tubebellHand, tubebellAlg) makes calls into Perry Cook's STK synthesis toolkit.

To use the tubebell implementation, load perry.so and create an actor of type TubeBellActor.

Note: All parameters except frequency and reverb were originally designed for input from MIDI devices. Therefore, those parameters should be set to values between 0 and 127.

TubeBellActor messages

In addition to the messages understood by all generator actors, the TubeBellActor understands the following messages:
SetReverb hActor x
Turn on reverb for new instances created by this actor to x. (1 = ON, 0 = OFF)
SetAllReverb hActor x
Turn on reverb of all children to x, and set the default reverb flag for all future children. (1 = ON, 0 = OFF)
SetSustainLevel hActor x
Set the ADSR sustain level for new instances created by this actor to x.
SetAllSustainLevel hActor x time
Set the ADSR sustain level of all children to x, and set the default ADSR sustain level for all future children. If time is specified, children will modulate to the new ADSR sustain level over the specified duration. Default sustain level is always set immediately regardless of time.
SetFreq hActor x
Set the frequency (in Hertz) for new instances created by this actor to x.
SetAllFreq hActor x time
Set the frequency (in Hertz) of all children to x, and set the default frequency (in Hertz) for all future children. If time is specified, children will modulate to the new frequency over the specified duration. Default frequency is always set immediately regardless of time.
SetVibGain hActor x
Set the vibrato gain for new instances created by this actor to x.
SetAllVibGain hActor x time
Set the vibrato gain of all children to x, and set the default vibrato gain for all future children. If time is specified, children will modulate to the new vibrato gain over the specified duration. Default vibrato gain is always set immediately regardless of time.
SetModIndex hActor x
Set the modulation index for new instances created by this actor to x.
SetAllModIndex hActor x time
Set the modulation index of all children to x, and set the default modulation index for all future children. If time is specified, children will modulate to the new modulation index over the specified duration. Default modulation index is always set immediately regardless of time.
SetCrossFade hActor x
Set the dual-FM-carrier crossfade for new instances created by this actor to x.
SetAllCrossFade hActor x time
Set the dual-FM-carrier crossfade of all children to x, and set the default dual-FM-carrier crossfade for all future children. If time is specified, children will modulate to the new dual-FM-carrier crossfade over the specified duration. Default dual-FM-carrier crossfade is always set immediately regardless of time.
SetVibFreq hActor x
Set the vibrato frequency for new instances created by this actor to x.
SetAllVibFreq hActor x time
Set the vibrato frequency of all children to x, and set the default vibrato frequency for all future children. If time is specified, children will modulate to the new vibrato frequency over the specified duration. Default vibrato frequency is always set immediately regardless of time.

tubebell handler messages

In addition to the messages understood by all handlers, the handler for the tubebell algorithm understands the following messages:
SetReverb hSound x
Toggle reverb (1 = on, 0 = off).
SetSustainLevel hSound x time
Set the frequency to x. If time is specified, modulate to the new frequency over the specified duration.
SetFreq hSound x time
Set the frequency to x. If time is specified, modulate to the new frequency over the specified duration.
SetVibGain hSound x time
Set the vibrato gain to x. If time is specified, modulate to the new vibrato gain over the specified duration.
SetModIndex hSound x time
Set the modulation index to x. If time is specified, modulate to the new modulation index over the specified duration.
SetCrossFade hSound x time
Set the dual-FM-carrier crossfade to x. If time is specified, modulate to the new dual-FM-carrier crossfade over the specified duration.
SetVibFreq hSound x time
Set the vibrato frequency to x. If time is specified, modulate to the new vibrato frequency over the specified duration.