     }
 
     // MARK: Lifecycle
+
+    public func set(avAudioUnit: AVAudioUnit) {
+        self.avAudioUnit = avAudioUnit
+    }
 
     /// This function should be called from AKNode subclasses as soon as a valid AU is obtained
     public func associate(with au: AKAudioUnitBase, identifier: String) {

    /// The internal AVAudioUnit, which is a subclass of AVAudioNode with more capabilities
    open var avAudioUnit: AVAudioUnit? {
        didSet {
            if let akAudioUnit = avAudioUnit?.auAudioUnit as? AKAudioUnitBase {
                let mirror = Mirror(reflecting: self)

                for child in mirror.children {

                        let name = String(label.dropFirst())
                        param.projectedValue.associate(with: akAudioUnit,
                                                       identifier: name)
                        param.projectedValue.set(avAudioUnit: avAudioUnit)
                    }
                }
            }
