The issue here is that Objective-C allows nullable pointers, and Swift has strict typing around optional and non-optional pointers.
Since floatChannelData is of type UnsafePointer<UnsafeMutablePointer>, you can map it to the correct type using this conversion:
if let floatChannelData = buffer.floatChannelData {
// Convert the pointer to the expected form
let data = UnsafePointer<UnsafeMutablePointer<Float>?>(floatChannelData)
audioProcess(Int32(buffer.format.channelCount),
numSamples: Int32(buffer.frameLength),
stride: Int32(buffer.stride),
data: data)
}
different UnsafePointer for Swift and Objective-C/C++