     @IBOutlet var noteNameWithSharpsLabel: UILabel!
     @IBOutlet var noteNameWithFlatsLabel: UILabel!
     
-    let conductor = AnalysisConductor()
+    let analyzer: AKAudioAnalyzer
+    let microphone: VocalInput
+
     let noteFrequencies = [16.35,17.32,18.35,19.45,20.6,21.83,23.12,24.5,25.96,27.5,29.14,30.87]
     let noteNamesWithSharps = ["C", "C♯","D","D♯","E","F","F♯","G","G♯","A","A♯","B"]
     let noteNamesWithFlats = ["C", "D♭","D","E♭","E","F","G♭","G","A♭","A","B♭","B"]

    }
    
    func updateUI() {
        if conductor.analyzer.trackedAmplitude.value > 0.1 {
            frequencyLabel.text = String(format: "%0.1f", conductor.analyzer.trackedFrequency.value)
            
            var frequency = conductor.analyzer.trackedFrequency.value
            while (frequency > Float(noteFrequencies[noteFrequencies.count-1])) {
                frequency = frequency / 2.0
            }

    let analysisSequence = AKSequence()
    let updateAnalysis = AKEvent()
    
    override init() {
        microphone = VocalInput()
        analyzer = AKAudioAnalyzer(audioSource: microphone.auxilliaryOutput)
        super.init()
    }
    
    required init(coder aDecoder: NSCoder) {
        microphone = VocalInput()
        analyzer = AKAudioAnalyzer(audioSource: microphone.auxilliaryOutput)
        super.init(coder: aDecoder)
    }
    
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        AKOrchestra.addInstrument(microphone)
        AKOrchestra.addInstrument(analyzer)
        AKOrchestra.start()
        analyzer.play()
        microphone.play()
        
        let analysisSequence = AKSequence()
        var updateAnalysis = AKEvent()
        updateAnalysis = AKEvent(block: {
