[CM] cm-2.3.4 available

Rick Taube taube@uiuc.edu
Mon, 20 May 2002 12:21:51 -0500


CM 2.3.4 is available from ccrma-ftp:

sources (linux, mac, windows):
ftp://ccrma-ftp.stanford.edu/pub/Lisp/cm/sources/cm-2.3.4.tar.gz
ftp://ccrma-ftp.stanford.edu/pub/Lisp/cm/sources/cm-2.3.4.sea.bin
ftp://ccrma-ftp.stanford.edu/pub/Lisp/cm/sources/cm-2.3.4.zip

binaries (mac/windows):
ftp://ccrma-ftp.stanford.edu/pub/Lisp/cm/binaries/cm-2.3.4-ppc.sea.bin
ftp://ccrma-ftp.stanford.edu/pub/Lisp/cm/binaries/cm-2.3.4-win32.zip


Whats new:

o CM ported to SBCL Common Lisp 0.7.2

o New RANGE pattern enumerates numbers.  Can also
  be used for cycles and bounded random walks.

o New TRANSPOSER object replaces the hackish intervals macro.
  The object also supports 12-tone manipulations like
  inversion,  retrograde, retrograde-inversion and  
  modulus from an offset. 

o DEFPROCESS can now return a list of processes. See the new 
  file "cm:examples;reich.cm" for an example of this.  The
  file "cm:examples;ligeti.cm" also contains process lists
  as well as uses of the new RANGE and TRANPOSER objects.

o The SPROUT and OUTPUT process clauses now allow lists of
  objects to be sprouted or output.

o New "typed" pattern inits can be used in place of OF:
    NOTES
    KEYNUMS
    RHYTHMS
    AMPLITUDES
    INTERVALS
  These all cause data specified as their value to be parsed
  according to the function for which the init is named.  For
  example, the following two are equivalent:

    (new cycle of '(c5 d e) parsing #'note)
    (new cycle notes '(c5 d e))

o KEYNUM and NOTE now support an explicit :TO scale.

o New tuning entries in cm:etc;examples;scales.cm for
  Sargam, Just, Meantone, Werckmeister 3, and 
  Wendy Carlos' Alpha scale.

o New LOOKUP function performs non-interpolating x-to-y lookup.
  Y values do not need to be numbers.

o New RESCALE-ENVELOPE rescales an envelope according to new
  upper and lower bounds on either axis.

o New SCALE-MOD function performs modulus operations on notes.

o DEFOBJECT now defines slot accessors for slot discriptions that
  don't explicity provide them. The name of the accessor will be
  <class>-<slot> where <class> is the name of the object being
  defined and <slot> is the name of the slot. To declare a slot
  without any accessor specify :ACCESSOR NIL in its description. 

o Examples of pattern definitions like:
    (new cycle a b c)
  have been removed from documentation. Examples now always
  show explicit OF initializations like:
    (new cycle of '(a b c))

o The (new pattern ... in ...) hack has been removed from
  documentation but continues to work.

o TRANSPOSE now accepts note names in its second arg.

o New contrib file: cm:etc;contrib;bezier.lisp implements
  bezier curves in Plotter thanks to Bret Battey.

o More example tunings and modes added to "cm:examples;scale.cm"

o cm:ect;contrib;cm.el supports easy point and region evaluation
  for inf-lisp in XEMACS. also supples an inferior lisp that runs
  in its own frame and key bindings that allow APPLE commands
  for eval, copy, paste etc.

o Lots of mode/tuning bugs fixed, thanks to Bret Battey for
  finding them!