         internalPlayer.stop()
     }
     
-    // The currentTime
+    /// Current playback time (in seconds)
     public var currentTime : Double {
         
         if internalPlayer.playing {
             if let time = internalPlayer.lastRenderTime {
                 // wrap the sampleTime by the totalFrameCount as sampleTime does not reset when audio loops.
-                return Double( ( Int64(time.sampleTime) % totalFrameCount) ) / sampleRate
+                return Double( ( Int64(time.sampleTime - initialFrameCount) % totalFrameCount) ) / sampleRate
             }
         }
         return 0.0

    
    private var sampleRate : Double = 1.0
    private var totalFrameCount : Int64
    
    /// Boolean indicating whether or not to loop the playback
    public var looping = false

        internalPlayer = AVAudioPlayerNode()
        super.init()
        AudioKit.engine.attachNode(internalPlayer)
        
        let mixer = AVAudioMixerNode()
        AudioKit.engine.attachNode(mixer)
        AudioKit.engine.connect(internalPlayer, to: mixer, format: audioFormat)
