Computing Resources for CS295

Last modified: Fri Apr 5 15:19:22 1996

Computer Systems

We will do most of the work for Com Sci 295 on the SGI Indy machines in Ryerson Annex 175 (the "Graphics Lab"). The tutors in Ryerson Annex 178 (the "Mac Lab") will let you in to 175 during lab hours. All students in the class will have CS computer accounts, giving access to the SGIs and other CS departmental resources. The Irix system is different from SUN UNIX in a number of minor but annoying ways. Please try out the SGI machines very early to shake out preliminary problems.

Much of the software used in the class is available on SUN UNIX and Macintosh systems as well. There are also a number of SGI machines in USite. Use of these alternatives is left to personal initiative.

Software and Data

Utility Software

In order to work effectively, you need to use a fair variety of UNIX/Irix 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:

UNIX shell:
You can't do UNIX without a shell --- the interactive system that processes your commands. I prefer tcsh, but if you are accustomed to another shell, stick with it.
XWindow:
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 XWindow system. The SGI system has a particular window manager. On other UNIX systems, you will need to choose a window manager. My favorite is ctwm. In order to use the commands that exploit the X Windows system, add /usr/local/X11R4/bin to the value of your PATH variable.
Editor:
To prepare programs and supporting documents, an editor that uses the graphics capabilities of the Indy workstations is a big help. I strongly recommend Emacs.
Web browser:
To read the documents that I've prepared for you, and participate in the online discussion. I recommend Mosaic or NetScape on graphics stations, Lynx on character terminals.
Mail:
mm seems to be the usual thing on Q/E/K/W. I use Xmh on graphics workstations, and mh on character terminals.
Online manual:
Of course, you can type the man command to the shell, but I recommend Xman, running in its own window, whenever you are on a graphics terminal.
Document processing:
Textual materials that you want to share online will be most useful if you can provide them in LaTeX format. I don't insist that you learn LaTeX 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.

Sound Data

Audio samples:
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 ~ilia/Samples.
SHARC:
A database of Fourier analyses for notes played on various orchestral instruments

Sound Software

CSound:
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 will provide examples that you can edit. Read the CSound manual for more information. CSound is installed as ~odonnell/bin.IRIX/csound. I recommend that you add ~odonnell/bin.IRIX to your PATH variable.
SoundFiler:
This is a basic SGI sound-file utility. It only plays and converts sounds, but it works with every sample format. The executable is /usr/sbin/soundfiler. You should add /usr/sbin to your PATH variable.
SoundEditor:
A graphical sound-file editor. It works only with aiff sound format. It has fewer functions than MixViews (below), but a simpler graphical interface. It is the only tool I can find that allows you to select a portion of a sample and play it in a loop, interactively. The executable is /usr/sbin/soundeditor. You should add /usr/sbin to your PATH variable.
MixViews:
A graphical sound-file editor on SGI. For a better user interface layout, append ~odonnell/Sound/MXV/MiXViews.res to your .Xdefaults file. The command to run MixViews is ~odonnell/Sound/MXV/mxv. I recommend that you add ~odonnell/Sound/MXV to your PATH variable. MixViews succeeds with more sound files than SoundEditor, but not all of the ones that SoundFiler handles. The software is flakey, and it will sometimes hang up. But, it gives a quick picture of a windowed Fourier transform.
HTM:
A library for real-time sound synthesis. HTM consists of two main libraries. The first one, libhtm.a, resides in ~odonnell/Sound/HTM/lib and provides routines for real-time sound synthesis and DSP. The second one, libpanel.a, has been installed onto /usr/local/lib and contains a C++ class hierarchy for building panels -- slider-like user interfaces to synthesis parameters. A well-constructed HTM application is great for experimenting with synthesis formulae, but there is a lot of effort involved in getting it to work.
NYQUIST:
A sound synthesis tool built on top of XLISP. NYQUIST is a much cleaner language than CSound, but it doesn't perform nearly as well. Nyquist is installed as ~odonnell/bin.IRIX/ny. I recommend that you add ~odonnell/bin.IRIX to your PATH variable.
MATLAB:
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.
Maple:
A program for manipulating and representing mathematical formulae, similar to Mathematica. I have prepared a number of charts and animations to run under Maple. The xmaple command gives you a windowed interface to Maple.