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

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

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