<?php require_once "fs_inner_context.inc"; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">

<title><?php echo $HTML_TITLE; ?></title>

</head>

<?php echo html_bgcolor_body($BG_COLOR); ?>

<!-- Standard hierarchical header structure -->

<?php echo $CS_HEADER_HTML; ?>

<?php echo html_linked_text("<em>Courses</em>", $CS_COURSES_ROOT_URL); ?>

<?php echo $HTML_HEADER; ?>

<hr>

<?php echo html_header(HTML_HEADER_LEVEL + 1, "Computer Systems"); ?>

<p>You should have an account on the Department of Computer Science's
<em>Unix/Linux</em> systems, which gives you access to the
<em>Linux</em> PCs in the

<?php echo html_linked_text("Ryerson Linux Lab",
                            "http://www.cs.uchicago.edu/info/linux_lab.php"); ?>.
If you don't have a CS account, get one by filling out
<a href="https://www.cs.uchicago.edu/info/services/account_request">the form</a>.

The PCs in this lab run <em>Linux</em>, which for our purposes is just
<em>Unix</em>. The PCs are named after famous trains. They are
accessible by remote login from outside with <code>ssh</code>. If you
are accustomed to using <code>rlogin</code> or <code>telnet</code>,
start using <code>ssh</code> instead. These PCs are configured for
interactive sound output, using your own headphones. Plug your
headphones into the outlet on the left-hand side of the base of the
monitor.</p>

<p>You may work wherever you like, but I will only take responsibility
for software on the Computer Science systems. For the demonstrations
in your final interview, I will provide a <em>Linux</em> PC with all
of the software that is on a PC from the lab.</p>

<?php echo html_header(HTML_HEADER_LEVEL + 1, "Software and Data"); ?>

<?php echo html_header(HTML_HEADER_LEVEL + 2, "Utility Software"); ?>

<p>In order to work effectively, you need to use a fair variety of
<em>UNIX</em> utility software. If you are not familiar with much of
this already, or able to pick it up very quickly, you may have trouble
with the course. I recommend:

<dl>
  
  <dt><em>UNIX</em> shell:</dt>
  <dd>You can't do <em>UNIX</em> without a shell --- the interactive
  system that processes your commands. I prefer <code>bash</code>, but
  if you are accustomed to another shell, stick with it.<br><br></dd>

  <dt><em>XWindows</em>:</dt>
  <dd>In order to co-ordinate your work with a number of different
  pieces of utility and sound-processing software, you need to work in
  the <em>XWindows</em> system. <em>classes</em>, the Macintosh
  <em>X</em> terminals in Ryerson Annex 175, and the
  <em>Linux</em> PCs all run <em>XWindows</em>. <em>XWindows</em> is a
  protocol for managing graphics displays, but it does not provide any
  particular style of display on its own.<br><br></dd>

  <dt>Window manager:</dt>
  <dd>The particular style of graphical interaction in
  <em>XWindows</em> is controlled by a <em>window manager</em> of your
  choice, plus your customization of that window manager. My favorite
  is <code>fvwm2</code>. With the right choice of window manager and
  the right customization, you can simulate the look and feel of
  Microsoft Windows or Macintosh.<br><br></dd>

  <dt>Editor:</dt>

  <dd>To prepare programs and supporting documents, an editor that
  uses the graphics capabilities of the PCs is a big help. I strongly
  recommend <em>Emacs</em>. Some people violently prefer
  <em>vi</em>. Use what you already know.<br><br></dd>

  <dt>Web browser:<dt>

  <dd>To read the documents that I've prepared for you, and
  participate in the online discussion. I recommend <em>NetScape</em>
  on graphics stations, <em>Lynx</em> on character terminals.<br><br></dd>
       
  <dt>Mail:</dt>

  <dd><tt>mm</tt> seems to be the usual thing for processing mail on
  Q/E/K/W. I use <code>mh</code>. Use whatever you like.<br><br></dd>

  <dt>Online manual:<dt>

  <dd>Of course, you can type the <code>man</code> command to the
  shell, but I recommend <em>Xman</em>, running in its own window,
  whenever you are on a graphics terminal. A lot of documentation is
  presented through the <code>info</code> command instead of
  <code>man</code>.<br><br></dd>

  <dt>Document processing:</dt>

  <dd>Textual materials that you want to share online will be most
  useful if you can provide them in <em>HTML</em> format, or
  <b>LaTeX</b> if they have significant mathematics. I do not insist
  that you learn <b>LaTeX</b> just for this course, but it is an
  extremely useful facility for typesetting mathematical and technical
  material, so if you find time to learn it you will get a lot of
  value over the years.<br><br></dd>

  <dt>Version control:</dt>

  <dd>I strongly recommend that you keep track of all your work other
  than soundfiles (e.g., <em>CSound</em> orchestra and score files)
  with <em>RCS</em> (<em>R</em>evision <em>C</em>ontrol
  <em>System</em>). In each working directory, create a subdirectory
  named <code>RCS</code>. When you create a file, check it in with the
  command

  <blockquote><code>ci -l <var>&lt;filename&gt;</var></code></blockquote>

  From time to time as you are working on a file, repeat the
  command. <code>ci</code> will prompt you for a desription of the
  changes, but the description is not nearly as important as just
  keeping track of the changes themselves. Most of the time you won't
  care about the series of versions stored for you by
  <em>RCS</em>. Occasionally, you will want to find out what changes
  you made recently, and you'll give the command 

  <blockquote><code>rcsdiff <var>&lt;filename&gt;</var></code></blockquote>

  To view the sequence of versions, use

  <blockquote><code>rlog <var>&lt;filename&gt;</var></code></blockquote>

  When you get all screwed up, and wish you could get back to an
  earlier version, you can. At that point, read the documentation

  <blockquote><code>man rcs</code></blockquote>

  and

  <blockquote><code>man co</code></blockquote>

  to figure out how to use <code>co</code> and other features of
  <em>RCS</em> to back out of your errors.</dd>

</dl>

<?php echo html_header(HTML_HEADER_LEVEL + 2, "Sound Data"); ?>

<dl>

  <dt>Audio samples:</dt>

  <dd>A number of sound files have been installed on CS machines.
  Each of these files contains a recording of one note played by an
  acoustic instrument.  All sounds are sampled mono, at 44.1 kHz, 16
  bit.  They are in NeXT format (readable by MixViews), and can be
  found in <tt>~ilia/Samples</tt>.<br><br></dd>

  <dt><a href="http://theremin.music.uiowa.edu/">University of Iowa
  Electronic Music Studios</a></dt>

  <dd>The studios provide a
  <a href="http://theremin.music.uiowa.edu/MIS.html">database</a>,
  under construction, of recordings of orchestral instruments in an
  anechoic chamber.<br><br></dd>

  <dt><a href="http://sparky.parmly.luc.edu/sharc/">SHARC</a>:

  <dd>A database of Fourier analyses for notes played on various orchestral
      instruments. The Web interface appears to be broken. I have a
      <?php echo html_linked_text("local mirror of the data",
        "http:people.cs.uchicago.edu/~odonnell/Scholar/Data/SHARC/directory.php"); ?>.
      Watch out---the amplitude values are stored in <em>decibel</em>
      logarithmic units. I found the SSHARC data at
      <?php echo html_linked_text("Universit&auml;t Hannover",
             "http://www.tnt.uni-hannover.de/soft/audio/packages/shark.html"); ?>.
      Hannover's copy appears to have come from
      <?php echo html_linked_text("Sussex University",
             "ftp://ftp.biols.susx.ac.uk/pub/sandell/sharc.tar.Z"); ?>.
  </dd>
       
</dl>

<?php echo html_header(HTML_HEADER_LEVEL + 2, "Sound Software"); ?>

<dl>

  <dt>CSound:</dt>

  <dd>This is a computer music system that we will use for most of our
  project work. It performs very well for the sort of additive
  synthesis and filtering that we need, but as a language it is very
  obtuse. I have some
  <a href="Csound/OD_examples/contents.html">examples</a> that you can
  edit. Read the
  <a href="http://www.lakewoodsound.com/csound/hypertext/manual.htm">CSound manual</a> for
  more information.<br><br></dd>

  <dt>Cecilia:</dt>

  <dd>A GUI front end for Csound, with a lot of stuff added. It looks
  fairly polished, but most of the interesting features aren't covered
  in the <a href="http://www.musique.umontreal.ca/electro/CEC/man/">manual</a>.<br><br>

  <ul>

  <li>I cooked up a slightly improved additive synthesis module for
  classwork:
  <?php echo html_linked_text("<code>AdditiveSynth_OD</code>",
                              "Cecilia/AdditiveSynth_OD"); ?>.

  Load it with the <em>Open</em> item in the <em>File</em> menu.<br><br></li>

  <li>When the additive synthesis graphics window comes up, it will be
  a mere horizontal stripe. Stretch it out vertically until you see
  buttons for 16 harrmonics followed by <em>Envelope</em> on the left
  side.<br><br></li>

  <li>Save your work in <em>snapshots</em> (<em>Save Snapshot as
  ...</em> in the <em>File</em> menu).<br><br></li>

  <li>Here is a snapshot of a crude clarinet sound:
  <?php echo html_linked_text("<code>crude_clarinet_1.snp</code>",
                              "Cecilia/crude_clarinet_1.snp"); ?>.
  If you are using a local copy of the <code>AdditiveSynth_OD</code>
  module file, you need to edit the second line of the
  <code>crude_clarinet_1.snp</code> snapshot file to point to the
  module file. This is not intended to be a good example. It is only
  intended to suggest possibilities.<br><br></li>

  <li>To get sound out of <em>Cecilia</em>, we need to retarget its
  <em>CSound</em> binary. I will post instructions soon.<br><br></li>

  <li>I'm still trying to figure out how to produce a sound file from
  <em>Cecilia</em>.<br><br></li>

  </ul>

  </dd>

  <dt><a href="http://ccrma-www.stanford.edu/CCRMA/Software/snd/snd.html">snd:</a></dt>

  <dd>A graphical sound-file editor.  It is installed on the linux machines;
  the command to run it is <code>snd</code>.<br><br></dd>
       
  <dt><a href="http://www.music.columbia.edu/~stanko/About_Ceres3.html">Ceres3:</a></dt>

  <dd>A spectral sound-file editor.  It allows the user to graphically creare
  and or edit a spectrum, transform it in a variety of ways and listen
  to the results.  Ceres is an ongoing project, contains a large set of features
  (and some bugs).  It is currently installed on the linux machines; the
  command to run it is <code>ceres3</code>.<br><br></dd>
       
  <dt><a href="http://www.create.ucsb.edu/~doug/htmls/MiXViews.html">MiXViews:</a></dt>

  <dd>A graphical sound-file editor, with some analysis tools.  The
  command to run MiXViews is <code>mxv</code>.<br><br></dd>

  <dt><a href="http://www.cee.hw.ac.uk/~richardk/">DAP:</a></dt>

  <dd>Another sound-file editor with processing features.  Allows one to
  add effects, such as reverb, delay, flanger, etc. to the sound-files.
  Has a useful looping feature.  To run it, type <code>DAP</code> (all
  CAPS).<br><br></dd>

  <dt><a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/rbd/www/doc/nyquist/index.html">Nyquist:</a></dt>

  <dd>A sound synthesis tool built on top of XLISP.
  Nyquist is a much cleaner language than <em>CSound</em>, but it doesn't
  perform nearly as well.<br><br></dd>

  <dt>MATLAB:</dt>

  <dd>A software package providing a variety of tools for manipulating
  and representing numerical data. It is oriented particularly toward
  vector and matrix operations. It will play a vector of samples as a
  sound. MATLAB is found on most platforms at UC.<br><br></dd>

  <dt>Octave:</dt>

  <dd>Free software similar to MATLAB.<br><br></dd>

  <dt>Scilab:</dt>

  <dd>Free software providing similar functionality to MATLAB and
  Octave, but in a very different style.<br><br></dd>

  <dt><a href="http://ems.music.uiuc.edu/cmp/software/sndan.html">Sndan:</a></dt>

  <dd> A software package that provides musical sound spectral
  analysis, graphics, spectral modification, and additive synthesis.
  The <em>Sndan</em> applications are in
  <code>/opt/sndan/default/bin</code>. You may run them by typing
  <code>/opt/sndan/default/bin/gopvan</code>, etc. Or, you may add
  <code>/opt/sndan/default/bin</code> to your <em>Unix</em>
  <code>PATH</code> variable, and then you only need to type
  <code>gopvan</code>, etc. Read the documentation
  files in <code>/opt/sndan/default/doc</code>.
  </dd>

</dl>

<?php echo html_footer("index", 0, 1); ?>
<!-- hhmts start -->
Last modified: Wed Apr 30 22:53:22 CDT 2003
<!-- hhmts end -->

</body>

</html>
