CCRMA
next up previous contents
Next: Computer Music Software Up: Research Activities Previous: Research Activities

Computer Music Software Platforms


Subsections

Planet CCRMA at Home

Fernando Lopez-Lezcano

Planet CCRMA at Home is an ever-growing software package collection that includes almost all the extra software that is installed at CCRMA on top of a normal Red Hat or Fedora Core Linux operating system install, including low latency optimized Linux kernels, the latest versions of the ALSA audio drivers, and a wealth of software packages for sound, music, midi, and video.

Planet CCRMA can be installed through the Internet using APT or Yum (two software package managers), or through downloaded CDROM images. At the time of this writing there is now a first version of a complete installer in one DVD, based on Fedora Core 3, which makes installing it from scratch very easy.

For more information, see http://ccrma.stanford.edu/planetccrma/software/.


Users@PlanetCCRMA

Juan Reyes

``Users at PlanetCCRMA'' was originally written as companion guide for students, researchers, composers, and staff using the Linux operating system at CCRMA. It has also become a repository of research on Linux and a place for useful tips and Web links which might help improving the Linux experience. In its origins, it was also intended as a companion for the PlanetCCRMA software collection, and although to some extent it still is, software documentation for many of the packages is better left to its developers because of specificity. Alternatively, and since Linux is always evolving, Users@PlanetCCRMA is frequently updated to provide guidelines for configuring major applications like email clients or Web browsers, and tips that get users started with their daily computing needs. This past year, a sound synthesis tutorial was added to get people started using CCRMA's own snd sound editor as a powerful composition and signal processing tool.

For more information, please see http://ccrma.stanford.edu/guides/planetccrma/.

The Synthesis ToolKit in C++ (STK)

Perry R. Cook and Gary P. Scavone

The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in C++. STK was designed to facilitate rapid development of music synthesis and audio processing software, with an emphasis on cross-platform functionality, realtime control, ease of use, and educational example code. The Synthesis ToolKit is extremely portable (it's mostly platform-independent C and C++ code), and it's completely user-extensible (all source included, no unusual libraries, and no hidden drivers). We like to think that this increases the chances that our programs will still work in another 5-10 years. In fact, the ToolKit has been working continuously for almost 10 years. STK currently runs with "realtime" support (audio and MIDI) on SGI (Irix), Linux, Macintosh OS X, and Windows computer platforms. Generic, non-realtime support has been tested under NeXTStep, Sun, and other platforms and should work with any standard C++ compiler.

The Synthesis ToolKit is free for non-commercial use. The only parts of the Synthesis ToolKit that are platform-dependent concern real-time audio and MIDI input and output, and that is taken care of with a few special classes. The interface for MIDI input and the simple Tcl/Tk graphical user interfaces (GUIs) provided is the same, so it's easy to experiment in real time using either the GUIs or MIDI. The Synthesis ToolKit can generate simultaneous SND (AU), WAV, AIFF, and MAT-file output soundfile formats (as well as realtime sound output), so you can view your results using one of a large variety of sound/signal analysis tools already available (e.g. Snd, Cool Edit, Matlab).

The Synthesis Toolkit is not one particular program. Rather, it is a set of C++ classes that you can use to create your own programs. A few example applications are provided to demonstrate some of the ways to use the classes. If you have specific needs, you will probably have to either modify the example programs or write a new program altogether. Further, the example programs don't have a fancy GUI wrapper. If you feel the need to have a ``drag and drop'' graphical patching GUI, you probably don't want to use the ToolKit. Spending hundreds of hours making platform-dependent graphics code would go against one of the fundamental design goals of the ToolKit - platform independence.

For those instances where a simple GUI with sliders and buttons is helpful, we use Tcl/Tk (which is freely distributed for all the supported ToolKit platforms). A number of Tcl/Tk GUI scripts are distributed with the ToolKit release. For control, the Synthesis Toolkit uses raw MIDI (on supported platforms), and SKINI (Synthesis ToolKit Instrument Network Interface, a MIDI-like text message synthesis control format).

Perry Cook began developing a pre-cursor to the Synthesis ToolKit (also called STK) under NeXTStep at the Center for Computer Research in Music and Acoustics (CCRMA) at Stanford University in the early-1990s. With his move to Princeton University in 1996, he ported everything to C++ on SGI hardware, added real-time capabilities, and greatly expanded the synthesis techniques available. With the help of Bill Putnam, Perry also made a port of STK to Windows95. Gary Scavone began using STK extensively in the summer of 1997 and completed a full port of STK to Linux early in 1998. He finished the fully compatable Windows port (using Direct Sound API) in June 1998. Numerous improvements and extensions have been made since then.

For more information about STK, see http://ccrma.stanford.edu/software/stk/.

References:

Common Lisp Music, Snd, and Common Music Notation

William Schottstaedt

Common Lisp Music (CLM) is a sound synthesis package in the Music V family written primarily in Common Lisp. The instrument design language is a subset of Lisp, extended with a large number of generators: oscil, env, table-lookup, and so on. The run-time portion of an instrument can be compiled into C or Lisp code. Since CLM instruments are lisp functions, a CLM note list is just a lisp expression that happens to call those functions. Recent additions to CLM include support for real-time interactions and integration with the Snd sound editor.

Snd is a sound editor modeled loosely after Emacs and an old, sorely-missed PDP-10 editor named Dpysnd. It can accommodate any number of sounds, each with any number of channels. Each channel is normally displayed in its own window, with its own cursor, edit history, and marks; each sound has a control panel to try out various changes quickly; there is an overall stack of 'regions' that can be browsed and edited; channels and sounds can be grouped together during editing; and edits can be undone and redone without restriction.

Common Music Notation (CMN) is a music notation package written in Common Lisp; it provides its own music symbol font.

CLM, CMN, and Snd are available free, via anonymous ftp at ftp://ftp-ccrma.stanford.edu as pub/Lisp/clm-3.tar.gz, pub/Lisp/cmn.tar.gz, and pub/Lisp/snd-7.tar.gz.

Common Music

Heinrich Taube

Common Music (CM) is an object-oriented music composition environment. It produces sound by transforming a high-level representation of musical structure into a variety of control protocols for sound synthesis and display: MIDI, Csound, Common Lisp Music, Music Kit, C Mix, C Music, M4C, RT, Mix and Common Music Notation. Common Music defines an extensive library of compositional tools and provides a public interface through which the composer may easily modify and extend the system. All ports of Common Music provide a text-based music composition editor called Stella. A graphical interface called Capella currently runs only on the Macintosh. See http://ccrma.stanford.edu/software/cm/cm.html for more information.

Common Music began in 1989 as a response to the proliferation of different audio hardware, software and computers that resulted from the introduction of low cost processors. As choices increased it became clear that composers would be well served by a system that defined a portable, powerful and consistent interface to the myriad sound rendering possibilities. Work on Common Music began in 1989 when the author was a guest composer at CCRMA, Stanford University. Most of the system as it exists today was implemented at the Institut für Musik und Akustik at the Zentrum für Kunst und Medientechnologie in Karlsruhe, Germany, where the author worked for five years. Common Music continues to evolve today at the University of Illinois at Urbana-Champaign, where the author is now a professor of music composition. In 1996 Common Music received First Prize in the computer-assisted composition category at the 1er Concours International de Logiciels Musicaux in Bourges, France.

Common Music is implemented in Common Lisp and CLOS and runs on a variety of computers, including NeXT, Macintosh, SGI, SUN, and i386. Source code and binary images are freely available at several internet sites. In order to compile the source code you need Common Lisp. The best implementations are commercial products but there are also several good public domain implementations available on the Internet.

To receive email information about software releases or to track developments in CCRMA's family of Lisp music programs: CM, CLM and CMN please join cmdist@ccrma.stanford.edu by sending your request to cmdist-request@ccrma.stanford.edu.



© Copyright 2005 CCRMA, Stanford University. All rights reserved.