anchor.diff:     (bits-per-sample :initform +bits-per-sample+
                       :initarg :bits-per-sample
                       :accessor bits-per-sample)
  +   (extension-size :initform +extension-size+
  +                   :initarg :extension-size
  +                   :accessor extension-size)
      (frames :initform '()
              :accessor frames
              :initarg :frames)))
  
positive.code:     (write-uint (io wave-object) (sample-rate wave-object) 4)
      (write-uint (io wave-object) (bytes-per-second wave-object) 4)
      (write-uint (io wave-object) byte-width 2)
      (write-uint (io wave-object) (bits-per-sample wave-object) 4)
      (write-tag (io wave-object) +data-id+)
      (write-uint (io wave-object) (* data-size byte-width) 4)
      (loop for frame in (frames wave-object) do
  
negative.code:                  (sample-rate (read-uint in 4))
                   (bytes-per-second (read-uint in 4))
                   (bytes-per-sample (read-uint in 2))
                   (bits-per-sample (read-uint in 2))
                   (extension-size (if (= fmt-size 18)
                                       (read-uint in 2)
                                       0))
                   (data-id (read-tag in))
                   (data-size (read-uint in 4))
                   (value-range (expt 2 bits-per-sample))
  