CCRMA

M149: Instrumental Music with Electronics

Instructors: Jonathan Harvey, Juan Pampin

Lab 2: filtered pulse trains

For this Lab you have to "recreate" some sounds from Kontakte. The details about how to generate those sounds can be found in Karheinz Stockhausen's article "The Concept of Unity in Electronic Music". To recreate these sounds you will have to use the following CLM instruments:

These instruments must be Saved, Compiled and Loaded in order to be used. Please read this file from the previous lab if you have problems to get things up and running. You can use the real-time instrument to get started, trying out different pulse speeds and filter settings. Due to the required parametric dynamic control, the examples from the score have to be generated with pulse-filter-env.ins (see below).


Subtractive Synthesis

From the experience gained from the previous lab we know that pulse trains are spectrally rich sounds. One particular technique of sound synthesis called subtractive synthesis is based on filtering of rich sources such as white noise or pulse trains. In Kontakte, Stockausen used this technique extensively, both to create bands of colored noise and to imprint pitch on pulse trains by means of narrow-band filters.

We will concentrate on sounds coming from Moments IX F and X of Kontakte. In these sections of the piece most of the sounds were created using pulse trains filtered by band-pass filters. A band-pass filter (also called formant or resonant filter) can be adjusted so to filter out all the frequencies of a signal except the ones that are under a particular bandwidth of frequency. The width of the passing band can be adjusted as well as its central frequency position. If the filter's bandwidth is narrow enough the filter can "resonate" at its central frequency becoming almost a sinusoidal oscillator.

The CLM instrument pulse-filter-env.ins implements a subtractive synthesizer using a pulse train generator and a band-pass filter. Besides the standard start-time, duration, amplitude values, the parameters we can control are:

Next example shows how to create sound 43i from Moment IX F (read detailed explanation on page 44 of the article):

;;; Moment IX F, sound 43i
(with-sound (:srate 44100 :play nil :output "/zap/kon-43i.snd") 
  (pulse-filter-env 0.0 60.0 0.5 
		    :wave-dur 60.0
		    :speed-env '(0 16.6 1 16.6)
		    :frq-env '(0 40 1/7 71 2/7 53 3/7 126 4/7 94 5/7 225 6/7 168 1 300)
		    :bw-env '(0 7.0 1 10.0)))

This call to the instrument generates the "slow motion" version of the sound. To get the sound up to scale we need to transpose it up ten times. We can do this simply by using a variable speed sound player like file-wave.ins (from lab-1) or opening the soundfile in snd and using the Speed control slider (use the Show Controls under the View... menu to make the sliders visible)

Of course, as we are working in the digital domain, we can control the parameters with envelopes running at sampling rate. We can though generate our sound at the right speed in one step just scaling the parameters:

(with-sound (:srate 44100 :play nil :output "/zap/kon-43i.snd") 
  (pulse-filter-env 0.0 6.0 0.5
                    :wave-dur 6.0
                    :speed-env '(0 166.0 1 166.0)
                    :frq-env '(0 400 1/7 710 2/7 530 3/7 1260 4/7 940 5/7 2250 6/7 1680 1 3000)
                    :bw-env '(0 70.0 1 100.0)))


Assignment

Generate sounds 44a, 44b and 44c of Moment X. You will have to use pulse-filter-env as shown in the previous example to generate this sounds in their original time scale and then use snd to transpose them up. Follow the instructions on page 45 of the article and look for more detailed information on page 48 of the technical score (specially for 44c, hint: you should transpose down the frequencies indicated on the envelope to get all the points i.e. 196 Hz becomes 53.9 Hz, etc.)

You should send the calls to the instrument that generate the 3 sounds to juan@ccrma.stanford.edu. We should be able to generate the original time scale version of the sounds using your code (not the transposed version).

NOTE: Don't send soundfiles!!!!, just the (with-sound ...) calls.

The assignment is due a week from Lab 2. During lab 3 we will play your versions of these 3 sounds. Have fun!



©1998 by Juan Pampin,
juan@ccrma.stanford.edu