AKVocalTract

open 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.

  • Ramp Duration represents the speed at which parameters are allowed to change

    Declaration

    Swift

    @objc
    open dynamic var rampDuration: Double { get set }
  • Glottal frequency.

    Declaration

    Swift

    @objc
    open dynamic var frequency: Double { get set }
  • Tongue position (0-1)

    Declaration

    Swift

    @objc
    open dynamic var tonguePosition: Double { get set }
  • Tongue diameter (0-1)

    Declaration

    Swift

    @objc
    open dynamic var tongueDiameter: Double { get set }
  • Vocal tenseness. 0 = all breath. 1=fully saturated.

    Declaration

    Swift

    @objc
    open dynamic var tenseness: Double { get set }
  • Sets the velum size. Larger values of this creates more nasally sounds.

    Declaration

    Swift

    @objc
    open dynamic var nasality: Double { get set }
  • Tells whether the node is processing (ie. started, playing, or active)

    Declaration

    Swift

    @objc
    open dynamic var isStarted: Bool { get }
  • Initialize this vocal tract node

    Declaration

    Swift

    @objc
    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

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

    Declaration

    Swift

    @objc
    open func stop()