James W. Beauchamp Computer Music Project

Active Projects

As a research facility, the Computer Music Project has fostered a number of significant projects in the areas of sound analysis/synthesis, computer-assisted (algorithmic) composition, sonification, sound visualization and music notation and printing. Some of these undertakings have originated as class projects -- successfully blending CMP's dual role -- have resulted in joint publications by faculty and students and became teaching tools used in various courses taught here. Collaborations with NCSA and Argonne National Laboratory have helped to increase both the scope and the visibility to such endeavors.

DISSCO (Digital Instrument for Sound Synthesis and Composition)

An integrated system for composition and sound synthesis available on GitHub. An ongoing project, DISSCO-2.1.0 isthe latest version.



  • newswise.com
  • PhysOrg.com
  • UI News Bureau
  • Print media
    • Argonne News, June 20, 2005, vol.58, No. 12.
    • The Hub C-U June 30 - July 14 2005.
    • Inside Illinois, July 7, 2005.
    • The News-Gazette, Champaign-Urbana, July 7, 2005, vol 153, No. 343. The News-Gazette


The archinovica is a Digital Augmented Instrument (DAI) that alters the tuning of a MIDI keyboard during live performance using a generative, deterministic algorithm. This allows the use of 5-limit just intonation in modulating and atonal harmonic contexts. Traditional approaches to just intonation involve a limited number of pitches tuned as harmonics of a single fundamental, which inhibits modulation. The archinovica can produce a theoretically infinite number of pitches all tuned as pure harmonic partials of previously played pitches. This tuning system, called Generative Just Intonation, preserves pure tuning while opening up boundless possibilities for modulation and harmonic variety.
The archinovica is implemented in Java. It includes a second software package titled Harmonic Design, which can aid composition in Generative Just Intonation, including the production of fractal pitch structures in 5-limit space. The full project can be found on github. Compositions for archinovica examples.


SNDAN consists of a suite of command-line programs for time-variant spectrum analysis, parameter graphics, parameter modification, and resynthesis of musical sounds. It can be used for timbre research (stimuli preparation), synthesis model development, and for data in computer music. Two methods of analysis are phase vocoder (PVAN), which is a time-variant harmonic analysis method, and McAulay-Quatieri frequency tracking (MQAN), where spectral peaks are tracked and have no inherent restrictions on their number or harmonic nature. The frequency tracking method also includes pitch detection and harmonic separation. Programs are available for plotting acoustical parameters (e.g., amplitude or frequency vs. time), for modification of these parameters, and for additive resynthesis of the modified sounds. The SNDAN package can be freely downloaded and runs on any Unix system including Linux and Macintosh. It is also an open-source program.


  • James W Beauchamp, "Analysis and synthesis of musical instrument sounds", in Analysis, Synthesis, and Perception of Musical Sounds: The Sound of Music, James W. Beauchamp, Ed., Springer Modern Acoustics and Signal Processing, pp. 1- 89 (2007).
  • Mathew Wright, James Beauchamp, Kelly Fitz, Xavier Rodet, Axel Robel, Xavier Serra, and Gregory Wakefield, "Analysis/synthesis comparison", Organized Sound, Vol. 5, No. 3, pp. 173-189 (2000).
  • James W. Beauchamp, "Unix Workstation Software for Analysis, Graphics, Modification, and Synthesis of Musical Sounds", Audio Eng. Soc. Preprint No. 3479, pp. 1-17 (1993).


Music 4C (M4C) is an enhanced translation of the sound synthesis program Music 4BF (originally coded in Fortran at Princeton University) into the C language for Unix computers. Instruments are written using the full power of the C language and are referred to in scores by name rather than by number. Sound files and SNDAN analysis Files can also be referred to by name in the scores. As with most Music N type of programs (e.g., C Sound), scores consist of series of instrument (I) statements for specifying note parameters and function (F) statements for specifying stored functions. It is also possible to use "ghost instruments" which apply global control of amplitude or reverberation to the other instruments. The result is a sound file which is played back when execution of an M4C program is completed. M4C instruments are designed using unit generator routines, which can also be coded by the user and incorporated in M4C executables. Instruments are combined into an orchestra which is notated in the score. For beginners, a "class orchestra" has been designed which contains nine instruments. Other instruments play sound files, SNDAN analysis files, a trumpet instrument model, and a piano synthesis model. Two preprocessor programs are Notepro, which translates a music notation-like alphanumeric score into an M4C score, and M2I, which converts a MIDI file into an M4C score. Also, Scorpro provides for automatic completion of scores whose parameters are incomplete. A special version of M4C was written to run in parallel with MPI, a message passing library. In 2012 Victor Lazzarini, Senior Lecturer at the National University of Ireland, Maynooth, wrote an extension to M4C to provide real-time processing of M4C scores to audio output on Macintosh computers. Music 4C is a free download and runs on any Unix system including Linux and Macintosh. It is also an open source program. For use, it is documented by the files M4C_Intro.html and M4C_Intro.pdf.

About Music 4C

  • James W. Beauchamp, "Music 4C, a multi-voiced synthesis program with instruments defined in C", J. Acoust. Soc. Am., Vol. 113, No. 4, Pt. 2, p. 2215 (2003).
  • James Beauchamp and Scot Aurenz, "New Computer Music Facilities at the University of Illinois at Urbana-Champaign", Proc. 1985 Int. Computer Music Conf., Barry Truax, Ed., Vancouver, British Columbia, Canada, pp. 407-414 (1985).

Legacy Projects


DIASS is a M4C instrument for additive synthesis. It was conceived with composers in mind and allows a very large number of partials for each sound as well as minute control over their behaviour. Partials can be exactly tuned or may form an inharmonic spectrum; during the duration of the sound a movement between these two alternatives may occur: out of tune overtones focusing and forming a timbre or a well defined timbre being decomposed into individual sine waves. Due to the very large number of controls and inputs, diassin, a score writer is necessary to facilitate the handling of the instrument. DIASS runs both on the IBM RS-6000 and NeXT computers in CMP and on the IBM SP at Argonne National Laboratory.



Andrew Horner (Hong Kong University of Science and Technology) and James Beauchamp have collaborated on a project to find efficient models for synthesis of musical instrument tones using techniques for matching synthesized results with the signals produced by original instruments. Models which have been used successfully are multiple-carrier FM, multiple-wavetable, extended nonlinear/filter, and spectral envelope synthesis. An important goal is to identify spectrally-related parameters which have a strong correlation to timbral perception and which operate appropriately over wide ranges of pitch and amplitude. Horner and Beauchamp's most recent effort has been to synthesize trumpet tones using time-variant/pitch-variant spectral envelope synthesis. A model has been designed which runs under Music 4C, making it convenient for composers to experiment with.



Between 1973 and 1991 most of Sever Tipei's music was produced with  MP1, a FORTRAN program. Over the years, MP1 has preserved its conceptual framework (sounds as events in a vector space) while new features were continuously added and old ones re-written. MP1 has a stochastic layer whose output could be further structured through logical filters (sieves) and patterns (Markov chains). Since all decisions ultimately depend on a set of random numbers, multiple variants of the same piece can be produced by changing the seed for the random number generator. A collection of such multiple realizations of the same data and using the same program forms a composition class or a  Manifold Composition. In 1986 MP1 became the first Computer-assisted Composition to be implemented on a supercomputer (NCSA's CRAY X-MP).



GrafChord is an interface between MP1 and SCORE. GrafChord reads in an ASCII file containing the description of sounds in a composition produced with MP1 or other composition programs. The input file includes start time, duration, pitch, plus an arbitrary number of other parameters. Its output is also an ASCII file containing instructions for the music printing/editing program SCORE which is commercially available. The information is translated automatically and appears on the printed page of music. Parametric values other than durations, pitch (including chords) and dynamics still require some editing by hand.


The primary objective of Armadillo is to provide a convenient way to quickly analyze musical sounds on an inexpensive computer without the need for specialized hardware. The development of high speed computers with excellent graphics and high quality audio I/O for the general consumer in the last few years has made this possible. While a number of analysis programs are available on the Intel or Macintosh platforms, there are few that are dedicated to the analysis of musical sounds as Armadillo is.



Visual and aural images can be produced from exactly the same data with the help of M4cave and DIASS. A C++ program using the OpenGL garphic libraries, M4cave runs in the CAVE, an immersive, room-size, 3-d environment and on the Immersadesk (a scaled down, 2-D version of the CAVE). A simulator version of it ran on the CMP SGI O2. M4cave has been used to "visualize" musical compositions and, together with DIASS, it is a promissing tool for the analysis of scientific data representing the output of computational experiments.



Music 4C will run with minor modifications on any Unix computer. Most SNDAN programs will run on any Unix computer, but a PostScript viewer is needed for screen graphics, unless Tektronix emulation is used. DISSCO runs on UNIX/Linux (Ubuntu) computers; MP1, GrafChord, DIASS can be implemented on any Unix computer. M4cave ran on SGI machines (IRIX 6.0 or higher) on which OpenGL reside.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer