code: func (d *Decoder) Duration() (time.Duration, error) {
  	if d == nil {
  		return 0, errors.New("can't calculate the duration of a nil pointer")
  	}
  	d.ReadInfo()
  	if err := d.Err(); err != nil {
  		return 0, err
  	}
  	duration := time.Duration(float64(d.NumSampleFrames) / float64(d.SampleRate) * float64(time.Second))
  	return duration, nil
  }
docs: // Duration returns the time duration for the current AIFF container