CMN in CM 2.4.0 / Re: [CM] new cm-2.4.0 tarball

Larry Troxler
Sun, 24 Nov 2002 21:26:55 -0500

Rick Taube wrote:
> Ive updated the cm-2.4.0.tar.gz file at CCRMA with 99% of functionality for the release. the only thing still missing is importing, ill try to add that soon.
> In this new archive  CLM2 audio and CMN files are back for Common Lisp (not scheme) THe CMN stff has changed -- I've tried to make it easer to work with (no staffer functions, for example). Basically if you want to display anything in CMN you write a little method on 'object->cmn'. there is already one dwefined for midi -- see the CMN example in for details. ill tru to document things in the next few weeks. If you use CMN i would be grateful if you would try it out and let me know if/how it could be improved.

Hi Rick. I tried porting over my CM 2-.3.4 stuff to CM 2.4.0, and for
the most part it looks like CMN is working well in the new version. I
have a bunch of other comments, non CMN-related, but I will save those
for a seperate post.

Bascially, from my limited perspective and use, I have only these minor
observations w.r.t CMN:

First, I think the readme.text is wrong, or at least it doesn't work for
Cmucl on Linux.
When I followed the directions, CMN was not included in the CM core.
What I had to do was load CMN for the _second_ run of the installation
script (where all the CM files are compiled and the script saves the
core image).

Next, I notice that there seems not to be a simple CMN class for
outputing various various stuff to CMN (like the "cmn" class in 2.3.4).
Not matter, it's very trivial to implement, except for the staffing
assignment (see below)

Also, in, it states that the third member of the first possible
form that object->cmn should return (the one to send a note to CMN)
should be a note name. In fact, this can just be a hertz value, in which
case it seems like CMN will find the closest note name. I think that
this detail (if I understand it correctly) can be usefull to document,
because it is typicall that an object will specify hertz (CLM and csound
objects, for example), and there is no function in CM that I can see
that will generate a note name based on a hertz value.

As far as staff assignment goes, I am not sure that the the staff
assignment should be a method on the event object, since a reasonable
way of working might be that the staff assignment could be a last-minute
global decision, relating to how I want to view this piece at this
moment. (The same can be said for note markups - for example I might
want to mark up all notes with fingerings equal to their positions
within their containers - but only just this once.)
However, for now it seems to work for me, and I think I would have to
make some use of CM/CMN before getting a real feel for what comes up in
practice. And it is always possible to have the object methods rely on
global parameters for these kind of decisions.

Larry Troxler

> the tarball is at
> ---------------------------------------------------------------------------
> Features and bug fixes for CM 2.4.0:
> o ported CM to Open MCL/OSX
> o CMN supported again in Common Lisp. I think ive made it
>   much easier to use.  See example in intro.cmn for
>   more info. Please send me feedback on this new method
>   if you use CMN!
> o CLM2/audio supported again in Common Lisp CM. Ill add
>   it scheme next.
> o CM now loads a scheme compatibilty file into Common Lisp
>   unless you tell it not to. To block scheme symbols from
>   being defined in the Common Music package do
>       (push :no-scheme *features*)
>   before you load cm.lisp
> o File versioning now supported by file type. To turn file
>   versioning on/off you call the appropriate function:
>   (set-midi-file-versions! #t)
>   (set-clm-file-versions! #t)
>   (set-audio-file-versions! #t)
>   (set-sco-file-versions! #t)
>   and so on.
> o Changed CD to behave like Linux CD -- calling CD
>   without an arg now puts you in your home directory.
>   This is incompatible with the last release -- sorry!
> o Added PWD function to print current working directory.
> o Added QUIT and EXIT functions to Common Music package.
> o Changed #i instance printing to show slot names rather
>   than keyword initializations.
> o Added <event> class for easy subclassing.
> o Fixed nasty while/until bug in process.
> o Fixed multiple transposer bugs.
> o Fixed multiple range bugs.
> o Ligeti example working.
> o Includes a nice cm script for clisp/Linux that Tobias
>   Kunze wrote. The script even installs if it has to!
> _______________________________________________
> Cmdist mailing list