[CM] latest FOMUS not working with latest Grace [SOLVED]

taube at illinois.edu taube at illinois.edu
Tue Jun 1 10:00:44 PDT 2010

>spectr.clm: "They contain a large set of instrument steady-state spectra, gathered many years ago (before 1976) by James A Moorer.

ok ive added clm-frame->spectrum which converts one of these to a spectrum object. from that point you can use it like any spectrum,  eg play it or notate it.

; load the data
(load "/Users/hkt/Software/sndlib/spectr.scm")

; create a spectrum
(define spec (clm-frame->spectrum bc-c2 :fundamental (hz 'c2)))

; access info
(spectrum-size spec)
(spectrum-minfreq spec)
(spectrum-maxfreq spec)
(spectrum-keys spec)
(note (spectrum-keys spec :quant 1 :unique #t))

; play it as midi
(mp:tuning 4)
(loop for k in (spectrum-keys spec)
      for t from 0 by .1
      do (mp:midi t .2 k))

;---- here is the function (its it svn already)

(define (clm-frame->spectrum data . args)
  (with-optkeys (args (fundamental 1) (amplitude 1))
     (let* ((frqs (list #f))
            (tail1 frqs)
            (amps (list #f))
            (tail2 amps))
       (do ((dat data (cddr dat))
            (siz 0 (+ siz 1)))
           ((null? dat)
            (make-spectrum 0 siz (cdr frqs) (cdr amps)))
         (set-cdr! tail1 (list (* (car dat) fundamental)))
         (set! tail1 (cdr tail1))
         (set-cdr! tail2 (list (* (cadr dat) amplitude)))
         (set! tail2 (cdr tail2))))))

More information about the Cmdist mailing list