*********************************************
Main Group 02: Additive Synthesis, Same Units   
*********************************************

Sub Id  Contents

01      Basic Instrument
    3   sinus wave, exponential envelope, gong
    4   sinus wave, exponential envelope,
        ratio control of frequencies in score, bell 
    5   sinus wave, power envelope, 
        spectral analysis of a chord
    5B  as 5, exponential envelope 
    6   sinus wave, exponential envelope, 
        constant number of additive units, 
        individual control of iamp, idur and ifq, bell 
    6B  different Csound implementation of 6
    7   variable wave & envelope, 
        linear and exponential decay experiments       

13      Linear Envelope Transfer Functions
    1   basic instrument with various constants and ratios        
        applied to a single LINSEG envelope, brass 
    1B  as 1, different LINSEG envelope

40      LFO on Frequency
    1   equidistant frequency cluster, 
        LFO pitch contour, starship

41      RANDI on Frequency  
    1   basic instrument with added small random frequency
        variation, LINEN envelope, brass 
    2   as 1, different OSCIL envelopes, brass from physical      
        analysis data

42      Frequency Transfer Functions
    1   variable pitched drums 

43      Extremely Small Frequency Offsets
    1   arpeggio instrument, tibetan chant like

44      Exponential Frequency Control
    1   basic instrument with continuous frequency and amplitude  
        control, endless glissando 
    2   as 1, different Csound implementation                     
        with PHASOR and TABLE, cycle studies
    2B  as 2, pitch studies

Overview

The additive synthesis instruments of this main group are
assembled from equal building blocks. Apart from different data
fed to these designs, the instruments differ in their methods of
controlling the envelope and waveform. Sometimes the addition is
directed from within the score file by using a note statement for
each harmonic. This is a very flexible method that allows to vary
the amount of harmonics with every event. On the other hand the
hardcoding of a constant number of parallel basic instrument
blocks is more economical. 

Again, some of Risset's fine instruments adorn this part of the
catalogue. The composer has written his thesis on trumpet tones
and extensively used additive designs in his compositions. He
points out that instrumental imitation is not aimed at
duplicating an instrument, but at shedding light on properties
that can endow sounds with naturalness, richness and character.
The brass timbre, for example, is characterized by a law of
variation between physical parameters, rather than by a physical
invariant such as a spectrum (Risset 1989: p. 68). 

------------------------------------------------------------ next


**********************************************************
Sub group numbering logic
     basic instrument:                            01 to 09
     modification of amplitude:                   10 to 29
     modification of frequency:                   30 to 69
**********************************************************

------------------------------------------------------------ next

Suggested Reading

Lorrain, Denis 1980.
"Inharmonique, Analyse de la Bande de l'Oeuvre de Jean-Claude
Risset."
Rapports IRCAM, 26.

Mathews, M. and J.-C. Risset. 1969.
"Analysis of Instrument Tones."
Physics Today 22(2):23-30.

Moore, F.R. 1977, 1985.
"Table Lookup Noise for Sinusoidal Digital Oscillators." Computer
Music Journal 1(2):26-29. 
Reprinted in C. Roads and J. Strawn, eds. 1985.
Foundations of Computer Music. 
MIT Press, pp. 326-334.

Moorer, J.A., and Grey, J.M. 1977, 1978.
"Lexicon of Analyzed Tones (Part 1: A Violin Tone)."
Computer Music Journal 1(2):39-45.
"Lexicon of Analyzed Tones (Part 2: Clarinet and Oboe Tones)."
Computer Music Journal 1(3):12-29.
"Lexicon of Analyzed Tones (Part 3: The Trumpet)."
Computer Music Journal 2(2):23-31.

Moorer, J.A. 1985.
"Analysis-based Additive Synthesis."
in  Strawn, J., ed. 1985.
Digital Audio Signal Processing: An Anthology. 
A-R Editions, pp. 160-177.

Risset, J.-C. 1966. 
"Computer Study of Trumpet Tones." 
Murray Hill, N.J.: Bell Telephone Laboratories.         

Risset, J.-C. 1969.
"Introductory Catalogue of Computer Synthesized Sounds."
Murray Hill, N.J.: Bell Telephone Laboratories.

Risset, J.-C. 1969b.
"Pitch Control and Pitch Paradoxes Demonstrated with
Computer-Synthesized Sound."
Journal of the Acoustical Society of America 46:88.

Risset, J.-C. 1989
"Additive Synthesis of Inharmonic Tones."
in Mathews M.V. and J.R. Pierce, eds. 1989. 
Current Directions in Computer Music Research. 
MIT press, pp. 159-163.

Risset, J.-C. 1989b.
"Computer Music Experiments 1964-..."
in C.Roads, ed. 1989. 
The Music Machine. MIT Press, pp. 67-74.

Risset, J.-C. 1989c.
"Paradoxical Sounds."
in Mathews M.V. and J.R. Pierce, eds. 1989. 
Current Directions in Computer Music Research. 
MIT press, pp. 149-158.

Shepard, R.N. 1964. 
"Circularity in judgements of relative pitch."
Journal of the Acoustical Society of America 36:2346-53.

------------------------------------------------------------ next

02_01_3
additional parameters: none


These percussive gong-like sounds are realized with additive
synthesis. An exponentially decaying envelope is set onto a
number of sinusoid waveforms. 

In the first sound, all frequency components decay synchronously.
The spectrum is invariant and recalls an electronic chime.

For the second tone, the same frequency components have a decay
time approximately inversely proportional to their frequency: the
principle is followed in a flexible manner to come to a more
intricate decay pattern. Compared to the first sound, we find
more life and naturalness here.

The next tone features a different set of frequencies, again with
non-synchronous decay.


The last four tones overlap and their frequency components are
sufficiently close to each other to produce beats. (Risset 1969:
#420)


(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_01_4
additional parameters: irat


This instrument is similar to the previous design: f51 generates
an exponential decaying envelope. By applying decreasing
durations for the note statements belonging to one additive
event, envelope f51 shapes the sinus waves non-synchronously. 

The frequency of the individual components is expressed by a
ratio to the fundamental. 

The bell-like timbre is obtained by 7 components (at 1, 2, 2.4,
3, 4.5, 5.33 and 6 times the fundamental frequency) with variable
durations. 

The second tone is obtained by only four additive components (1,
2, 2.5, 3.36). 

The durations are 3 sec for the first tone, and 4 sec for the
second tone. (Risset 1969: #410)

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_01_5
additional parameters: none


This is the ACCCI implementation of Risset's 'Spectral Analysis
of a Chord': for each note of the chord successive harmonics are
introduced gradually. Originally, the score file has been created
with the help of a PLF sub routine (Mathews 1969: pp.78-86).
Slightly different routines were used on each of the three two
note groups, as is shown in brackets in the figure below.


(illustration)

4 harmonics for group 1, 
8 harmonics for group 2 and 
10 harmonics for group 3 are generated in turn. 


The durations of the successive harmonics are related to the
fundamental note duration D by D-DD.

If DD = 0, they have the same duration as the fundamental, as
shown to the right. The total duration of the sound for N
harmonics is then given by: D(total) = D + N * TS. 

For generation routine 2 the pattern is different:

(illustration)

The envelope has a parabolic attack and decay. This shape is
created by the linear f31 multiplied by itself. The general
design is additive. (Risset 1969: #500)

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_01_5B
additional parameters: none


Variation on the preceding instrument: a percussive
(instantaneous) attack and an exponential decay replace the
parabolic attack and decay envelope. Everything else remains
unchanged. (Risset 1969: #501)

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_01_6
additional parameters: none


This additive bell is built with the OSCIL1 unit generator,
allowing individual durations to be controlled from within the
orchestra file.

The module OSCIL1i has been created specifically for this type of
instrument design. Csound enforces the use of a K-rate output
argument for this unit generator.

Substitution of OSCIL1 by OSCIL can not be done for the following
reason: the waveform oscillator is still 'on' after the end of
the envelope has been reached. This leads to a series of chaotic
sinus entries and clicks, depending on the duration ratios.

To avoid noise the envelope function f51 needs a minimum slope of
4096 to 1 before rescaling. (Vercoe 1993: morefiles/risset3.orc)

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_01_6B
additional parameters: none


A different realization of an additive bell. The envelope is
generated by EXPON. In contrast to the previous design, this unit
generator allows the use of an A-rate output buffer. A longer
performance of the instrument will use the last defined value of
EXPON to continue on in the same direction (here: iamp = 1). 

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_01_7
additional parameters: if1, if2


This is the additive part of Risset's 'Linear and Exponential
Decay Experiments'. In his score the composer uses only three
parallel building blocks, but this can be extended to any number,
if there is a wish to do so. 


In section 1 the waves with the higher harmonic content decay
faster. This situation is often encountered in natural vibrating
systems. The example of section 2 adds a slight detuning to add
liveliness.  In section 3, the waves with lower harmonic content
decay first (not often found in nature), and section 4 adds a
small detuning once more. The noise in sections 3 and 4 stems
from the foldover components of the square wave f31. Section 5
repeats section 1, and the last section detunes the three
oscillators just a little more than was the case earlier on.
(Risset 1969: #300)

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_13_1
additional parameters: irise, idec


This run, again translated from the original Music 5 instrument
of Risset, presents an economical way to synthesize brass tones,
or in more general terms, sounds whose spectra depend upon the
amplitude of one component (Mathews and Risset: 1969). 

The design is as follows: LINSEG produces one amplitude envelope
(0 < iamp < 120) which leads straight to the first sinus
oscillator and serves to calculate relative amplitude values for
the harmonics (in this particular case). The modification imposed
by iratio and iconst will lead to an increase of the higher
harmonics, as a function of amplitude. 

For example, for iamp = 100, the seventh harmonic is seven times
as strong as at iamp = 60. During the rise time of the tone, the
higher harmonics will increase more rapidly.

On the other hand they will die away sooner during the decay
period.

The linear scheme that governs this behaviour is laid out in the
figure on page 46. (Risset 1969: #210) 

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_13_1B
additional parameters: irise, idec


This design uses a LINSEG envelope which is different from the
previous one. The envelope produces a large and fast increase of
the amplitudes in the rise. Both for instruments 02_13_1 and
02_13_1B the rise time itself is 50 msec. It is somewhat larger
than in most actual trumpet sounds because of the unusual way in
which the harmonics enter.

Risset adds here that these sounds are not presented as good
imitations of trumpet sounds. There is no formant structure,
there are not enough components and there is no frequency
control. Yet, he points out, this design is not limited to
brass-like sounds, and can be useful in other contexts. 

The figure shows that below an amplitude of 33 the output will
contain no harmonics, while for values between 33 and 50 the
number of harmonic components increases to seven.

Reaching 50 on the abscissa, all functions are .05. This can be
used as a point of reference, to understand how the quantities
are distributed in this instrument. After passing through the
sloped linear scaling functions, the amplitudes are multiplied by
different amounts, proportional to 1000. For the second harmonic:
1000x.05=50, for the third harmonic: 2000x.05=100 and so on for
the other harmonics. These amounts function as additional (or
secondary) weighting factors of the harmonics.

While all following the LINSEG envelope, above an amplitude value
of 50, the various harmonics increase 2,3 ... 7 times as fast as
the fundamental (according to their harmonic number in this
particular design). (Risset 1969: #210)

(illustration harmonic scheme)

For implementations of this type of design, a multiplier before
the output is used to scale the amplitude to the desired level.
Any attempt to scale at an earlier stage would disturb the
precarious balance of this instrument, as will be clear from the
detailed exposition above.


(.orc and .sco files)

------------------------------------------------------------ next

02_40_1    
additional parameters: irate, ioff1-ioffn


This instrument allows the movement of a cluster of frequencies
in a linear fashion. The breakpoint function f35 specifies the
trace all frequencies will follow. On that trajectory the
partials maintain the same absolute distance from each other. The
exact intervals are given by the set of ioffn variables: in this
scheme half of the frequency components are within LFO range and
the other half is just outside that range (4.5, 9.4, 23, 39 and
84 Hz offset).

The variable irate controls the time needed for one complete
scanning of this function: in our example it takes 20 seconds.

The tone gives the impression of a starship during take off.

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next
02_41_1
additional parameters: irise, idec, ifundr


This additive instrument shows individual an amplitude envelope
and frequency for each partial. Rise and decay times are
specified by the variables irise and idec. It is a simplification
of instrument 02_41_2 and based on physical analysis data of
trumpet tones.

The frequency of the partials is subject to small random
fluctuations. The range of these fluctuations is set to 6% of the
fundamental frequency for all partials. (Risset 1969: #200) 

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_41_2
additional parameters: if2, ifundr


In this example Risset used data from real trumpet tones to
synthesize brass-like sounds. The amplitude envelopes of the
partials are individually specified as breakpoint functions.
(Mathews and Risset 1969)

Additionally, the frequencies of the components are random
modulated at a rate of 10 Hz with an amplitude of 4% of the
fundamental frequency. Both values are low; the random
frequency fluctuation plays a minor part in this particular tone
quality. (Risset 1969: #200)

Data for other analysis-based additive synthesis instruments is
published by Moorer: cello, trumpet and clarinet (Moorer 1985).

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_42_1
additional parameters: iamp2, ifq2, iamp3, ifq3 ipcf, 
                       iatt1, idec1, iatt2, idec2, iatt3, idec3

This design emulates a pitched drum with control on the pitch
contour.

One oscillator produces the fundamental wave (160Hz) and the
other two oscillators create inharmonic partials: 225, 300, 375,
450 Hz for the second oscillator and 468, 549, 610, 671, 732,
915, 1037 and 1098 Hz for the third oscillator. 

The amplitude envelopes are given by three EXPSEG unit
generators. The rise time for the fundamental is 10 or 30 msec,
its steady state is 0 or 30 msec, and its decay is set to
1.6 seconds. The remaining two EXPSEG modules ensure a fast decay
of the inharmonic partials. In this example, the set of partials
take .6 and .3 seconds respectively to decay to 1/1000th of their
initial amplitude.

The pitch evolution is following the functions f31 (stays the
same), f32 (increasing about a third), f1 (sinus with an
amplitude of a third) and f33 (decreasing a third).

The examples are ordered in the same sequence. The last tone is
to demonstrate the degenerate effect of a long rise paired with a
very brief decay of the inharmonic contributors. (Risset 1969:
#440)

The instrument can also be classified in main group 03. This
would underline the functional difference of the oscillators.
Nevertheless, we prefer to focus on the technical parallelism of
the design.

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_43_1
additional parameters: ioff, irise, idec


This remarkable tibetan harmonic chant like effect is created by
nine sinusoidal oscillators, whose frequencies are almost
identical: separated by a fraction of 1 Hz from each other. Thus
for each component, amplitude modulation leads to its enhancement
or cancelling out in turn. In his composition 'Mutations', Risset
gives the instrument two different envelopes: one with sharp rise
and one is a more gradual rise. 

02_43_1 has been modified to choose rise and decay times from the
score file, instead of using an oscillator as envelope generator.
A very brief rise sounds like the attack of a string instrument.
The score fragment is from 'Mutations'. (Lorrain 1980: phase6;
Vercoe 1993: morefiles/risset1.orc)

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_44_1
additional parameters: none


The instrument plays an endless glissando or Shepard tone, named
after its inventor R.N.Shepard. In this realization the sound
appears to descend infinitely. (Shepard 1964: pp. 2346-53; Risset
1969b: p. 88)

10 parallel units perform the same calculations, but not at the
same time! Amplitude and frequency envelopes of the parallel
building blocks differ in phase by 1/10th of a cycle.  

The frequencies follow an exponential decay, from ifq=3900 to
ifq=3900*2-10. This equals a descent over 10 octaves from the
start to the end of the 120 second note event. 

The phase difference spaces the frequency components exactly one
octave apart. Thus, an octave descent takes 120s/10 = 12 seconds
here. 

The bell-shaped function f71 controls all amplitudes with the
effect of enhancing the frequency trajectory of components in the
mid-frequency range, and attenuating low and high frequency
components. The lowest and highest frequencies are inaudible. 

Interpolating oscillators are recommended to avoid noticeable
noise or discontinuities due to round-off errors. More in general
this holds for all sounds that include frequency modulation.
(Mathews 1969: p. 134; Moore 1977: pp. 26-29, 1985: pp. 326-334)

A sinus starting at 270 degrees (+1,/2) eliminates the additional
step of abusing an audio file to generate a bell-shaped function.
(Risset 1969: #513)

(flowchart)
(.orc and .sco files)

------------------------------------------------------------ next

02_44_2
additional parameters: icycle


This is a realization of the Shepard tone or endless glissando
that utilizes TABLE(I) and PHASOR. The tables contain a
bell-shaped and an exponential functions. The variable
icycle controls the speed of incremental indexing. 

Cycle time studies. 
The score file explores how different values of the variable
icycle affect the sound.
For the first tone the sampling index advances 1/100th of a
cycle. In the second tone the index moves at 1/50th and in the
last setting it increases to 1/25th of a cycle. The duration is
20 seconds for each note.

The bell-shaped function cannot be generated by any of Csound's
GEN routines directly. There is a way though, to obtain a table
of an arbitrary mathematical function by making one extra step. 

First, a purely mathematical orchestra calculates the table
values. After this run, the desired table exists as a datafile.
From now on, any instrument can make use of the new table. GEN 01
retrieves the values of the soundfile into a function table. Like
all GEN routines, GEN 01 by default rescales the given values to
the range (-1 < x < 1). Loaded into internal memory, the function
table can be used like any wave or envelope function table. 

In instrument 02_44_2, the datafile Sflib/88_01_2.TAB is called
up by GEN 01 to give the bell-shaped function. 

A subdirectory Sflib (Soundfilelibrary) within the main soundfile
directory is useful to protect mathematical and other special
audio files from wildcard operations on the soundfile directory.
(Vercoe 1993: morefiles/ENDLESS.ORC; Vercoe 1993: morefiles/
risset4.orc)

02_44_2B
additional parameters: icycle

Pitch studies.
This instrument varies the start frequency for the glissando
descent. We show three notes with a duration of 20 seconds and
start frequencies of 32000, 16000 and 8000 Hz.

(flowchart)
(2 x .orc and .sco files)
