         //        }
         
         if internalAudioFile.length > 0 {
-            setPCMBuffer()
+            updatePCMBuffer()
             
             // Setting this here doesn't make sense to me, if you pre-schedule the
             // buffer it's not possible to schedule it in the future

                frameCapacity: AVAudioFrameCount(totalFrameCount) )
            do {
                try internalAudioFile.read(into: audioFileBuffer!, frameCount: framesToPlayCount)
            } catch {
                print("ERROR AKaudioPlayer: Could not read data into buffer.")
                return
            }
        } else {
            print("ERROR setPCMBuffer: Could not set PCM buffer -> \(internalAudioFile.fileNamePlusExtension) samplesCount = 0.")
        }
    }
    

    open var startTime: Double {
        get {
            return Double(startingFrame) / internalAudioFile.sampleRate
        }
        set {
            //let wasPlaying = playing
            
            // since setting startTime will fill the buffer again, we only want to do this if the
            // data really needs to be updated
            if newValue == internalStartTime {
                //print("startTime is the same, so returning: \(newValue)")
                return
                
            } else if newValue > Double(endingFrame) / internalAudioFile.sampleRate && endingFrame > 0 {
                print("ERROR: AKAudioPlayer cannot set a startTime bigger than the endTime: \(Double(endingFrame) / internalAudioFile.sampleRate) seconds")
                
            } else {
                startingFrame = UInt32(newValue * internalAudioFile.sampleRate)
                
                Swift.print("AKAudioPlayer.startTime = \(newValue), startingFrame: \(startingFrame)")
                
                // now update the buffer
                updatePCMBuffer()
                //stop()
                
                // remember this value for ease of checking redundant calls later
                internalStartTime = newValue
            }
            // RF: I don't think this is a good idea. There are many cases where you don't want it to restart on you without
            //explicitly meaning to.
            //            if wasPlaying {
            //                play()
            //            }
        }
    }
    
