         totalFrameCount = UInt32(internalAudioFile.length)
         startingFrame = 0
         endingFrame = totalFrameCount
-
+        
+        // RF: Actually, this is incorrect. The audio will be played correctly now.
+        // Warning if file's samplerate don't match with AKSettings.samplesRate
+        //        if internalAudioFile.sampleRate != AKSettings.sampleRate {
+        //            print("AKAudioPlayer Warning:  \"\(internalAudioFile.fileNamePlusExtension)\" has a different sample rate from AudioKit's Settings !")
+        //            print("Audio will be played at a bad pitch/speed, in / out time will not be set properly !")
+        //        }
+        
         if internalAudioFile.length > 0 {
-            // prefill the buffer
             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
+            //scheduleBuffer()
             
         } else {
             print("AKAudioPlayer Warning:  \"\(internalAudioFile.fileNamePlusExtension)\" is an empty file")

    open var startTime: Double {
        get {
            return Double(startingFrame) / internalAudioFile.sampleRate
        }
        set {
            // 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)
                
                print("AKAudioPlayer.startTime = \(newValue), startingFrame: \(startingFrame)")
                
                // now update the buffer
                updatePCMBuffer()
                
                // remember this value for ease of checking redundant calls later
                internalStartTime = newValue
            }
        }
    }
    

            } else {
                endingFrame = UInt32(newValue * internalAudioFile.sampleRate)
                
                Swift.print("AKAudioPlayer.endTime = \(newValue), endingFrame: \(endingFrame)")
                
                // now update the buffer
                updatePCMBuffer()
                //stop()
                
                // remember this value for ease of checking redundancy later
                internalEndTime = newValue
            }
            //            if wasPlaying {
            //                play()
            //            }
        }
    }
    
    /// Sets the time in the future when playback will commence. For immediately playback, leave it 0.
    open var scheduledTime: Double = 0
    
    
    // MARK: - Initialization
    
    
    /// Initialize the audio player
    ///
