[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):

binaries (mac/windows):

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:
  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!