EMS Notes Vol. 1 No. 2 Fall 1994

EMS NEWS

HyperIndex

The Expermimental Music Studios of The University of Illinois

Electro-acoustic music activities at the School of Music have earned the University of Illinois an international reputation as a leader in the field of contemporary music. Known for significant creative activity in electronic and computer music composition, the University of Illinois Experimental Music Studios were founded in 1958 and were the first of their kind in the western hemisphere. Today the facility continues as an active and productive center for music composition and research. Numerous prestigious awards have been won by University of Illinois composers for their work in the studios, among them:

The Second Computation Music Conference (1975), the 1987 International Computer Music Conference (ICMC) and the 1991 Society for Electro-Acoustic Music in the United States SEAMUS) National Conference were hosted by the University of Illinois. Faculty and students working in the studios have maintained a high profile over the years by presenting numerous compositions, papers and tutorials at the national/international conferences of SEAMUS and International Computer Music Association (ICMA) as well as other contemporary music forums. Faculty and students have also served as officers of SEAMUS and of the ICMC. The present facilities include nine specially-designed studios for the creation, instruction, and research of sound composition, analysis, generation, processing, and recording. The Computer Music Project is a dedicated unit of the Experimental Music Studios designed exclusively for computer applications of sound synthesis, anaylsis, and processing for the purposes of instruction, composition and research. Scott Wyatt is the director for the facilities of the Experimental Music Studios. James Beauchamp and Sever Tipei are co-managers of the Computer Music Project.

Commentary

Brett Terry, Editor

This issue of the EMS/CMP Notes once again is symbolic of positive changes and growth in CMP and EMS. The most obvious is that, unlike last issue, which only involved CMP, this issue brings together the efforts of people working in both CMP and EMS. In so doing, it is indicative of the trend towards working together and understanding CMP's role within the larger context of the Experimental Music Studios, and also, as an entity that is unlike the other studios of EMS in its mission and resources.

Clearly, this issue is greatly expanded over last issue and should also appeal to a wider audience, now that it covers the activities of EMS as well. The format of the newsletter now includes a new section techniques and problems. The number of articles has been greatly expanded from one in the last issue to six articles in this issue. Other sections include user reports, special announcements, and news about competitions. Instead of detailing changes in CMP's software organization here, as I did last issue, I describe such details in another new and separate section, entitled the CMP Systems Report.

A primary function of the Notes is to help users in EMS and CMP learn what others are working on and share useful techniques. Hopefully, this can only serve to stimulate our creativity, as individual composers, and as representatives of the Experimental Music Studios. I will mention here three other things of interest that are not discussed elsewhere in the Notes.

First, EMS and CMP have received some money for new equipment purchases from the University (for more details, see the Announcements section).

Secondly, students in CMP have met with Lucinda Lawrence and Sever Tipei to investigate grant possibilities in CMP, which, as a benefit, helps familiarize graduate students with the grant writing process.

Lastly, next semester we would like to establish an infrastructure for the commissioning of student composed electro-acoustic works to be performed on concerts of faculty members and other major ensembles receptive to performing new music. For this effort, we are compiling a list of possible people to be approached by specific individuals from EMS/CMP in hopes of setting up a few informative meetings to generate interest in putting these works on more "mainstream" School of Music concerts.

User reports

James Bohn, CMP James Bohn has begun work on his dissertation, which concerns Lejaren Hiller and technology in the beginning of Computer Music. He is continuing work on "Three Mad Songs for Soprano, Flute, Percussion, and Tape."

Arun Chandra, CMP

  1. Four-Voice Conversations for computer-generated sounds, was performed at the 1994 International Computer Music Conference in Aarhus, Denmark, September, 1994.
  2. Nominated and was a finalist for the 1995 ICMC composition award and commission.
  3. Paper presentation: "CounterWave: a program for displaying and controlling degrees of independence between simultaneously changing waveforms" at the International Conference on Auditory Display, November, 1994, Santa Fe, New Mexico.
  4. Completed porting all of Herbert Brun's computer graphic programs to the NeXT, and adapting them for PostScript output. Continuing work on a NeXTStep application that will allow for the viewing and printing of the graphics from one central program
  5. Completed 700,000 Dead (versions 1, 2, and 3) on a poem by Michael Holloway, for recorded voice and digitally manipulated sounds. Continuing work on a composition for piano and computer-generated sounds.
  6. Continuing work on a composition for trombone and computer-generated sounds.

Chin-Chin Chen, EMS

I have been working with the Yamaha DX7 II-D in Studio C since the summer of 1994. I have been designing new DX7 II-D voices through the Opcode Editor/Librarian program using the techniques of additive/subtractive synthesis, AM, and FM. I have also been working in Studio B this semester, experimenting with tape techniques involving music concrete and electronically-generated sound.

David Collier, EMS

Currently I am working on a compositional project in sound-mass organization and timbre manipulation. This project is being realized in Studio A using the Buchla synthesizer for all sound generation. Editing and processing is achieved through the use of both the analog and digital equipment in Studio A.

Donnacha Dennehy, CMP/EMS

I have not been as active in computer and electronic music this semester as I would have liked to have been. However, as of late, I have been making good progress on a piece which mixes concrete and purely computer-generated sounds. This piece, tentatively titled Begob IV, will concern itself, more than all of my other pieces, with notions of Americana, American kitsch, and urban culture.

I have worked on the same piece in both studios, as I am not good at working on more than one thing at the same time. I have used Studio A to compile samples (myself scat-singing, Jon Scott abusing a double-bass, Laura Stanfield speaking like a Southerner etc.), and also to process sounds in basic ways. I have made frequent use of the Midiverb and the filters on the Buchla. Most of the mixing has been done at CMP, where I used the applications RT, SoundWorks, and m4csamp. All the non-concrete sounds were generated using m4c. I am at present trying to modify some of the existing instruments so that they will produce sounds more in keeping with my peculiar tastes! Every now and again I dabble with markov processes and allow them to dictate the output of an m4c score file. I discard the tasteless results most of the time; the lucky discoveries are cherished.

Cheri Herndon, CMP

This semester I have been working on loudness scaling with the DIASS instrument in order to allow a composer who is using the DIASS instrument to enter the loudness (in phons) of a particular sound and have it sound equally as loud as any other sound which has the same loudness in phons, regardless of the frequency or number of components in the two sounds. I am also working on a GUI front end for m4c which integrates the process of creating and editing an m4c score file, synthesizing the score into a sound file, viewing the list file created by the synthesis job, and playing the resulting sound file.

Ryan Mak, EMS

The piece I have been working on, Channel 0, contains processed text and sounds generated by the Buchla. Sound sources are organized into clusters and are placed into various positions of the stereoscopic field. Accompanied by both slow and fast pace movements, Channel 0 explores the compatibilities of the human voice and those of machines.

Richard Power, EMS

I am currently completing a 6-7 minute piece in Studio A using synthesized and concrete sources. The concrete sounds are from various animal sound effect CD's. I am also beginning plans for a piece to be realized in Studio D using only synthesizers.

My reason for working with both synthesized and concrete sounds within the same piece was to have access to a wide range of timbres. I like the degree of control that a synthesizer provides, but also the unpredictability and complexity of texture that can be found in natural sounds. I decided to use animal sounds because I suspected that they would result in some interesting surprises. I have been pleased with my results in using the human voice as a concrete source, and felt sure that there would be a similarity between the two. While I've been happy with the results I've gotten, they've tuned out to be different than what I expected. Once slowed down, many of the sounds of different animals become similar, and I was hoping for lots of variety. I want the final piece to sound like a mix of abstract timbres, and not just a collection of animal recordings. Even after a great deal of manipulation the sources' identities are often difficult to conceal. My research into the manipulation of these sounds has caused me to reformulate slightly my conception of the piece, but in ways that strengthen the piece as a whole.

Chris Preissing, EMS

What Are You Thinking? is a 17 minute composition for two-channel tape alone. The sounds are derived from voices on an answering machine and "things to do" lists and are organized in four sections based on each of the four words of the title. The Construction processes and weaving of the materials comes from a study of brain/mind phenomena: association, connection, perception and networks or web-like structures.

Preissing worked on editing and remixing the sound track for Knot of Life, a 33 minute composition for 4 performers (one plays clarinets), stereo tape, percussion, video, and slides based on Antonin Artaud's Fragments of a Journal in Hell. With the support of the Indiana Arts Commission, Arts Midwest, and the City of Elkhart, Preissing and theIs Performance Group will present this composition and others at Purdue University, Ball State University and the Elco Theatre in Elkhart in March 1995.

David Ralley, CMP

As Sever Tipei's assistant in CMP, I have been maintaining and enhancing Chris Kriese's Scor4 program, as well as the DIASS m4c instrument. The major developments of my work this semester have been a new version of scor4, which eliminates much of the I/O overhead of the old version, as well as a port of scor4 from the RS/6000 back to its original development platform on the NeXT, enhanced with multiuser capabilities. These programming projects have been aperiodically interupted by stints of teaching C to up and coming CMP users. Prof. Tipei is acting as the advisor for my M.S. thesis in Computer Science, which explores the possibility of using genetic algorithms as a tool for compositional development.

Peter Roubal, EMS

This semester I have been working on a piece inspired by Albert Camus' 1942 novel The Stranger. The piece, entitled Mi Casa Loco, uses a Spanish language text that is accompanied predominantly by percussive sounds generated exclusively by the Buchla synthesizer.

Steven Ricks, EMS

I am currently working on a piece entitled You Expect Me, no. 1. The main sound source for the piece is the human voiceÑI recorded three different people reciting a text I composed. I have been using Sound Designer II ª to manipulate the recorded text. Additionally, I have experimented with controlling the Buchla with the vocal material and processing the vocal material with the help of the Buchla (VCA panning, filtering, etc.). The piece will combine processed concrete sounds with electronically synthesized sounds. The presentation of the text will range from virtually unaltered and intelligible to extremely altered and unintelligible.

Paul Rudolph, EMS

I have been working in Studio A with sound sources from the Buchla. For the majority of my sounds, I have been combining glissandi and manipulating these sounds through equalization. I have been transferring those sounds and shifting and overlapping these glissandi to the 4 tracks of the MCI and SONY half inch tape recorders, as well as to hard disk using Sound Designer. Other sound sources from the Buchla will be contained in a 5 minute composition for Professor Wyatt's Music 320 class.

Laura Stanfield, CMP

I will present a paper on Max Mathews' Radio Baton and the Boie Radio Drum at the National Conference of the American Musical Instrument Society in Salt Lake City, Utah in May 1995. This fall I have been contributing to several pieces by CMP/EMS composers (Dennehy : Begob IV and Terry : Now It is Clear and Clotho) and plan to continue the New & Unusual Music for Sopranos Concert Series with a third installment this Spring. Performances in progress include James Bohn's Three Mad Songs for Soprano, Flute, Percussion, and Tape and a recording of Sever Tipei's Portrait of the Artist as a Young Woman Killing Herself...

Brett Terry, CMP/EMS

I am currently preparing several pieces for a late February Composer's Forum concert (in conjunction with Donnacha Dennehy and James Bohn). My work in EMS has focused on the piece Clotho for 12 sopranos (stationed around the audience in a circle), piano (on stage), and 4-track tape. This work, in several short movements, makes use of spatial gestures on tape and produced by the female chorus. An interplay of pitch and text associations and numerous short dialogues between singers, piano, and tape interact with a number of spatial gestures.

My work in CMP has been chiefly concentrated on my development of an object-oriented musical synthesis software package called ScoreViews, which is also my M.S. thesis in Computer Science. It is built from three graphical programs: ScoreViews (a notation environment similar to Performer but for synthesized sounds), TableMaker (a graphical utility for generating tables for oscillators and control functions), and InstrumentBuilder (a graphical program for patching together components to form instruments for use with ScoreViews). ScoreViews is written in C++ & Motif/X-Windows Toolkit, and will run on any computer using Motif.

I have also prepared several conference papers including: "CASPAR: Software for the Refinement of Dictation Strategies" (to be presented at the January 1995 Technological Directions in Music Education Conference in San Antonio, Texas), "Tristan's World as Will and IdeaÑThe Intersections of Wagner, Schopenhauer, Appia, and Ponnelle" and "Defining the Object in an Object-Oriented Musical Synthesis Paradigm".

Sever Tipei, CMP

Sever Tipei spent most of last Summer and part of the Fall on a Faculty Appointment in the Mathematical and Computer Science Division of the Argonne National Lab. During this time he ported MP1, his composition program, on the MCS Network and on the ANL IBM SP parallel machine. With the help of David Ralley, he also installed DIASS and m4C on these computers. DIASS is an additive synthesis instrument designed by Christopher Kriese and Sever Tipei; it was written in C by Chris Kriese and further developed by David Ralley and Cheri Herndon. Prof. Tipei used DIASS in teaching Music 448, Computer Music during the Fall semester along with SoundWorks, other NeXT music applications, and Leland Smith's SCORE music printing/editing program, which resides on the TriStar PC in CMP. In September, Prof. Tipei received a Research Board grant to record a CD with his recent music. Prof. Tipei's paper "MP1 Revisted: Aga Matter for piano and tape" was published in the 1994 Proceedings of the ICMC.

Andy Walters, CMP/EMS

I am currently working on a piece in Studio A using primarily the Buchla and Roland 100M synthesizers. It hopefully will be finished in January 1994.

Ray Watts, CMP

I have been working with a granular synthesis algorithm within the cmix environment. This algorithm allows for the massive layering of soundfile. I have also been experimenting with Douglas Scott's mxv ("mixview"), an X-Windows' based sound editor. I began working with cmix and csound while attending the University of North Texas, in 1986, under Douglas Scott and Larry Austin. I will submit a tape piece for the upcoming EMS-CMP concert in the Spring which will be generated with the layering algorithm described above and edited further with mxv.

Scott Wyatt, EMS

Scott Wyatt redesigned the tape portion of his work Changes which was performed by the University of Illinois Contemporary Chamber Players during their southern tour in October. Since that time, Prof. Wyatt has continued his research with timescaling techniques for use in a work he plans to begin in January. Prof. Wyatt is currently working on a choral work with tape accompaniment.

During this semester, Prof. Wyatt's Still Hidden Laughs was performed at the ElArte De La Cinta Magnetica Festival in Madrid, Spain, his works, Circulation and Still Hidden Laughs were performed at the Synthese 24 eme Festival International de Musique Electroacoustique de Bourges, France, and his work Time Mark for solo percussion with tape was performed by Jan Pilch at the 1994 Warsaw Autumn Festival, Poland.

Prof. Wyatt (president of SEAMUS - the Society for Electro-Acoustic Music in the United States) remastered all works for volumes two and three for the SEAMUS Compact Disc Series and has served as producer for the project. All 15 compositions which appear on volumes two and three were remastered in EMS. Prof. Wyatt also organized a concert of electroacoustic compositions (mainly by UIUC composers) which was offered in the Music Building Auditorium and Lobby on November 9th as part of a national recognition of the 10th anniversary of SEAMUS.

Prof. Wyatt has also been heavily involved with budget concerns for CMP and EMS and has worked with the EMS User Advisory Committee in determining what equipment would be purchased for the EMS facilities. Equipment prices were obtained from eight different equipment vendors, purchase orders have been completed, and plans are now being made for the complicated installation process which is scheduled for spring semester.

Articles

The ILLIAC I

This article is part of the history archive on this web site.
Click here to read the article.

Composing The System "Filter" And The System "Reverberator"

by Arun Chandra

INTRODUCTION

As a composer, I investigate and compose the dialectical relationship between components and the systems they inhabit: the system determines the significance of its components, and the components determinethe behavior of their system.Filtering and reverberation are two closely linked techniques of digital signal processing [DSP]. The mathematics of DSP are daunting, and will not be discussed in this brief overview. Rather, I would like to present to other composers the structural relations that define the system filter and the system reverberator, and some potentials for creative work that remain to be tried out. Locally, Michael Hamman, Adam Cain, and Camille Goudeseune have explored some possibilities of networks of filters and signal processors. I hope this overview will encourage others to make experiments in this area.

In the following discussion, these abbreviations hold:

n : the current sample number
y : the output (the filtered sound)
x : the input (the source sound)
y(n) : the n-th output sample
x(n) : the n-th input sample
sr : the sampling rate

Other abbreviations are defined in their contexts.

FILTERING

The simplest filter can be built by taking the average of every two samples:

y(n) = 0.5 * x(n) + 0.5 * x(n-1)

This is a low-pass filter with one tap. The current input sample x(n) and the previous input sample x(n-1) are both multiplied by the coefficient 0.5, and added together.To make the above into a high-pass filter, take the difference between adjacent samples:

y(n) = 0.5 * x(n) - 0.5 * x(n-1)

To use either of the above algorithms in a program, one would use a syntax similar to:

y[0] = x[0] ;
/* set the initial value */
for ( n = 1 ; n < numSamples ; n++ )
/* process rest of samples */
y[n] = 0.5 * x[n] - 0.5 * x[n-1] ;

(The above should be optimized for speed in any final program.)

Filters are divided up into two general types: recursive and non-recursive. Non-recursive filters (also called Finite Impulse Response filters (FIR)) modify only the input samples. Recursive filters (also called Infinite Impulse Response filters (IIR)) modify both the input samples and the past output samples.

An example of a recursive filter is:

y(n) = a * x(n) - b * y(n-1)

Here, the previous output sample y(n-1) is subtracted from the current input sample x(n) to create the new output sample y(n). The choice of coefficients (a and b) is important, and should almost always be less than 1. If the coefficients are not chosen carefully, it is easy to make a recursive filter "blow-up", i.e., the output values get larger and larger until they exceed the limits of the output type, usually 16-bits.

The composer Kirk Corey (a former student from here, currently teaching at the University of Iowa) wrote some programs running on a PC, in which his compositional investigation was to explore the sounds created before recursive filters blow-up, given a variety of initial coefficients.

An intriguing aspect of Butterworth filters is that merely by changing the coefficients, you can change the behavior of the filter from low-pass to high-pass to band-pass to band-reject. All Butterworth filters use the following algorithm:

y(n) = a1*x(n) + a2*x(n-1) + a3*x(n-2) - b1*y(n-1) - b2*y(n-2)

As you can see, this filter has two input taps x(n-1) and x(n-2), and two output taps y(n-1) and y(n-2). To get a low-pass filter, the coefficients a1, a2, a3, b1, b2 are calculated thusly:

fc = cutoff frequency C = tan(pi*fc/sr) a1 = pow((1 + sqrt(2)*C + C*C), -1) a2 = 2*a1 a3 = a1 b1 = 2 * (1 - C*C) * a1 b2 = (1 - sqrt(2)*C + C*C) * a1

But for a band-pass filter, the coefficients are:

fc = center frequency bw = band width C = pow( tan(pi*bw/sr), -1 ) D = 2 * cos(2*pi*fc/sr) a1 = pow((1+C), -1); a2 = 0 a3 = -a1 b1 = -C * D * a1 b2 = (C - 1) * a1

The coefficients for a high-pass or a band-reject filter are calculated in a similar, mind-numbing manner.

A compositional possibility offered by the above is an investigation into what might happen if the coefficients were to be linearly varied between one set into another over the duration of the sound. One would then have a filter that would change its properties from low- to band-pass, or high-pass to band-reject, etc. One way to do it would be this:

/* first set the magnitude of change */ a1change = (a1final - a1) / (numSamples - 1) ; a2change = (a2final - a2) / (numSamples - 1) ; a3change = (a3final - a3) / (numSamples - 1) ; b1change = (b1final - b1) / (numSamples - 1) ; b2change = (b2final - b2) / (numSamples - 1) ; y[0] = x[0] ; /* initialize the samples */ y[1] = x[1] ; for ( n = 2 ; n < numSamples ; n++ ) { /* process the sound */ y[n] = a1*x[n] + a2*x[n-1] + a3*x[n-2] - b1*y[n-1] - b2*y[n-2] ; a1 = a1 + a1change ; /* increment the coefficients */ a2 = a2 + a2change ; a3 = a3 + a3change ; b1 = b1 + b1change ; b2 = b2 + b2change ; }

Now, if a1, a2, a3, b1 and b2 represented the coefficients for a low-pass filter, and a1final, a2final, a3final, b1final and b2final represented the coefficients for a band-pass filter, this filter would change its characteristics from being low-pass to band-pass over the duration of the input sound x[n] (assuming that numSamples is the duration in samples of x[n]). This system of change can be raised to higher levels of complexity. It might be amusing to find out what this would sound like using the input sound of a spoken text.

REVERBERATION

The simplest reverberator is the comb filter, which is a variant of the recursive filter shown above:

y(n) = x(n - D) + g * y(n - D)

D represents the number of samples of the "delay". So, one can see that the current output y(n) is equal to a delayed input x(n-D) plus a previous output y(n-D) multiplied by a gain factor g. If the value for D is high (say a tenth of a second), the comb filter will act as a kind of "echo". The gain g (usually between 0 and 1) determines the "reverberation time" of the filter. Charles Dodge has suggested that the relationship between g and the reverberation time (as composers might prefer to think of it) is:

D = delay in seconds
rvt = reverberation time in seconds
g = pow(0.001, (D/sr/rvt))

So, a composer can specify the reverberation time he or she would like the comb filter to exhibit, and thusly calculate the value of g. (This is why in ReFill, if you change the gain factor for a comb or allpass filter, the reverberation time also changes, and vice-versa.)

An interesting property of this filter is that a previous output y(n-D) is scaled by g, and becomes part of the current output y(n). This means that if g = 0.9, the first time an output sample will be multiplied by 0.9, the second time by 0.9*0.9 (0.81), the third time by 0.9*0.9*0.9 (0.729), etc., meaning that the previous output will be steadily decreasing in amplitude, i.e., the echoes will be "dying away". If the initial value of g is smaller, the sound will die away faster:

g = 0.5
0.5*0.5 = 0.25
0.5*0.5*0.5 = 0.125
0.5*0.5*0.5*0.5 = 0.0625
(etc.)

Metaphorically speaking, the magnitude of D determines "the size of the room" one is emulating, and the magnitude of g determines "the type of material the walls are made of", i.e., whether they highly reverberant walls (creating a long reverberation time), or whether they are muffling walls (creating a short reverberation time).

For composers, one idea worth exploring is continually changing the setting for g, meaning, in effect, that one is changing the "walls of the room" in which the sound is imagined to occur. Another idea is to change the setting for D, which is equivalent to changing the "size of the room", i.e., a speaker is shoved from the Krannert Great Hall into a garbage can. Or vice-versa.

M.A. Schroeder, in the 1960s and 1970s suggested two models for realistic reverb-eration. The first model used five all-pass filters cascaded together, i.e., the output of the first was the input to the second, the output of the second was the input to the third, etc. (This filter is called Schroeder1 in ReFill.) The algorithm for an allpass filter is:

y(n) = -g*x(n) + (1 - g*g) * ( x(n-D) + g * y(n-D) )

As you can see, the latter part of an allpass filter is a comb filter. The second model Schroeder suggested used four comb filters in parallel, summed their outputs, and then passed their outputs through two allpass filters in sequence. (This filter is called Schroeder2 in ReFill). These two filters designed by Schroeder are the most commonly used ones in digital synthesis.

James A. Moorer built on the work of Schroeder. He noticed that Schroeder's filters tended to keep the high partials of a sound ringing, and so suggested that the comb filter be used with a built-in low-pass filter:

y(n) = x(n-D) + g2 * ( y(n-D) + ( g1 * y(n-(D+1)) ) )

He then suggested a model for reverberation that involved six combs with built-in low-pass filters run in parallel wirh their outputs summed and then sent to an allpass filter. (This filter is called Moorer Reverb in ReFill.)

A problem manifest by all three of these reverberation units (first noticed by Schroeder) is their "lack of early echoes". Remember that the samples are delayed by the magnitude of D. This means samples that are less than D are ignored by the reverberators. Schroeder suggested a solution, which was to add to the source sound some initial delays in the form of an FIR filter:

y(n) = a1 * x(n) + a2 * x(n-D1) + a3 * x(n-D2) + ... aN * x(n-N)

These delays would range from 0 to 80 milliseconds. Moorer found some appropriate coefficients for either 7 or 19 "early echoes". This has been implemented in ReFill under the option "Add Early Echoes".

REFILL

The program ReFill currently resides in /SoundApps. Please feel free to copy it and use it! The source code is not part of it, but if anyone is interested in looking at the source code and playing with it, drop me a line and I'll send it to you. And please let me know if it crashes on you, or gives other problems. I've tested it with three minute, stereo sounds at sr = 44100, and it has behaved properly, so it should work with anything you can throw at it.

SOURCES

Charles Dodge and Thomas Jerse, "Computer Music"

James A. Moorer, "About this reverberation business"

M.A. Schroeder, "Digital simulation of sound transmission in reverberant spaces"

M.A. Schroeder, "Natural sounding artificial reverberation"

F. Richard Moore, "Elements of Computer Music"

Charles P. Bernardin, "C/Math Algorithms for Engineering and Scientific Applications"

Paul Embree and Bruce Kimble, "Algorithms for Digital Signal Processing"

Black-Box Debugging

by Camille Goudeseune

[Author's note: This article flagrantly ignores Sound Engineering Principles. It addresses the situation "I've got to get this working NOW, I don't care how it gets done, and I don't care what happens after it's done." Don't use its recommendations for missile silos or operating rooms.] In working for Microsoft, CMP, and NCSA I've had to deal with a number of unfamiliar systems and get them to do what I wanted.These systems, be they studios ("Why is no sound coming out of my speakers?"), commercial software ("Where is that Finale PostScript error coming from?"), or in-house software ("How can I compute a piece with 43 quintillion notes in m4C?"), are, among other things: (1) inscrutably complex (2) constantly under development (3) ill-documented. For these three reasons, I call the ways I control these systems Black-Box Debugging:i.e., getting the job done while learning as little as possible about the system. I love to ferret around inside things and discover what makes them tick; but Word for Windows was big enough (70 meg 3 years ago) that it was impossible to figure out what I needed to figure out. Since then I've kept this "learn as little as possible" heuristic.Here is my most important rule: "Reproducing the problem is half the battle". Intermittent bugs are pretty much unfixable. You must understand what the system is doing, even if why it does that makes no sense to you. If its behavior makes no sense to even itself, then the assumption of black-box debugging that what is wrong stays wrong is violated.If you have a fair idea of how to get the system to do your bidding and it isn't cooperating, ignore any diagnostics you may get. At best, treat them as entertainment. The one message you have is "WRONG."In general, start with a simple working case and elaborate it one step at a time towards what you want, until it breaks. Then you know the exact step which causes the problem. This experimental approach always informs you something is wrong with a message such as "PostScript error -8133" or "Unterminated string constant in line 43285". Rather than getting bewildered, treat them as entertainments. Do this because it's quicker and less frustrating to proceed from a known working case to a nonworking case than vice versa. A fast nonlinear approach is unit testing, when the system divides neatly into components. Bypass certain components; replace them with known good ones; and test them in isolation. A trivial example: if you can't hear WPGU, try your CD player. If that works, you've narrowed it down to either your FM receiver or the WPGU transmitter. If the CD player doesn't produce sound, it's probably your preamp, amp, wires, or a fuse. (Though there is a remote chance that the CD player is also bad! But you can test this component apart from the rest of the system to verify it.)The theoretically fastest method is a refinement of both of theseÑbinary search. Get a really really simple case that works. Take your known complex case that doesn't work. Have some linear path from one to the other. Go "halfway" along this path. If this case works, you've narrowed down the problem to the second half. If not, it's in the first half. Now try it 3/4 way or 1/4 way respectively, to see which half OF the problematic half is problematic. This recursive method works in logarithmic timeÑ i.e., even if your path has 32 steps, it will take only 5 experiments to find the precise problem (32 = 2^5). Binary search is most applicable to systems with a linear flow of data from source to destination (e.g., MIDI file to Finale printout, a data-massaging program you wrote, signal through a mixing console).Finally: try bizarre stupid things if they're easy to do. You learn the neatest things by tweaking random inputs or flagrantly violating what the system thinks you should be doing with it.Be unstoppable!

Software Engineering in CMP

by Brett Terry

Since I am taking a Software Engineering course this year (CS 327), I thought I could share a few key ideas that I have learned to help CMP users strengthen the design, modularity, and maintainability of their programs. One of the first lessons in Software Engineering is one that can save you the most time of allÑdoes a program already exists that does what I want to do or can be easily modified to do that? If you are not sure, use the resources that exist in CMP. You can post to the newsgroup uiuc.org.music.cmp with your question, look over the manuals and the CMP User's Manual (located in /usr/CMP/doc/), scan the graphic programs in the /SoundApps and /SoundDemos directories, and type "sndutils" or "moresndutils" to learn about what command-line utilities are available. Every utility listed by sndutils has a help document that is accessible by typing:

man

at the UNIX prompt. If no man page exists, try typing a utility with no arguments after the command, frequently this brings up a "usage statement" indicating what the utility does.

Here is quick quiz. Once you have established that writing a piece of software is your only answer to your particular needs, you should:

  1. scarf a pizza, eat some donuts, go into CMP and code like a banshee
  2. make some notes on scraps of paper, then go into CMP and code in bursts of inspiration
  3. try to find similar code, borrow it, and then code some modifications, proceeding by experimentation
  4. try to find similar code, do an analysis and design, and then code by translating your design

Well, if you answered anything but 4, you are probably coding in a "seat of the pants" manner, which is not a bad short-term method for small projects, but, what happens when bugs creep in or if you need to make some substantial changes to your code? In fact, well-designed software makes use of four stages:

  1. Analysis (identifying what needs to be done)
  2. Design (indicating how it can be done)
  3. Coding (mapping the design to the system environment)
  4. Maintenance (fixing bugs and making changes)

A reasonable amount of time to spend on each phase is approximately Analysis 35%, Design 30%, Coding 15%, and 20% Maintenance. "Only 15% on coding?" you might ask, "How is that possible?" The answer to that question is that a good design is so thorough that there really is nothing to be done at the coding stage except translate procedural pseudo-code into real code.

ANALYSIS

Analysis breaks down your problem until it can be understood in terms of elementary processes (a process is said to be elementary if it appears intuitively obvious, like "set x to 5". A process like "read score file from disk" is not elementary because it needs to be broken down further, unless you have a routine already present that handles something at this level!)

Suppose, as an example, that we write the following narrative to describe what we want to do:

Multiply the samples in two sound files together according to some control function that is used as the weight of samples in each sound file, e.g. (f(x) * s1) * ((1-f(x)) * s2) where s1, s2 are samples of sound files S1 and S2, and f(x) is the value of the control function f at some index x. Additionally, it would be useful to provide a facility for creating control functions.

First it helps to define what is implicit in the above narrative:

  1. Should we be able to listen to a result before being given the option to save it? (In this example, I won't suggest this but is also important to not exclude the possibility that it might be desirable later).

In order to describe what the problems that must be solved here are, diagramming can be as useful as text. Typically, diagrams indicate processes that do something and indicate data flow between them. Working top-down from the whole system and refining subsystems works well.

In the given example, a possible partitioning of the subsystems is "FILE IO subsystem", "control FUNC subsystem", and a "produce OUTPUT system". If, upon later refinement, you find this partitioning is not feasible, it can always be changed. Bear in mind that there are no right answers only more effective ones.

Analysis proceeds by establishing the exact tasks done by each subsystem, i.e. the FILE IO Subsystem must get file descriptiors, load data, close files, and do error-checking. Another subsystem can send data to be written or read under the assumption that the FILE IO Subsystem functions correctly. Each subsystem should be refined until it can be described in terms of the elementary processes defined above.

DESIGN

Design works to detail, for the tasks identified by analysis, exactly how things get done. Processes such as "ask for envelope segments for control function" and "build control function from user input segments" can now be broken down into the actual steps of how such a process works. In so doing, modules are created, which are the basic building blocks of a program.

Module design seeks to maximize cohesion, which is the degree of relationship between functions in a module, and to minimize coupling, which is the degree of interdependence between modules. Think of this as the opposite of having one huge main() file in your program that does everything. Ideally, your main() routine should do nothing more than call a few other procedures, and some of these modules should call other modules. In general, the higher-level a module the less actual work it should do, and the more it should manage and pass data between modules beneath it. Fig.1 illustrates a sample of what a module design might look like. It is acceptable to represent certain processes as boxes and then refine them separately as needed.

For example, a read_file module might call a module to ask_for_input and then pass this to a file_module which, in turn, passes some filename string passed to it from above down to module which gets a file descriptor using that string. The inter-mediary level file_module takes care of passing the file descriptor from the get_fd module to a open_fd module and then to a read_from_fd module.

The above module description would include which data is passed between modules (usually indicated with arrows, e.g. open _file passes a file descriptor to "write NewFile to disk" so you could include an arrow with the letters "fd" pointing up from openFile and perhaps a "fileName" pointing down to open_file). Note that the presence of coordinator modules, such as doSegments and buildTable, which don't do anything but call smaller modules.

For each of the modules you should write a brief processing narrative indicating, precisely what, for example, calcSlope does with the parameters passed to and returned from it. The payoff of all this extra labor will be that you will find it much easier to make changes and fix your program when a bug comes up. In addition, you can re-use your modules in this program or other programs.

CODING

In this case, your main() file might look like

/* declare prototypes for ANSI compliance */
void init(void);
void make_control_file(void);
void do_multiply(void);
void writeFileToDisk(void);

/* main function */

main()
{
init();
make_control_file();
do_multiply();
writeFileToDisk();
}

as you started to code. After finishing your design, it is a good idea to use "stubs" of code, i.e. write all your modules to begin with but declare them all as void. You can put some statement in each module like

/* bla.c some file in your program */
#include "globals.h"
/* include whatever */

/***********************
* foo does this... (describe)
************************/

void foo(void); /* prototype */

void foo()
{
if (DEBUG) printf("in function foo\n");
/* call other functions if needed */
}

and use a globals.h file like:

#ifndef _globals
#define _globals

#define DEBUG 1 /* set to 0 to disable */

#endif

As you proceed with coding, change each function and its prototype to reflect the correct return type and function arguments. In general, it is best to test compilation after adding every few functions, rather than waiting until they are all done, so the amount of error messages you have to deal with is more manageable. Don't forget about error-checking, which can also be designed as (possibly reusable) modules!

Sampling Tricks in Music 4C

by James Bohn

Ever since I was a young child, I've wanted to control the sounds of the world around me, so that I could create an aural universe where my every evil whim is obeyed. Music 4C allows me to do this through the use of the sample instrument. All you need is a sample instrument, and a sound file to manipulate. The standard sample instrument, called sampins.t (usr/CMP/m4c/m4c/instru/samp_ins), offers some basic sampling possibilities, but with a few minor alterations, it can be a megalomaniac's dream.

One limitation of sampins.t is that it plays the entire sample whether or not this is wanted. The duration can be altered in order to truncate the sound, but starting from mid-way into a sound is impossible. This problem can be solved by adding two scorecard parameters, t1 and t2...

t1 (0 60 secs 0)
t2 (0 60 secs 10)

These two parameters represent start and end times for the sound in seconds. The assignment of samp under .note needs to be altered, and a definition of finish (a float) needs to be declared under .instrument, and assigned under .note...

samp=t1*fildes.sr;
finish=t2*fildes.sr;

A termination statement needs to be put at the end of .sample to end at the appropriate time...

if (samp>finish)
ABORTSAMPLE;

Works pretty good, but can it go backwards? No, but that can be fixed. Define an integer called forward under .instrument. After the assignment statements for samp and finish under .note, add ...

if (samp forward=1;
else
forward=0;

The increment of samp and the termination statement under .sample also need to be changed ...

if(forward)
{
samp += dsamp;
if(samp > finish) ABORTSAMPLE;
}
else
{
samp -= dsamp;
if(samp < finish) ABORTSAMPLE;
}

Once these changes are made, backwards sample playing is possible by having t1 be greater that t2. Pitch change is possible within the sound by changing recalculating dsamp for every increment of samp. One simple way to do this is to create a gliss between two different pitch_trans parameters, by the use of the expon unit generator. Rather than take the easy way out, let's accomplish pitch change in a slightly harder manner that yields more possibilities. A Splinseg function can be used to control the pitch of a sample through time. This solution allows for very specific pitch envelopes to be specified. It can be used with sampins.t with a few minor additions. First of all the addition of three scorecard parameters is necessary ...

pitchfunc (0 255 func_no 1)
attack (0 60 secs .1)
decay (0 60 secs .1)

This represents the function number of the Splinseg function to be used. Two variables need to be defined under .instrument...

float *pitchtable;
ENV3 pitchstate;

The array timbrks should be declared and assigned under .note ...

float timbrks[4]={0., .2, .8, 1.};

These variables should be assigned under .note:

pitchtable=Func[(int)pitchfunc]; setenv3(attack,DUR,decay,timbrks,&pitchstate);

A float called inc should be defined under .sample, and be used by changing the increment and termination code under .sample to :

inc=env3(dsamp,pitchtable,&pitchstate);
if(forward)
{
samp+=inc;
if(samp > finish) ABORTSAMPLE;
}
else
{
samp-=inc;
if(samp < finish) ABORTSAMPLE;
}

Its important to remember that the Splingseg function will be using ratios. Thus, the beginning of the "Barney Song" (using only scale degrees 5 and 3 of a "key") could be expressed as

F(Splinsegfun 0) {0 10 0,1.5 .09,1.5 .1,1.333 .19,1.333 .2,1.5 .49,1.5 .5,1.333 .59,1.333 .6,1.5 1,1.5}

The first number of each ordered pair refers to time, the second refers to pitch ratio. Remember for really spicy sounds, add some filtering and panning. Special thanks to Jim Beauchamp for his help in solving my sampling dilemas.

Problems Noticed with Digital Audio Tape Recordings for Broadcasts and Concerts

by Scott Wyatt Over the past six years I have had numerous opportunities to receive DAT recordings from other composers and other studios. I have also heard many complaints from radio broadcast engineers, compact disc producers, concert organizers, and well known recording engineers regarding the condition, formatting, and lack of similar approach used when recording with DAT tapes. It has been surprising to me that more than 50% of the recordings have had some significant problems with either distortion, labeling, noise, overall formatting, ID's, and/or perhaps the engineer's understanding of the dB scaling used on DAT recorders. For instance, I have received tapes with no ID's recorded and having little or no silence between works. Some tapes have come in without any labeling and ID's ! I have had numerous DAT tapes sent to me with "0 dB" 1000 Hz. reference tone (equivalent to +16 VU) recorded at the immediate beginning of the tape. As a result, I wish to suggest that all composers working with DAT be at least aware of the following formatting approach whenever making a DAT recording.

DAT [Digital Audio Tape] STANDARDS:

DAT FORMATTING:

DAT LABELING:

Each DAT label should have the following information included:

Note 1: REFERENCE TONE FREQUENCY

While 1000 Hz sine wave has been an accepted standard reference tone, 1046.5 Hz is C, two octaves above middle C in equal tempered tuning systems. This frequency is close enough to 1000 Hz to offer an equivalent response in audio systems, while offering the advantage of serving as a reasonable tuning note for most tunable instruments in cases where instrumental music is incorporated with the tape.

Note 2: STANDARD OPERATING LEVELS

One problem engineers have been confronted with in association with DAT's has been establishing and equating reference levels to a standard studio operating level. For years within the analog pro-audio world, the 0 VU standard was set to 1.228 volts (1.23 volts) if the studio was operating at a +4 dBm level. This is to say that 0 VU = 1.23 volts = +4 dBm. In the consumer-audio world, the 0 VU standard has been loosely set from .4 volts to .775 volts. With DAT's, most manufacturers and the decibel meter scaling do not offer the user a reference with respect to a set operating level. Service manuals often suggest "select your nominal output level," which certainly leaves the subject wide open and consequently presents a problem. Bob Ludwig, chief engineering of Masterdisk in New York, has recommended that operating level (0 VU) should be between -16 dB and -14 dB on the DAT meters. Yet upon measuring output on the Panasonic SV-3700 and the Tascam DA30, it appears that a -18 dB reading on the Panasonic SV-3700 meters equals +4 dBm/1.23 volts when switched to the +4 output level. A DAT tape with a - 18 dB, 1 kHz recorded tone played back on the Tascam DA30 also produced a +4 dBm/1.23 volt output.

KEY REMINDERS WHEN USING DAT'S

  1. DAT cassettes do sometimes fail causing the tape to be crinkled, stretched, and pretty much destroyed. Have back-ups.
  2. I recommend using the shorter duration DAT tapes (30, 46, or 60 minutes) as a safety precaution. DATs can become corrupted. If you have a lot of material on an extended length DAT, you will lose all of your material if it becomes corrupted.
  3. Record 1 minute of silence at the beginning of each tape prior to recording a 30 second 18 dB 1K Hz (or 1046 Hz) reference tone followed by 30 seconds of silence again prior to recording your program material. Drop outs occur more frequently at the beginning of the tapes.
  4. You will notice a white or colored plastic sliding window located on the right hand side of the cassette spine. In the closed position, you are able to record onto the tape. Should the window be opened, you will not be able to record onto the tape. This is a fail safe method designed to protect masters. So upon completion of a recording, open the window of the tape to prevent accidental erasure.
  5. DAT tape cannot be spliced - don't even think about it.
  6. DO NOT OVER RECORD! DAT recordings should not go over -1 dB. "0" dB will have the potential of breaking-up the sound (if not on the deck you are recording on, possibly the deck you may play the tape back on). Please use caution!
  7. Read the manual for the specific DAT recorder you are working with before using the deck. The manual for each DAT recorder is located within each studio.
  8. As some frame of reference "0" dB on most DAT recorders = +16 VU. I suggest that you be conservative with your recording levels. Remember this is not analog, and you should not record signals at 0 dB.
  9. You can purchase DAT tapes from the Krannert scene shop or mail order DAT tapes from Full Compass Audio (Susan Lipp) at 1 800-356-5844 or PolyQuick at 1-708-390-7744 (requires a credit card #).
  10. If you have questions, please contact Scott Wyatt. Also, EMS does not have a portable DAT for concert use. Should you need DAT playback for concerts, contact Rex Anderson of the School of Music Recording Service for sound reinforcement arrangements.

Techniques & Problems

Sound Processing With Sound Designer

From Steven Ricks:

I have enjoyed working with the time expansion/compression function under the DSP menu in Sound Designer II, particularly in manipulating spoken text. Some of the more interesting sounds I've created have come from stretching loudly spoken or shouted (watch those levels!!!) consonants. The result has been a very intense, almost scraping kind of sound. I also took a short paragraph's-worth of text, compressed it several times, and then expanded it back to its original length, or even longer. This procedure makes a very electronic sound as though there are several voices speaking at different frequencies at various pointsÑparticularly during loud vowels.

The pitch shift function of the DSP menu frequently adds a pop at the end of a processed sound. I just erase it by using the silence function under the Edit menu.

Overloading the Alesis Midiverb

From Peter Roubal:

Using the two presets for stereo and wide stereo field, I experienced a great deal of difficulty with the unit overloading and the signal becoming very distorted. This came about during an attempt to generate the false stereo imaging (using, I believe #97,98) on pre-recorded material going from DAT to Sound Designer II. To eliminate the distortion I was forced to reduce the amount of effect to the point where it was no longer creating any detectable stereo effect. I'm not urging anyone to avoid this technique; nor am I able to offer a solution to the problem, but perhaps someone else has experienced this or a similar problem. If so, I would be happy to hear from you.

[Response from the Director of EMS]

Peter, the problem you are experiencing is due to the fact that the Alesis Midiverb is really a consumer piece of equipment (-10 dBm nominal level). The output from the mixer to the Midiverb is at least 1.23 volts (+4 dBm signal), which is much higher than what the Midiverb wants to see. You are correct with the thought of reducing the amount of signal that you sent to the Midiverb. On the return from the Midiverb to the mixer is where you will have to increase the gainÑwhich will, of course, increase the noise bed. EQ the return from the Midiverb (reducing the noise) and bring up the input faders of the returned signal to above the standard level--perhaps up to full. This should help.

Using Sound Designer to Test the Mix

From Andy Walters:

One technique I have found helpful is using Sound Designer II to listen to the current work in progress to get a sense of how the piece is coming along. At the end of a session, I load everything into Sound Designer and mix the soundfiles to get a snapshot of the piece as it exists at that time. I never mix sound files in Sound Designer for the final mix of the piece because of a definite loss of sound quality. However, I find it useful to generate a mix to get an overview of the work. Most of the time I do not save this mix on disk; often I record the temporary mix on to an audio tape so that I can listen to it later in the studio or at home.

Advantages and Limitations of Digital Editing

From Ryan Mak:

Though the electronic music studio is filled with powerful analog equipment, I find myself more drawn to and intrigued by the recent developments in digital technology, specifically digital editing and singal processing. Perhaps it because I find working with the computer to be more manageable or perhaps I am just fascinated by the concepts. Nevertheless, I do all of my editing with the computer. There are numerous ways that I find digital editing to be useful, even though I certainly acknowledge its limitations.

In my view, one of the major advantages of digital editing is the ease with which a sound source can be manipulated and modified. With a simple click of the mouse, a sound segment or phrase can be selected for modification, as oppose to managing endless tapes, perspiring palms, and sharp razor blades.

There are many other useful features that are available in Sound Designer II. It is equipped with a equalizer that I find very useful in defining the depth of my sound sources. Though the frequency spectrum is rather narrow, with frequency bandwidth assigned to only 6 faders, it is sufficient and effective in simulating depths.

Another feature that I find useful is the mixing unit. Not only can up to 4 soundfiles be mix at one time, but each soundfile can have a defined space within the stereoscopic field. This is very important because it can help with hearing phrase overlaps.

As for its limitations, Sound Designer cannot effectively simulate a movement of a sound source between the various depths. Another troubling limitation is that it cannot mix soundfiles if the delay time exceeds 30 seconds.

Using 48kHz Sampling Rate in Sound Designer for Greater Fidelity

From David Collier:

With the increased access to digital editing, many composers like myself are gradually incorporating programs like Sound Designer II into their creative process. However, digital recording, editing, and processing are not without weaknesses. While the aspect of tape hiss has been eliminated, other dastardly sounds can encroach on the pristine world of digital.

Personally I have recently encountered very annoying pops while recording with Sound Designer II. These pops occurred each time a "button" was pushed on the virtual recorder. This at first puzzled and then frustrated me greatly. I checked every connection between the Buchla, patch bay, mixer, and computer. Nothing seemed to work. Finally, I compared some past recordings and noticed that the pops and system noise were noticeably absent.

Upon carefully comparing every setting, I noticed a difference in the sample rates. When a sampling rate of 44.1 kHz was selected, system noise and pops were evident in all recordings. However, when the sampling rate of 48 kHz was used, the pops were non-existent and the system noise was eliminated. I recommend using a sampling rate of 48 kHz in Sound Designer II for cleaner recordings.

Using SoundHack for Convolution and Phase-Vocoder-based Resynthesis

From Brett Terry:

Two interesting techniques I have discovered for getting exciting and unexpected timbres out of small sounds I have stored as Sound Designer sound files, involve using the SoundHack program by Tom Erbe (version .74 is the last non-commerical version and .80 is the first recently introduced commercial version available for $50 from Frog Peak Music).

Convolution can be used to create "hybrid" sounds using the spectrum of one sound during the re-synthesis of another sound. Unfortunately, SoundHack needs a lot of memory to do this for anything for a very short file so, before trying this on a sound file, select SoundHack on the disk (not the desktop alias) and use the "Get Info" command to set the memory size to 7000K or so.

Phase-Vocoder resynthesis also can create unusual timbres from very ordinary sounds (I used the sound of crackling embers as a source in my recent work Clotho). By clicking on the "Scaling Function" button box in the Phase Vocoder dialog box, you arrive at a "Draw Function" dialog where you can choose or draw a control function. Experiment with functions that waver just above or below the line which represents the sampling rate of the original sound.

Detailed information about using SoundHack is contained in the manual in Studio A. On-line help is also available.

CMP Systems Report

by Brett Terry

Here I briefly summarize some of the important changes in CMP's software organization and policies.

  1. New software additions include Arun Chandra's ReFill program, Fugue, rtLisp, and F.R. Moore's cmusic. Since the upgrade to NeXTStep 3.2 in September, newer versions of RT, cSnd (A great front end to CSound), and SoundWorks have been installed in /SoundApps.
  2. Owing to frequent crashes while using SoundWorks, I created a separate /SoundWorks directory on every computer besides cmp-nxt1.

    I have poked around with installing Common Lisp Music, and several phase vocoder based utilities designed at Princeton by Christoper Penrose, including a morphing processor. This software should be in place (under "moresndutils") early next semester.

  3. A new /Docs folder includes the most useful reading material in addition to what can be found in /NextLibrary/Documentation and /usr/CMP/docs. Tutorials have been placed in a separate directory called /Tutorials.
  4. X-Windows (and Motif) is alive and running on all machines. An X-based sound editor designed by Doug Scott called mxv is available for interested users. Documentation is available in CMP.
  5. A more comprehensive tape backup policy has been implemented using the high-speed DAT backup system. Unfortunately, no one has yet shown much interest in purchasing data DAT's to keep track of their sound directories in /u, which, under current policy, are not backed up. Documentation does exist, so please see me if you are interested in using the DAT to back up your sound files.
  6. A web browser called OmniWeb should be installed soon on the NeXT's.
  7. Lastly, next semester I would like to try to build up the set of "class" instruments in m4c, cmix, and cSound to include some of the useful instruments that students have designed in CMP. Please let me know if you have some interesting instruments you would like to share!

Announcements

Some New Equipment Coming To EMS!

by Scott Wyatt

Spring semester '95 will bring about several new additions to the Experimental Music Studios. In addition to more RAM being added to most of the computers, DAT tape drives will be added to Studios D and E. A Mac IIcx will be moved into Studio E along with a Digidesign Sound Designer II digital editing workstation. New synthesizers are being installed in Studios C and D along with the Kyma System being added to Studio D. Alesis ADAT 8 track digital recorders are also being installed in Studios A and D. Installation work is scheduled for completion by the end of April.

The Computer Music Project of the Experimental Music Studios will also receive several new items including another DAT recorder during the spring semester. Decisions have not been made as yet concerning the other items. Installation should be complete by the end of April.

Web Page Coming Soon For EMS/CMP!

by Brett Terry

During the last semester, we have been working to design a web page for CMP and EMS. For those of you not familiar with Internet jargon, a "web page" is set of documents containing pictures, texts, and sounds that anyone using a web browser program (such as NCSA's Mosaic), can use. The web page will include information about the history of the Experimental Music Studios at the University of Illinois, biographical data about composers working in EMS & CMP (with optional pictures and sound excerpts), pictures and information about the studios, back issues of the EMS/CMP newsletter, and links to other exciting web sites for computer and electro-acoustic music. Please let us know if you are interested in having a short bio page on the web. Stay tuned!

The SHARC Timbre Database

Written and maintained by Gregory J. Sandell, Sussex University, U.K.

Webusers: click here

WHAT IS SHARC? SHARC is a database of musical timbre information by Gregory Sandell. It stands for "Sandell Harmonic Archive." People for whom this dataset may be useful are Acousticians, Psychoacousticians, Researchers in Music Perception and Cognition, researchers in Digital Signal Processing, Music Theorists, and Musicologists.

Over 1300 different notes have been analysed. Complete chromatic runs from the standard playing range of essentially all the non-percussive instruments of the modern orchestra have been included; for example, individual analyses of 32 different oboe notes (the chromatic scale from the pitches a#3 to f6) are available.

For each note, a short portion corresponding to the sustain or "steady state" portion of the tone was selected and analysed with a Fourier analysis. Each analysis consists of a list of amplitudes and phases for all the note's harmonics in the range 0-10,000 Hz.

The source of the musical notes were the orchestral tones from the McGill University Master Samples (MUMS) Compact Discs. These are digital recordings of live musical performers.

MORE INFORMATION ON SHARC

The SHARC Timbre Database is described in detail in the documentation accompaning the archive. You can get this file by:

  1. Anonymous ftp to ftp.ep.susx.ac.uk; go to pub/sandell, and grab README
  2. World Wide Web, via the URL ftp://ftp.ep.susx.ac.uk/pub/sandell/README.html

Competitions

Atomic Cafe Concerts

Composers interested in having their experimental electronic and computer music works presented in a professional concert setting in Atlanta, Georgia, are invited to submit works for consideration. Concert: Atomic Cafe, New Sounds of Electroacoustic Music. Date: June 1995. Place: 8-10 pm, Georgia State University Recital Hall, Atlanta, Georgia. DEADLINE for submission: MARCH 15, 1995.

Submit cassette tapes or DAT (DAT preferred), bio, program notes, and SASE to:

Robert Thompson, c/o Aucourant Records, P.O. Box 672902, Marietta, GA 30067-0049.

Works longer than 15 minutes cannot be considered. Selection will be based upon technical quality and artistic merit. Selected works submitted on cassette must be resubmitted on DAT for concert presentation. Composers will be notified of concert date(s) and will be sent programs as confirmation of presentation.

Composers' Resources Inc.

Composers' Resources Inc. of Atlanta, Georgia, is seeking innovative computer music and electronic music works for an upcoming high-profile concert event, "An Autumn Evening's Musical Sojourn," to take place in the Fall/Winter of 1994 and possibly to be repeated several times in the future. CRI is seeking tape music works (computer generated, analog electronic, musique concrete etc.) which are aesthetically oriented to quieter, introspective, possibly ambient compositional styles. Send submissions on DAT or open-reel analog tape (cassette is OK for selection purposes but other formats are needed for concert presentation) to:

Composers' Resources Inc.
Howard Wershil
570 Sherringham Court
Roswell, Georgia 30076
Tel. 404-998-7286
Please include program notes, biography, and address.

ISCM WORLD MUSIC DAYS

1996, COPENHAGEN

The ISCM World Music Days 1996 will take place from September 7-14 in Copenhagen within the framework of "Copenhagen Cultural Capital of Europe." Special themes of the festival will be music theatre and interactive computer music. The selection of the jury shall be based exclusively on artistic merits. Each national section and associate member of the ISCM may submit up to six works as an official submission.

Composers (including those from countries not affiliated with the ISCM) may submit ONE work. An entry fee of Dfl. 25,- has to be sent by international money order, Eurocheque, or a bank check free of charges to: ISCM, c/o Gaudeamus, Swammerdanstraat 38, 1091 RV Amsterdam, Netherlands. the work must be sent to the Danish organizing committee. Entries by publishers will only be considered if accompanied by a letter of consent from the composer.

Only one submission per composer can be accepted, whether as a result of national selection or individual submission. Preference will be given to official submissions. Equal attention will be given to all categories of music.

The organizing committee of the ISCM World Music Days 1996 encouragesc submission sin the following categories:

ELECTROACOUSTIC WORKS [excerpt] Concerts will be held at the Planetarium, an Omnimax theatre with 6 loudspeaker positions (center, top, left, right screen; left and right rear) plus one subwoofer. The following subcategories are possible:

  1. MULTIMEDIA -- visual equipment available: 22 dais projectors, Datatron operating system, Zeiss star projector 6 TD laser, 16 colors, 6 scanners, Panguin operating system film, Omnimax
  2. INTERACTIVE COMPUTER WORKS -- live instrumental and vocal performance with interactive computerized electronics, including new interface and instruments.
  3. TAPE WORKS -- in all 3 categories, submission can be accepted in the following formats: AUDIO - DAT, cassette, 1/4-inch 4 track with or without dbx-adat visual dais video VHS, PAL, or NTSC. Composers submitting works in subcategories 2 and 3 are requested to state if they will permit the performance to be accompanied by images designed by a visual artist appointed by the Danish organizing committee.

DEADLINE FOR ENTRIES IS MARCH 31, 1995. All entries have to be received in Copenhagen by that date. All materials have to be sent to the following address:

Committee for the ISCM World Music Days 1996, c/o Danish Music Information Center, Grabrodretorv 16, 1154 COPENHAGEN K, Denmark. Tel.: ..45-33-112066. Fax: 322016.

All submissions which do not meet the conditions or the deadline will not be considered. Brochure with detailed information on the conditions or submission:

ISCM - c/o Gaudeamus Foundation Swammerdamstraat 38, 1091 RV Amsterdam, Netherlands. Tel.: +31-20-6947349. Fax: 6947258.

CALL FOR ELECTRO-ACOUSTIC MUSIC: OPEN AIR ELECTRO-ACOUSTIC CONCERTS IN BRASILIA

The Department of Music of the University of Brasilia promotes, on Mondays, concerts of Electroacoustic Music for tape alone. The concerts are realized at 1 p.m., during the lunchtime of the University, in the open air. Special electronic amplification is available, and for this reason the concerts are presented before a large public of students sitting on the grass-covered ground of the campus.

Composers are invited by the organizer of the series, the composer Jorge Antunes, to send electronic tapes to the address indicated below. The tape format may be digital recording--DAT 48 kHz, 44.1 kHz, or 32 kHz--or analogue recordings--7.5 ips or 15 ips (19cm/sec. or 38 cm/sec.) full-track mono or half-track stereo. Cassette tapes of very good quality are also accepted.

The exclusive participation of not very purist composers is highly recommended. The concerts, presented in the open air, are exposed to aleatory sound events of nature, traffic, and even of a critical audience. All tapes are presented without previous selection. After each concert, the organizer sends the printed program and press clippings to the composers. The didactic purpose of the concerts does not permit the payment of authors' rights.Professor Dr. Jorge Antunes, Laboratorio de Musica Electroacoustica, Universidade de Brasilia, Departamento de Musica Sala 21, 70.910-000 Brasilia DF, BRAZIL.

The Experimental Music Studios
School of Music
University of Illinois at Urbana-Champaign
1114 W. Nevada St.
Urbana, Illinois 61801

EMS & CMP Director: Scott Wyatt
CMP Co-Managers: James Beauchamp, Sever Tipei

EMS Assistants:
Tim Dixon, Technical Assistant
Richard Power, Operations Assistant

CMP Assistants:
Brett Terry, Systems Assistant
David Ralley
Cheri Herndon

CMP User Advisory Committee:
James Bohn
Camille Goudesenne
Brett Terry
Ray Watts

EMS User Advisory Committee:
Richard Power
Brett Terry
Andrew Walters


  Home | EMS | CMP | Photos | Admissions | Resources