## Perry Cook's VoicForm Physical Model

The voicForm suite (voicformActor, voicformHand, voicformAlg) makes calls into Perry Cook's STK synthesis toolkit.

To use the voicForm implementation, load perry.so and create an actor of type VoicFormActor.

### VoicFormActor messages

In addition to the messages understood by all generator actors, the VoicFormActor 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)
SetLoudness `hActor x`
  Set the loudness for new instances created by this actor to `x`.
SetAllLoudness `hActor x time`
  Set the loudness of all children to `x`, and set the default loudness for all future children. If `time` is specified, children will modulate to the new loudness over the specified duration. Default loudness 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`.
SetFormantQ `hActor x`
  Set the formant Q for new instances created by this actor to `x`.
SetAllFormantQ `hActor x time`
  Set the formant Q of all children to `x`, and set the default formant Q for all future children. If `time` is specified, children will modulate to the new formant Q over the specified duration. Default formant Q is always set immediately regardless of `time`.
SetVowel `hActor x`
  Set the vowel for new instances created by this actor to `x`.
SetAllVowel `hActor x time`
  Set the vowel of all children to `x`, and set the default vowel for all future children. If `time` is specified, children will modulate to the new vowel over the specified duration. Default vowel 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`.

### voicform handler messages

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

SetReverb `hSound x`
  Toggle reverb (1 = on, 0 = off).
SetLoudness `hSound x time`
  Set the loudness to `x`. If `time` is specified, modulate to the new loudness 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.
SetFormantQ `hSound x time`
  Set the formant Q to `x`. If `time` is specified, modulate to the new formant Q over the specified duration.
SetVowel `hSound x time`
  Set the vowel to `x`. If `time` is specified, modulate to the new vowel 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.