         // get device ids
         try checkError(AudioObjectGetPropertyData(AudioObjectID(kAudioObjectSystemObject), &propertyAddress, 0, nil, &size, &audioDevices[0]))
         
-        DLog("\(audioDevices)")
-        
-        return audioDevices.map {
+        return audioDevices.flatMap {
             return AudioDevice(deviceID: $0)
         }
     }

    
    // get audio out interface
    let aoi = unsafeBitCast(inRefCon, AudioOutputInterface.self)
    let buffer = UnsafeMutablePointer<Float>(data[0].mBuffers.mData)
    
    // high settings
    let highFor = aoi.outputHighFor

        let deviceManufacturer: String
        let streamsInput: Int
        let streamsOutput: Int
        let buffersInput: [AudioBuffer]
        let buffersOutput: [AudioBuffer]
        
        init?(deviceID: AudioDeviceID) {
            self.deviceID = deviceID
