     func microphone(_ microphone: EZMicrophone!, hasAudioStreamBasicDescription
         audioStreamBasicDescription: AudioStreamBasicDescription)
     {
-        // EZAudioUtilities.printASBD(audioStreamBasicDescription)
         DispatchQueue.main.async { [weak self] in
             self?.sampleRate = Int(round(audioStreamBasicDescription.mSampleRate))
         }
     }
-    
-//    func microphone(_ microphone: EZMicrophone!, changedPlayingState isPlaying: Bool) {
-//        DispatchQueue.main.async { [weak self] in
-//            if isPlaying {
-//                
-//            } else {
-//                
-//            }
-//        }
-//    }
     
     func microphone(_ microphone: EZMicrophone!,
                     hasAudioReceived buffer: UnsafeMutablePointer<UnsafeMutablePointer<Float>?>!,

                    strongSelf.sampleCount += Int(bufferSize)
                    strongSelf.samplesPerUpdate = Int(bufferSize)
                    // A full screen's width is `audioPlot.rollingHistoryLength()` buffers
//                    if strongSelf.currRowBufferCount % Int(audioPlot.rollingHistoryLength()) == 0 {
//                    if strongSelf.currRowBufferCount == strongSelf.rowRemainingBuffers {
                    if strongSelf.currRowBufferCount == strongSelf.fullScreenBufferWidth {
                        // Make a new row
                        strongSelf.currRowBufferCount = 0

        }
    }
}

extension UIView {
    func getSnapshotImage() -> UIImage {
