anchor.diff:    (format t "Filtering and companding ~A with sox…~%" name)
     (sb-ext:run-program "/usr/bin/sox"
                         `(,(+ "obj/" name ".wav")
  -                        ,(+ "obj/" name "_filtered.wav")
  +                        ,(+ "obj/" name ".filtered.wav")
                           "bass" ,bass
                           "lowpass" ,(princ (half (pwm-pulse-rate tv)) nil)
                           "compand" "0.3,1" "6:-70,-60,-20" "-1" "-90" "0.2"
  
positive.code:                  '("src/audio-player-irq.asm")
                   '("src/audio-player-noirq.asm")))
            ,(+ "src/text_" name ".asm"))
          (+ "obj/" name "_" tv ".prg.vice.txt")))
  
  (defun padding (x n obj)
    (maptimes [identity obj] (- n (length x))))
  
negative.code: (defun make-audio-player (name src tv)
    (= *tv* tv)
    (alet (downcase (symbol-name tv))
      (let tapname (+ "compiled/" src "." ! ".tap")
        (make-audio-player-prg src !)
        (with-output-file o tapname
          (write-tap o
              (bin2cbmtap (cddr (string-list (fetch-file (+ "obj/" src "." ! ".prg"))))
                          name
                          :start #x1001))
          (alet (fetch-file (+ "obj/" src ".downsampled." ! ".wav"))
            (? *video?*
               (with-input-file video "obj/nipkow.dat"
                 (wav2pwm o ! video))
               (wav2pwm o !))))
        (with-input-file i tapname
          (with-output-file o (+ "compiled/" src "." ! ".tap.wav")
            (tap2wav i o 48000 (cpu-cycles *tv*))))
        (sb-ext:run-program "/usr/bin/zip" (list (+ tapname ".zip") tapname)))))
  
  