     ///
     public func ramp(frequency frequency: Double) {
         frequencyParameter?.setValue(Float(frequency), originator: token!)
+    }
+    
+    /// Detuning frequency in Hz, Default: 0
+    public var detuning: Double = 0 {
+        willSet(newValue) {
+            if detuning != newValue {
+                detuningParameter?.setValue(Float(newValue), originator: token!)
+            }
+        }
     }
 
     /// Output Amplitude.

    ///
    /// - parameter frequency: Frequency in cycles per second
    /// - parameter amplitude: Output Amplitude.
    ///
    public init(
        waveform: AKTable = AKTable(.Sine),
        frequency: Double = 440,
        amplitude: Double = 1) {


        self.waveform = waveform
        self.frequency = frequency
        self.amplitude = amplitude

        var description = AudioComponentDescription()
        description.componentType         = kAudioUnitType_Generator


    private var frequencyParameter: AUParameter?
    private var amplitudeParameter: AUParameter?
    private var detuningParameter:  AUParameter?

    /// Frequency in cycles per second
    public var frequency: Double = 440 {
