Installing Common Music

[cmlogo.gif]

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:

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:

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:

  • Apple Midi Driver (2.0.1 or higher)
  • OMS Midi Manager Driver (together with the OMS Midi System extension) version 1.2.3 or higher
  • MTP Midi Manager Driver 2.0 or higher
  • MidiQT extension, together with QuickTime 2.0 for General Midi synthesis without a midi device
  • Directions:

    1. 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
      
    2. 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.
    3. 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:

    1. 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)
      %
      
    2. 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
      
    3. NeXTStep only: If you will be using the MusicKit, go to cm/site/ and type "make":
      % cd cm/site
      % make
      
    4. If you use Common Music with CLM and/or CMN, compile these systems according to their instructions.
    5. 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
      
    6. 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:

    1. NeXTStep only: If you will be using MIDI, install MusicKit_4.1.1.
    2. 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:
    3. Install pcl-gcl.1.1. Use saved_pcl as the base lisp for building CM.
    4. NeXTStep only: If you will be using the MusicKit, go to cm/site/ and type "make":
      % cd cm/site
      % make
      
    5. 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
      
    6. 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:

    1. 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.
    2. 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
      
    3. 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.
    4. 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:

    1. 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:

    2. 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
      
    3. 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.
    4. 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:

    1. If you will use Common Music with CLM and/or CMN, compile these systems according to their instructions.
    2. 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
      
    3. 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:

    1. 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.
    2. 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:

    1. 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.
    2. The MIDI port must be specied as 0, ie (midi-open :port 0)
    3. Only 4000 future messages can be written.
    4. 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.
    5. Simple string output to the terminal is incredibly slow in ACLPC.
    6. 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