## Perry Cook's AgogoBel Physical Model

The agogobel suite (agogobelActor, agogobelHand, agogobelAlg) makes calls into Perry Cook's STK synthesis toolkit.

To use the agogobel implementation, load perry.so and create an actor of type AgogoBelActor.

### AgogoBelActor messages

In addition to the messages understood by all generator actors, the AgogoBelActor 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 sustain level for new instances created by this actor to `x`.
SetAllSustainLevel `hActor x time`
  Set the sustain level of all children to `x`, and set the default sustain level for all future children. If `time` is specified, children will modulate to the new 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`.
SetStickHardness `hActor x`
  Set the stick hardness for new instances created by this actor to `x`.
SetAllStickHardness `hActor x time`
  Set the stick hardness of all children to `x`, and set the default stick hardness for all future children. If `time` is specified, children will modulate to the new stick hardness over the specified duration. Default stick hardness is always set immediately regardless of `time`.
SetStrikePosition `hActor x`
  Set the strike position for new instances created by this actor to `x`.
SetAllStrikePosition `hActor x time`
  Set the strike position of all children to `x`, and set the default strike position for all future children. If `time` is specified, children will modulate to the new strike position over the specified duration. Default strike position 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`.

### agogobel handler messages

In addition to the messages understood by all handlers, the handler for the agogobel algorithm understands the following messages:

SetReverb `hSound x`
  Turn on reverb to `x`. (1 = ON, 0 = OFF)
SetSustainLevel `hSound x time`
  Set the sustain level to `x`. If `time` is specified, modulate to the new sustain level 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.
SetStickHardness `hSound x time`
  Set the stick hardness to `x`. If `time` is specified, modulate to the new stick hardness over the specified duration.
SetStrikePosition `hSound x time`
  Set the strike position to `x`. If `time` is specified, modulate to the new strike position 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.