[CM] a new/old CM problem

Dave Phillips dlphilp@bright.net
Wed, 18 Dec 2002 22:35:02 -0500

Hi Rick:

  When I compile the attached code with the last CM 2.4.0 I receive this

* (compile-file "/home/dlphilp/CCRMA/cm-2.4.0/etc/examples/cmn-test.cm")

Python version 1.0, VM version Intel x86 on 18 DEC 02 10:23:40 pm.
Compiling: /home/dlphilp/CCRMA/cm-2.4.0/etc/examples/cmn-test.cm 06 DEC
02 01:19:24 pm

Converted TESTIT.
Compiling Creation Form for #<KERNEL::CLASS-CELL MIDI>: 
Compiling Creation Form for #<KERNEL::CLASS-CELL HEAP>: 
Compiling Creation Form for #<KERNEL::CLASS-CELL RANDOM>: 
Compiling Creation Form for #<KERNEL::CLASS-CELL CYCLE>: 

Error: Read error at 913:
 "(events #!/\two-ways "cmn-test.cmn" :staffing staffs :size 20 :title
Reader error at 978 on #<Stream for file
No dispatch function defined for #\!.

Byte Compiling Top-Level Form: 
Byte Compiling Creation Form for #<KERNEL::CLASS-CELL SEQ>: 

Error: Read error at 988:
 "(events #!/\two-ways "cmn-test.mid")"
Reader error at 1013 on #<Stream for file
No dispatch function defined for #\!.

Compilation unit finished.
  2 errors

/home/dlphilp/CCRMA/cm-2.4.0/etc/examples/cmn-test.x86f written.
Compilation finished in 0:00:00.

* (quit)

  It's that #! problem again. Any suggestions ?

  Here's the test file:

(in-package :cm)

(define (testit stf len nts)
  (let ((nts (new heap :notes nts))
        ;; choose half, quarter, or two eighths
        ;; the repetition 'weights' the selection
        (rhy (new random
               :of (list 2 1 1 1 (new cycle :of '(1/2 1/2)) (new cycle
:of '(1/2 1/2)) ))))
    (process while (< (now) len)
             for n = (next nts)
             for r = (next rhy)
             output (new midi :time (now)
                         :duration r
                         :keynum n
                         :channel stf)
             wait r)))

(define staffs
  '((0 :name "Viola" :clef :alto :meter (4 4))
    (1 :name "Oboe" :clef :treble :meter (4 4))
    (2 :name "Flute" :clef :treble :meter (4 4))))

(events (list (testit 0 32 '(g2 a bf c3 d f))
              (testit 1 32 '(a3 bf c4 d e g))
              (testit 2 32 '(bf4 c5 d f g a)))
        (new seq :name 'two-ways))
(events #!two-ways "cmn-test.cmn" :staffing staffs :size 20 :title
(events #!two-ways "cmn-test.mid")

  Btw, should #! have a dictionary entry ?

Best regards,

== Dave Phillips

	The Book Of Linux Music & Sound at http://www.nostarch.com/lms.htm
	The Linux Soundapps Site at http://linux-sound.org