[CM] cm news!

Rick Taube taube@uiuc.edu
Sat, 28 Jun 2003 06:58:34 -0500


Several nice things to report:

1. Swets Publishing of Amsterdam has agreed to publish 'Notes from the 
Metalevel' in their 'Studies on New Music Research' books series. 
Apparently they like the book very much:

> Apologies for the delay caused by the reviewing process, but I hope you
> agree with me that it was worth waiting, as it is an excellent review 
> (see
> the attachment). This morning Marc Leman, The 'Studies on New Music
> Research' series editor, informed me that he agrees with the reviewer 
> to
> accept the book for publication in the series.

I want to thank everyone who helped me during the long writing process 
-- it was a very difficult year and I could not have gotten this result 
without the support, comments and advice from the really wonderful 
people on this list!

2. The sourceforge CM project is back in business:

http://www.sourceforge.net/projects/commonmusic

You can now check out CM sources using CVS. Ive created a new 
installation guide to explain how to do this:

http://commonmusic.sourceforge.net/doc/install.html#install_cvs

3. Direct-to-driver MIDI support (i.e. cm's old "midi.port") now works 
in CM 2.4.0 via Grame's Midishare. The CVS repository and the latest 
tarfile on ccrma contains the new MIDI driver code:

ftp://ftp-ccrma.stanford.edu/pub/Lisp/cm/sources/cm-2.4.0.tar.gz

For information on how to install CM with Midishare see:

http://commonmusic.sourceforge.net/doc/install.html#install_ms

The real-time MIDI stuff is still a work in progress and Ive only 
tested it in OpenMCL (osx), MCL 5.0 (osx) and MCL 4.2 (MacOS9.2). 
However the interface should work right now for CMUCL/Linux but I dont 
have access to a linux box now.  I would be grateful if someone would 
try CM+Midishare in Linux/CMUCL and tell me if it works.

I have not had time to update the docs and so the dictionary is not yet 
in CVS. Here are some (minimal) docs on the Midishare interface to get 
you going:
---
CM defines two new IO classes for working with Midishare:

   midishare-stream:  interface to Grame's real-time MIDI library

     A midshare-stream is very similar to the old "midi.port" and how
     Mi_D handles things: you can define a "logical channel map" for
     routing MIDI to various Driver ports, and you can have multiple
     connections active at one time (well, as soon as Grame fixes
     this in OSX...)

   player-stream: interface to Grame's MIDI sequencer library

     A player stream lets CM processes either "add" or "replace" 
individual
     tracks of a Midishare player (sequencer). Once CM outputs to a
     player you can use the following set of function interactively in
     the lisp inpterpreter to control playback behavior:

          player-start
          player-stop
          player-pause
          player-cont
          player-set-tempo
          player-mute
          player-unmute
          player-solo
          player-unsolo
          player-save-midifile
          player-load-midifile

You can create midishare-streams or player-streams using 'new',
'io' or by including a ".ms" or ".mp" extension (for midishare-stream
and player-stream, respectively) in the name.  In addition, for
'backwards compatibility', the special name "midi.port" will open a
Midishare stream whose client name is set to "Common Music".

(events (foo) "midi.port") ; send events to Midishare
(events (foo) "foo.ms")    ; send events to Midisahre from "foo" client
(events (foo) "bif.mp")    ; send events to a Player named "bif"