anchor.diff:              mp3-count mp4-count flac-count other-count
               (+ mp3-count mp4-count flac-count other-count))))
   
  -(defun do-audio-dir (&key (dir "/home/markv/Music/Queen")
  -                          (file-system-encoding :utf-8)
  -                          (func #'abstract-tag:show-tags))
  +(defun do-audio-dir (&optional (dir "/home/markv/Music/Queen")
  +                               (func #'abstract-tag:show-tags))
     "Walk :DIR and FUNCALL specified function for each file audio found."
  -  (set-pathname-encoding file-system-encoding)
     (let ((file-counts (make-file-counts)))
       (with-slots (mp3-count flac-count mp4-count other-count) file-counts
         (cl-fad:walk-directory dir
                                (lambda (f)
  -                               (do-audio-file :file f
  -                                 :func (lambda (s)
  -                                         (cond ((typep s 'id3:mp3-file)
  -                                                (incf mp3-count))
  -                                               ((typep s 'flac:flac-file)
  -                                                (incf flac-count))
  -                                               ((typep s 'm4a:mp4-file)
  -                                                (incf mp4-count))
  -                                               ((null s)
  -                                                (incf other-count)))
  -                                         (when (and (not (null s)) func)
  -                                           (funcall func s)))))))
  +                               (do-audio-file
  +                                 f
  +                                 (lambda (s)
  +                                   (cond ((typep s 'id3:mp3-file)
  +                                          (incf mp3-count))
  +                                         ((typep s 'flac:flac-file)
  +                                          (incf flac-count))
  +                                         ((typep s 'm4a:mp4-file)
  +                                          (incf mp4-count))
  +                                         ((null s)
  +                                          (incf other-count)))
  +                                   (when (and (not (null s)) func)
  +                                     (funcall func s)))))))
       file-counts))
   
  -(defun time-test (&key (dir "/home/markv/Music/Queen")
  -                       (file-system-encoding :utf-8) (do-audio-processing t))
  +(defun time-test (&optional (dir "/home/markv/Music/Queen")
  +                            (do-audio-processing t))
     "Time parsing of DIR."
  -  (set-pathname-encoding file-system-encoding)
     (let ((audio-streams:*get-audio-info* do-audio-processing))
       (time (format t "~a~%"
  -                  (do-audio-dir :dir dir
  -                    :file-system-encoding file-system-encoding :func nil)))))
  +                  (do-audio-dir dir nil)))))
   
   (defun insert-into-ht (id ht)
     (multiple-value-bind (value foundp)
  
positive.code:               (1+ value)
                1))))
  
  (defun get-stats (&key (dir "/home/markv/Music/Queen")
                         (file-system-encoding :utf-8))
    "Gen up some interesting statistics on DIR"
    (let ((m4-ht (make-hash-table :test #'equalp))
          (m3-ht (make-hash-table :test #'equalp)))
      (do-audio-dir
        :dir dir
        :file-system-encoding file-system-encoding
        :func (lambda (s)
                (cond ((typep s 'id3:mp3-file)
                       (id3:map-id3-frames s
                                           :func (lambda (f)
                                                   (insert-into-ht (id3:id f) m3-ht))))
                      ((typep s 'm4a:mp4-file)
                       (m4a:map-mp4-atoms s :func (lambda (f)
                                                    (insert-into-ht (m4a:atom-type f) m4-ht)))))))
      (format t "MP3 Stats:~%")
      (loop for key being the hash-keys of m3-ht
            using (hash-value value)
  
negative.code:     mp4-count
      other-count)
  
    (defun mp-do-audio-dir (&optional (dir "/home/markv/Music/Queen")
                                      (func nil))
      "Walk :DIR and FUNCALL specified function for each file audio found."
      (let ((channel      (make-instance 'chanl:unbounded-channel))
            (dead-channel (make-instance 'chanl:unbounded-channel))
            (mp3-count   0)
  