Installing Common Music
Heinrich Taube
School of Music, University of Illinois
taube@uiuc.edu
Contents
Installing Binaries
Precompiled runtime versions of Common Music are available
for IRIX, DOS and NeXTStep. These archives include system documentation
and example files.
Use your Web client or anonymous FTP in binary mode to transfer:
- CCRMA, Stanford (kunze.stanford.edu:/pub/)
- IRIX: cm_clisp.bin.tgz (temporarily unavailable! 10.8.96)
- DOS: cm-clisp.zip (temporarily unavailable! 10.8.96)
- NeXTstep: cm-clisp-next.tar.gz (temporarily unavailable! 10.8.96)
Unpack the archive and see the enclosed README for further information.
Installing Sources
Transferring Source archives
Use your Web client or anonymous FTP in binary mode to transfer the
source archives from:
- CCRMA, Stanford (ccrma-ftp.stanford.edu:/pub/Lisp/cm/*)
- ZKM, Karlsruhe (ftp.zkm.de:/pub/cm/cm.*)
Installing on Unix:
Use your Web client or transfer cm.tar.gz using binary FTP mode
and restore the archived cm source folder. You can rename the source
folder after is has been restored.
% mv cm.tar.gz /usr/local/lisp
% cd /usr/local/lisp
% gzcat cm.tar.gz | tar xvf -
Installing on Macintosh:
Transfer cm.sea.bin with your Web client, Fetch, or FTP in
MacBinary mode. (If MacBinary mode is not possible, transfer in
binary mode and then use the freely available MacBinary
application to convert cm.sea.bin to the Mac application file cm.sea.)
Double-click on cm.sea. The installation dialogue will ask for the
location to restore the archived CM folder to. You can rename the source
folder after is has been restored.
Installing on DOS:
Use your Web client or transfer cm.zip using binary FTP mode. Use
PKUNZIP to restore the archived CM directory:
MOVE CM.ZIP \LISP
CD \LISP
PKUNZIP -D CM.ZIP
You can rename the CM source directory after the archive has been
restored.
Compiling Sources
Compiling in MCL (2.0.1 or 3.0)
Common Music has been tested in MCL 3.0p2 and MCL 3.9. MCL 2.0.1 is no
longer supported.
Common Music runs on all System 7 or higher Macintoshes with at least
6MB of RAM and 8 MB of hard disk storage. Using Midi requires the Apple
Midi Manager system extension version 2.0.1 or higher and a midi driver.
Currently supported midi drivers are:
Directions:
- Read about the build parameters.
Here is an example of what reasonable parameter settings might
look like for a Mac:
cm-directory "HD:Lisp:CM:"
cm-image-name "HD:Lisp:CM:Common Music"
syntaxes '(:MIDI :CSOUND)
extensions nil
save? t
- Start up Lisp and load cm:build:make-cm.lisp. The make-cm script
will prompt you for whatever information it needs.
Do not make Common Music in a Lisp image that already contains Common Music.
- Allocate at least a 6 MB heap size for the Common Music application.
If the image contains CMN the heap should be at least 8 MB.
Compiling in ACL (3.1 or 4.2)
Common Music has been tested in ACL 3.2.1 and ACL 4.2.
Directions:
- If you are using ACL 3.1.2, install and compile PCL. You can
get PCL from ccrma-ftp:/pub/Lisp/pcl.tar.Z.
% mkdir pcl
% cd pcl
% zcat pcl.tar.Z | tar xvf -
% cl
<cl> (load "defsys.lisp")
<cl> (pcl::compile-pcl)
<cl> (exit)
%
- NeXTStep only: If you will be using MIDI, install MusicKit_4.1.1.
Then go cm/midi/next/ and make the binary:
% cd cm/midi/next
% make CFLAGS=-DACL
- NeXTStep only: If you will be using the MusicKit, go to cm/site/
and type "make":
% cd cm/site
% make
- If you use Common Music with CLM and/or CMN, compile
these systems according to their instructions.
- Read about the build parameters.
Here is an example of what reasonable parameter settings might
look like for NeXT/Unix:
cm-directory "/usr/local/lisp/cm/"
cm-image-name "/usr/bin/cm"
clm-directory "/usr/local/lisp/clm/"
cmn-directory nil
pcl-directory "/usr/local/lisp/pcl/"
syntaxes '(:MIDI :CLM :MUSICKIT)
extensions nil
save? t
- Start up Lisp and load cm/build/make-cm.lisp. The make-cm script
will prompt you for whatever information it needs.
Do not make Common Music in a Lisp image that already contains Common Music.
Compiling in GCL (1.1)
Common Music has been tested in GCL 1.1 on NeXT/NeXTStep Intel.
Directions:
- NeXTStep only: If you will be using MIDI, install MusicKit_4.1.1.
- NeXTStep only: If you will be using Common Music with MIDI and/or CLM,
prelink GCL with clm's libmus.a and/or /usr/local/libmusickit.a:
- Go to the CLM source directory and type libm to make libmus.a:
% cd /clm
% libm
- If GCL is already installed, delete the current images:
% cd gcl-1.1/unixport
% rm raw_gcl saved_gcl
- Get gcl-next.tar.z from ccrma-ftp:/pub/Lisp and restore in the
main gcl directory:
% cd gcl-1.1
% gzip -cd gcl-next.tar.z | tar xvf -
this installs new defs for NeXT and NeXT386 that have
the proper linking commands for the libaries.
Next, edit either h/NeXT.defs or h/NeXT386.defs and change the
-L path at the end of the LIBS= statement to point to your
CLM source directory.
- Type add-defs in the main GCL directory as appropriate and
(re)make GCL:
% add-defs NeXT
% make
OR
% add-defs NeXT386
% make
- Install pcl-gcl.1.1. Use saved_pcl as the base lisp for building CM.
- NeXTStep only: If you will be using the MusicKit, go to cm/site/
and type "make":
% cd cm/site
% make
- Read about the build parameters.
Here is an example of what reasonable parameter settings might
look like for Unix:
cm-directory "/usr/local/lisp/cm/"
cm-image-name "/usr/bin/cm"
clm-directory "/usr/local/lisp/clm/"
cmn-directory nil
pcl-directory "/usr/local/lisp/pcl/"
syntaxes '(:MIDI :CLM :CSOUND)
extensions nil
save? t
- Start up Lisp and load cm/build/make-cm.lisp. The make-cm script
will prompt you for whatever information it needs.
Do not make Common Music in a Lisp image that already contains Common Music.
Compiling in CLISP (1995-08-12, DOS and Unix)
Common Music has been tested in CLISP 1995-08-12 on NeXTStep.
DOS Directions:
- The DOS port assumes the source extensions: .LSP, .FSL, .MID, .TXT and .HTM. If you did not restore CM from the CM.ZIP archive make sure that the .lisp, .fasl, .midi, .text and .html files have their proper file extensions.
- Read about the build parameters.
Here is an example of what reasonable parameter settings might
look like for DOS:
[Note: the double backslash is necessary for DOS directories in Lisp.]
cm-directory "c:\\cm\\"
cm-image-name "c:\\cm\\cm.mem"
clm-directory nil
cmn-directory nil
pcl-directory nil
syntaxes '(:midi :csound)
extensions nil
save? t
- Start up Lisp and load CM\BUILD\MAKE-CM.LSP. The make-cm script
will prompt you for whatever information it needs.
Do not make Common Music in a Lisp image that already contains Common Music.
- Make a CM.BAT script that boots clisp using the saved image.
It would look something like:
c:\clisp\lisp.exe -M c:\cm\cm.mem %1 %2 %3 %4 %5 %6 %7 %8 %9
Unix Directions:
- NextStep only: If you will be using MIDI you must prelink CLISP
to the mididriver. Make sure to replace {CLISP} and {CM}
with their
proper source directory names on your machine when you perform the
following steps:
- Install MusicKit_4.1.1.
- Go to {CLISP}/src/base directory and create a new lispinit.mem
with the Common Music package predefined (this fixes a CLISP bug).
% cd {CLISP}/src/base
% lisp.run -M lispinit.mem
> (make-package "COMMON-MUSIC")
> (saveinitmem "lispinit.mem")
> (exit)
%
Be sure to use this new lispinit.mem as the replacement for the
original when doing the clisp-add-module-set below.
- Next, go to {CM}/midi/next directory and make the object files:
% cd {CM}/midi/next
% make CFLAGS=-DCLISP
% {CLISP}/src/base/lisp.run -M {CLISP}/src/base/lispinit.mem -c
clisp-next-midi.lisp
- Next, go to {CLISP}/src directory and make the links:
% cd {CLISP}
% clisp-link create-module-set midi {CM}/midi/next/clisp-next-midi.c
% cd midi
% cp {CM}/midi/next-midi.o next-midi.o
- Add next-midi.o to the end of NEW_LIBS and NEW_FILES in link.sh:
% cd ..
% clisp-link add-module-set midi base base+midi
- The startup command for the MIDI equipped version of clisp is now:
% base+midi/lisp.run -M base+midi/lispinit.mem
You will use this as your base CLISP image for building Common Music
- Read about the build parameters.
Here is an example of what reasonable parameter settings might
look like for a NeXT:
cm-directory "/usr/local/lisp/cm/"
cm-image-name "/usr/local/lisp/cm/cm.mem"
clm-directory nil
cmn-directory nil
pcl-directory nil
syntaxes '(:MIDI :CSOUND)
extensions nil
save? t
- Start up Lisp and load cm/build/make-cm.lisp. The make-cm script
will prompt you for whatever information it needs.
Do not make Common Music in a Lisp image that already contains Common Music.
- Make script that boots clisp using the saved image. Try something like:
#!/bin/csh -f
/usr/local/lisp/clisp/src/lisp.run -M /usr/local/lisp/cm/cm.mem $*
Compiling in CMUCL (17f)
Common Music has been minimally tested in CMUCL 17f on SGI/IRIX 5.3.
Directions:
- If you will use Common Music with CLM and/or CMN, compile
these systems according to their instructions.
- Read about the build parameters.
Here is an example of what reasonable parameter settings might
look like for a NeXT:
cm-directory "/usr/local/lisp/cm/"
cm-image-name "/usr/local/lisp/cm/cm"
clm-directory "/usr/local/lisp/clm/"
cmn-directory nil
pcl-directory nil
syntaxes '(:MIDI :CSOUND)
extensions nil
save? t
- Start up Lisp and load cm/build/make-cm.lisp. The make-cm script
will prompt you for whatever information it needs.
Do not make Common Music in a Lisp image that already contains Common Music.
Known Problems:
CMU does not currently support LOAD-FOREIGN on SGI so MIDI real
time is not implemented.
Compiling in ACL/PC
Common Music has been tested in Franz ACLPC 2.0 with the following system
configuration:
- Intel 486 33 MHz with 16 Meg RAM
- MSDOS 6.0
- Windows 3.1
- Visual C++ 2.0
- Franz CL/PC Common Lisp with all patches loaded.
Directions:
- Start up Lisp and load CM\BUILD\MAKE-CM.LSP. The make-cm script
will prompt you for whatever information it needs.
Do not make Common Music in a Lisp image that already contains Common Music.
- You will probably want to make a "program link" in Window's Program
Manager so you can double click to boot the Common Music image.
Midi real time:
The midi connection was implemented by Joe Fosco, fosco@ils.nwu.edu.
Its .dll is supplied so you dont have to compile anything. The
connection currently supports a maximum of 4000 future messages.
Known Problems:
- Midi reading currently does't work because of a bug in ACLPC's foreign
function interface. Hopefully this will work some time in the future.
- The MIDI port must be specied as 0, ie (midi-open :port 0)
- Only 4000 future messages can be written.
- Some demo script files refer to .midi file extensions and midi port :A.
Change these to .MID and 0 before playing around with the scripts.
- Simple string output to the terminal is incredibly slow in ACLPC.
- Pasting to the Listener is sometimes problematic.
About the Build Parameters
When build/make-cm.lisp is loaded into lisp it prompts for the informtion it needs to compile, load and save Common Music. The settings you specify will be (optionally) saved in a site configuration file. This file can be used in subsequent builds to save the system exactly the way you specified.
Experienced users can call make-cm directly with the build information
specified as keyword arguments to the function. Here is an explanation
of the build parameters:
KEYWORD DESCRIPTION DEFAULT VALUE
cm-directory Common Music source directory <current directory>
cm-image-name The application file to build, if any. <cm-directory>/cm
site-directory Directory for site customized files. <cm-directory>/site
If you specify a directory other than
the default, you must move any scripts
from cm/site that you intend to use to
your personal site directory.
bin-directory Where to put the binaries if you don't <cm-directory>
keep them with the sources.
pcl-directory If you use PCL (public domain CLOS), NIL
set this variable to the PCL source
directory. You must have compiled PCL
before building Common Music.
clm-directory If you use CLM (Common Lisp Music) set NIL
to the CLM binary directory. You must
have compiled CLM before building
Common Music.
cmn-directory If you use CMN, set to the CMN source
directory. You must have compiled CMN
before building Common Music.
save? If T, make-cm compiles sources and :IF-NO-COMPILE
saves the cm application in one pass.
If :IF-NO-COMPILE, the build script
either compiles sources or loads the
binaries and saves the application if
no sources needed compilation. If NIL,
make-cm script compiles/loads sources
but will not save an application.
The :IF-NO-COMPILE option results in the
smallest application size.
syntaxes The list of output syntaxes to build '(:MIDI :CSOUND)
into Common Music. Select any from:
:MIDI
:CLM
:CMN
:CSound
:MusicKit
:CMix
:CMusic
:RT
:SGIMix
The first syntax in the list becomes
the default syntax when the system
boots up. You must load clm and cmn
before calling make-cm if you want cm
to build withto build with either the
:CLM or :CMN syntax.
capella Whether to include Capella or not. T
[MCL only]
extensions Optional list of additional files to NIL
load.
©MCMXCV by
hkt@ccrma.stanford.edu