[CM] new cm-2.4.0 tarfile available
Thu, 22 May 2003 07:11:38 -0500
Ive updated the cm-2.4.0 tarfile at ccrma:
The new tarfile includes the ability to send event output to arbitrary
Lisp streams (see below) and reimplments the 'import-events' function
for midi files. My next step is to rebuild the commonmusic cvs site at
sourceforge and to upload everthing there. Im also looking at midishare
as a cross platform solution to direct midi io in common music. anyone
want to help? :)
here are the details of the new tarfile:
Features and bug fixes in cm-2.4.0:
o event output can now be sent to arbitrary streams in additin to files.
All of the io classes that handle input/output have been renamed
'-stream' to reflect this new generalization:
sco-file -> sco-stream
clm-file -> clm-stream
audio-file -> clm-audio-file
midi-file -> midi-stream
cmn-file -> cmn-stream
To output to a file just specify the filename as before.
To output events to an arbitrary stream, create the event stream
and use its :stream argument to pass it your Lisp stream destination.
For example, to send CSound events to stdout:
(define out (new sco-stream :stream *standard-output*))
(events (blur) out :header whatever)
Note that some Lisp implementations provide special functions
for specialized output to pipes and streams. For example in CLISP
you can used the 'make-pipe-output-stream'. to pipe your output to
(define out (new sco-stream :stream (make-pipe-output ...)))
All of cm's event streams classes now have a new 'mime-type' property
that is (currently) unused.
o import-events for midi-streams has been completely reimplemented
* tempo changes in level1 midi files are now handled correctly.
* track zero is always parsed for a 'tempo map'.
* tempo maps are applied to all imported tracks in a level1 file.
* tempo and tempo maps in the file can be overridden using the
new :tempo arg to import-events.
* :time-format for importing is now either :beats or :ticks.
The default is :beats, which causes tempo scaleing. If :ticks
are specified then time values are imported using the raw tick
values in the file.
* the :note-type arg has been renamed :keynum-format and allows
:hertz in addition to :keynum or :note.
o function 'fm-spectrum' added to the sources (see chapter 23)
o new function 'scale-order' puts a list of notes/keynums in
some canonical order:
(scale-order list [type] [unique?])
List is the list to order. Type is a keyword that specifies
how the list is ordered, Possible values are :up :down or :random
The default value is :up. If unique? is true then the list
returned by scale-order will contain only unique frequency values.
o CM's src/ subdirectory has TAGS file for searching using meta-. in
M-x visit tags file
To view the cm sorces for a function or symbol at point.
o 'keynum' and 'note' now correctly handle Lists of hertz values,
o the 'with' operator in 'process' is now macroexpanded correctly.