[CM] Let's hear from CM 1.x users(?)

Rick Taube taube@uiuc.edu
Mon, 18 Nov 2002 09:20:24 -0600


>After working with the latest version, and realizing how much time i've
>spent trying to re-implement things like the linked-to pattern, and
>stella; I've had a thought to try to get this old version working again,

id be interested in learning the full list of things you are missing -- ive tried to support every feature that wasn't a total hack in the newr versions while also trying to make the system feel more like a natual extension to a language rather than some oddity with its own rules.

for example i think you can get the same effect as the linked-to feature you want just by using a transposer object and a 'pval' pattern value.  pval  allows you to stick an arbitrary lisp expression inside a pattern and the pattern will return its evaluated value. the function 'pattern-value' returns the last value that was read from a pattern. so
	(pval (pattern-value x))
inside a pattern will evaluate to the last value of the pattern in the 'x' variable.

here is linked to, i think:


> (new random :notes '(e1 f g a b c2 d) :name 'bass-line))
#<random "bass-line">

> (next #!bass-line)
e1

> (define x (new transposer
              :of (new heap
                    :of '((28 31 35 36)
                          (29 33 36 38)
                          (28 31 35 38)
                          (29 33 36 40)
                          (29 31 35 38) 
                          (31 33 36 40)
                          (29 33 35 38)))
              :on (pval (pattern-value #!bass-line))))

> (next x)
(a3 b3 ef4 fs4)

> (next x)
(af3 b3 ef4 fs4)