[CM] CM 2.3.3 available
Fri, 26 Apr 2002 12:12:08 -0500
CM 2.3.3 is available from ccrma-ftp:
Sources (linux, mac, windows):
This release ports CM to the new ACL and CLISP versions, improves
the CLM interface (thank you Anders Vinjar) and finishes tunings
and modes. The final version of tunings and modes has caused some
significant changes to the system. These changes are all documented
in a new chapter "Frequency, Tunings and Modes" in the reference
manual (see: doc/ref/scales.html). Almost all the changes are
Features and bug fixes in CM 2.3.3
o CM ported and tested in:
* ACL 6.1 Windows/Linux/OSX. (You can get a free, renewable
license for ACL 6.1 from http://www.franz.com.)
* CLISP 2.28 Windows/Linux.
o Improved CLM support:
* New IMPORT-EVENTS method for .clm files parses instrument
calls into CM objects and returns them in a list or seq.
* CM now passes _all_ with-sound options to CLM.
* All file and dac io now handled direclty by CLM. the CLM
entries in cm:etc;handlers.lisp have been removed.
* New :TRACE-OUTPUT option for AUDIO-FILE (.aiff, .wav .snd)
causes CLM events to print their instruments and start times
as they are output to the open audio file.
* INS subclasses now inherit default values for &optional
* Parameter decimal formatting in CLM score files removed.
* CM filenames with "wav", "snd" or "aiff" extensions now
pass default :TYPE and :FORMAT args to CLM:INIT-WITH-SOUND
so the sound file's type and data format agree with
the file's extension. this behavior can be
overridden woth explicit :TYPE and :FORMAT values.
o Tunings and modes are fully implemented.
* Tunings can now be defined with note tables.
* Mode steps can now be defined in terms of "typed intervals"
(see discussion below) so notes returned in the mode agree
with the mode's current tonic + step spellings.
* Modes can now be defined on any tuning, not just the
standard chromatic scale.
* Tuning keynums are "unbounded" so hertz <-> keynum conversion
can be calculated in any octave. (Tuning note tables are only
defined over a specified number of octaves, default is 10.)
* New file cm:examples;scales.cm contains some example tunings
and mode definitions.
o Arguments to NOTE, KEYNUM, HERTZ have changed to allow new
functionality. The most important changes are:
* Specific tunings and modes can bw specied to the functions
using the new :IN and :FROM argument.
:IN specifies the scale to use, and defaults to *SCALE*.
The :FROM argument allows keynums and notes in one scale to
be converted from one scale to their equivalents in another
* New :ACCIDENTAL argument to NOTE causes the note returned
to agree with the specified accidental. The value of
:ACCIDENTAL can also be a list, in which case the list
specifies a preference ordering of possible note spellings.
? (note 60 :accidental 's)
* Hertz values input to NOTE and KEYNUM must be explicitly
"tagged" by adding :HERTZ or :HZ (symbol or keyword) after
the value. This behavior is not "backward compatible".
? (note 60) ; return note name of keynum 60.
? (note 60 :hz) ; return note name of frequency 60.
* The variable *NUMERICAL-FREQUENCY-FORMAT* has been removed.
o New "typed interval" preserves note spelling in transposition.
Typed invervals are created using the new INTERVAL function
and can be decoded using DECODE-INTERVAL. See the new section
about type intervals in the standard scale documentation in
o TRASPOSE now allow the transpostion amount to be either the
integer half steps or a "typed interval".
o New global variable *SCALE* holds the default scale (tuning or
mode) used by functions like NOTE, HERTZ, KEYNUM and TRANSPOSE.
*SCALE* is initialy set to the standard chromatic scale.
o New global variable *STANDARD-CHROMATIC-SCALE* holds an instance
of the standard chromatic scale.
o The functions CENT->SCALER and SCALER->CENT have been
renamed to CENTS->SCALER and SCALER->CENTS.
o The function OCTAVE has been renamed OCTAVE-NUMBER.
o The functions MODEIFY and UNMODEIFY have been removed.
The same functionality can be achieved by using the
:FROM and :IN scale arguements to KEYNUM and NOTE.
o THe macro INTERVALS is no longer documeted and will dissapear
in an upcoming releawse. I will replace this messy hack by
a new object class that implements complex pattern transposition.