[CM] strange path behaviour in clm/dlocsig

Bill Schottstaedt bil at ccrma.Stanford.EDU
Sun, 23 Mar 2008 05:46:43 -0700


> Argument X is not a NUMBER: (* 0.8 R)

I think it's checking in the closed case that the start and end are the
same, but, as it says, '(* 0.8 R) is not a number (it's using = to check
numerical equality).  X is the slot name, I believe.  In your lisp code,
you need to change let to let* and use list to make sure the expressions
like (* 0.8 r) are numbers when passed in the argument to make-path:

(let* ((r 1.0)
      (path-1 (make-path :3d t
                 :polar t
                 :closed t
                 :path (list (list (* 0.8  r) 45 45 1)
                    (list (* 0.75 r) 45 45 1)
                    (list (* 0.7  r) 45 45 1)
                    (list (* 0.75 r) 45 45 1)
                    (list (* 0.8  r) 45 45 1)))))
      (print path-1))

The examples in dlocsig.html can get away with the '() form because
they involve just bare numbers.