         }
     }
 
-    ///Playback postion as percentage 0.0->1.0 in terms of absolute length of file
+    ///Playback postion as percentage 0.0->1.0 relative to absolute length of file
     public var playbackProgress: Float {
         get {
             progress(forFrame: playbackPosition)

        }
    }

    ///TimeInterval of current position in terms of absolute length of file
    public var playbackTime: TimeInterval {
        get {
            time(forFrame: playbackPosition)

        AVAudioFrameCount(endPosition - startPosition)
    }
        
    ///Time for head position relative to absolute length of file in seconds
    public var headTime: TimeInterval {
        time(forFrame: headPosition)
    }

    ///Head position as percentage relative to absolute length of file
    public var headProgress: Float {
        progress(forFrame: headPosition)
    }

    ///Time for tail position relative to absolute length of file in seconds
    public var tailTime: TimeInterval {
        time(forFrame: tailPosition)
    }

    ///Tail position as percentage relative to absolute length of file
    public var tailProgress: Float {
        progress(forFrame: tailPosition)
    }
    
    ///Length of trimmed section to be played in frames
    public var trimmedLength: AVAudioFrameCount {
        let tail = tailPosition > .zero ? tailPosition : fileLength
        let head = headPosition

        return AVAudioFrameCount(tail - head)
    }
    
    ///Playback length in seconds adjusted for trim at head/tail
    public var trimmedPlaybackDuration: TimeInterval {
        time(forFrame: AVAudioFramePosition(trimmedLength))
    }
    
    ///Playback postion as percentage 0.0->1.0 relative to trim at head/tail
    public var trimmedPlaybackProgress: Float {
        let current = playbackPosition - headPosition
        return current.percentage(of: trimmedLength)
    }
    
    ///Last rendered frame including offset from startPosition
