AKVocalTract

public class AKVocalTract: AKNode, AKToggleable, AKComponent

Based on the Pink Trombone algorithm by Neil Thapen, this implements a physical model of the vocal tract glottal pulse wave. The tract model is based on the classic Kelly-Lochbaum segmented cylindrical 1d waveguide model, and the glottal pulse wave is a LF glottal pulse model.

  • Four letter unique description of the node

    Declaration

    Swift

    public static let ComponentDescription = AudioComponentDescription(generator: "vocw")
  • Ramp Time represents the speed at which parameters are allowed to change

    Declaration

    Swift

    open dynamic var rampTime: Double = AKSettings.rampTime
  • Glottal frequency.

    Declaration

    Swift

    open dynamic var frequency: Double = 160.0
  • Tongue position (0-1)

    Declaration

    Swift

    open dynamic var tonguePosition: Double = 0.5
  • Tongue diameter (0-1)

    Declaration

    Swift

    open dynamic var tongueDiameter: Double = 1.0
  • Vocal tenseness. 0 = all breath. 1=fully saturated.

    Declaration

    Swift

    open dynamic var tenseness: Double = 0.6
  • Sets the velum size. Larger values of this creates more nasally sounds.

    Declaration

    Swift

    open dynamic var nasality: Double = 0.0
  • Tells whether the node is processing (ie. started, playing, or active)

    Declaration

    Swift

    open dynamic var isStarted: Bool
  • Initialize this vocal tract node

    Declaration

    Swift

    public init(
            frequency: Double = 160.0,
            tonguePosition: Double = 0.5,
            tongueDiameter: Double = 1.0,
            tenseness: Double = 0.6,
            nasality: Double = 0.0)

    Parameters

    frequency

    Glottal frequency.

    tonguePosition

    Tongue position (0-1)

    tongueDiameter

    Tongue diameter (0-1)

    tenseness

    Vocal tenseness. 0 = all breath. 1=fully saturated.

    nasality

    Sets the velum size. Larger values of this creates more nasally sounds.

  • Function to start, play, or activate the node, all do the same thing

    Declaration

    Swift

    open func start()
  • Function to stop or bypass the node, both are equivalent

    Declaration

    Swift

    open func stop()