[CM] Notes from the Metalevel text
Heinrich Taube
taube at uiuc.edu
Thu May 7 06:29:07 PDT 2009
On May 7, 2009, at 7:39 AM, Randolph Latimer wrote:
> Okay, thanks for the update. I'd prefer to keep with CM3, keep
> current.
> Perhaps there are equivalent functions/variables in CM3 for CM2 items,
> such as
> (pwd) -> (cwd) and (cd) -> (chdir)
i guess maybe i should add the old names back, this wasnt intended to
change. for now you can do
(define pwd cwd)
(define cd chdir)
> let me know if there are equivalents to *scale*, (hertz..)
> (keynum...)
in general cm3 names are terser (you want to keep typing down when you
send things interactively )
hertz -> hz
keynum -> key
you dont need *scale* anymore, a scale is just a list of (probably
floating point) key numbers. if you want to define your own scales you
can use the handy 'scale' function, for example this will define a
just major scale on middle C over two octaves (15 steps):
(define just-c-major
(let ((just-major '(9/8 10/9 16/15 9/8 10/9 9/8 16/15)))
(scale 15 60 (ratio->steps just-major)))
since a scale is list you can do anything you want with it, eg
(list-ref just-c-major 7)
(pick just-c-major)
(make-cycle just-c-major)
> (new...)
there are no objects. just use lists to hold your data. to send data
somewhere use one of the send methods or its underlyin function, eg
(mp:midi :key 90)
(send "mp:midi" :key (between 60 90))
> These are nice examples in the text, it'd be good to be able to keep
> similar examples, just update the syntax
its on my todo list, but unfortunately that list is infinately long.
ill do some this summer, if you figure things out send them to me so i
dont have to do it
More information about the Cmdist
mailing list