     let detectors: [SyllableDetector]
     let channels: [Int]
     
+    // stats
+    let statInput: [SummaryStat]
+    let statOutput: [SummaryStat]
+    
     // high duration
     let highDuration = 0.001 // 1ms
     

        
        switch identifier {
        case "ColumnInput", "ColumnOutput": return "Channel \(row + 1)"
        case "ColumnInLevel": return NSNumber(float: 0.0)
        case "ColumnOutLevel":
            if let p = processor {
                return NSNumber(float: 100.0 * (p.getOutputForChannel(row) ?? 0.0))
            }
            return NSNumber(float: 0.00)
        case "ColumnNetwork": return nil == processorEntries[row].config ? "Not Selected" : processorEntries[row].network
        default: return nil
        }

        }
        self.channels = channels
        
        // setup stats
        var statInput = [SummaryStat]()
        var statOutput = [SummaryStat]()
        for var i = 0; i < self.detectors.count; ++i {
            statInput.append(SummaryStat(withStat: StatMax()))
            statOutput.append(SummaryStat(withStat: StatMax()))
        }
        self.statInput = statInput
        self.statOutput = statOutput
        
        // setup input and output devices
        interfaceInput = AudioInputInterface(deviceID: deviceInput.deviceID)
        interfaceOutput = AudioOutputInterface(deviceID: deviceOutput.deviceID)
