anchor.diff:                             (error 'block-error :message "Read more sub-block bytes than needed")))))
   
       (setf (block-residual wv-block)
  -          (loop repeat (if (bit-set-p (block-flags wv-block) +flags-mono-output+) 1 2) collect
  -               (make-array (block-block-samples wv-block)
  -                           :element-type '(sb 32)
  -                           :initial-element 0)))
  +          (loop for i below (if (bit-set-p (block-flags wv-block) +flags-mono-output+) 1 2) collect
  +               (let ((residual-buffer (nth i residual-buffers)))
  +                 (if (and residual-buffer
  +                          (= (length (the (sa-sb 32) residual-buffer))
  +                             (block-block-samples wv-block)))
  +                     (map-into residual-buffer #'(lambda (x) (declare (ignore x)) 0) residual-buffer)
  +                     (make-array (block-block-samples wv-block)
  +                                 :element-type '(sb 32)
  +                                 :initial-element 0)))))
       (decode-residual wv-block)
   
       wv-block))
  
positive.code:       (block-error ()
          (reader-position reader (1+ position))
          (restore-sync reader)))))
  
negative.code:     (block-flags         (:octets 4) :endianness :little)
      (block-crc           (:octets 4) :endianness :little))
  
  (defun read-wv-block (reader &optional residual-buffers)
    (declare (optimize (speed 3)))
    (let ((wv-block (read-wv-block% reader)))
      (if (/= (block-id wv-block) +wv-id+)
  