***************************************
Main Group 10: Random Number Generation
***************************************


Sub Id  Contents

01      RAND
    1   LINEN envelope

02      RANDI
    1   LINEN envelope
    2   Noise bands by ringmodulation

03      RANDH 
    1   LINEN envelope

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

Overview

We have devised a section apart for random number generation. At
present the section is
limited to an exploration of the corresponding unit generators of
Csound. More
implementations of stochastic processes and the related
techniques in the form of score
generating software could enrich this section.

The unit generators RAND, RANDI and RANDH use a pseudo-random
formula (Dodge 1985: p.89-
90). Therefore, random number sequences are reproducible by using
the same (optional)
seed value.

RAND produces uniformly distributed values over the range +iamp
to -iamp. The r.m.s.
value will be iamp/root 2. 
RAND and RANDI produce band-limited noise.

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

Suggested Reading

Dodge, C., and T.A. Jerse. 1985.
"Noise Generators", pp. 86-90 and "Aleatoric Composition with
Computers", pp. 265-303.
Computer Music: Synthesis, Composition, and Performance.
Schirmer Books.

Jones, K.J. 1980.
"Computer Assisted Application of Stochastic Structuring
Techniques in Musical Composition and Control of Digital Sound
Synthesis Systems."
Ph.D.thesis, The City University, London.

Jones, Kevin 1981.
"Compositional Applications of Stochastic Processes."
Computer Music Journal 5(2).
Reprinted in C.Roads, ed. 1989.
The Music Machine. MIT Press, pp. 351-379.

Knuth, Donald 1969.
The Art of Computer Programming (Vol. 2) Seminumerical
Algorithms. 
Reading, Massachusetts: Addison-Wesley, pp. 1-160.

Lakacs, L. 1966.
Stochastic Processes.
London: Methuen.

Lorrain, Denis 1980.
"A Panoply of Stochastic 'Canons'."
Computer Music Journal 4(1):53-81.
Reprinted in C.Roads, ed. 1989.
The Music Machine. MIT Press, pp. 351-379.

Roads, C. 1978.
"Automated Granular Synthesis of Sound."
Computer Music Journal 2(2):62-63.

Siegel, L., K. Steiglitz and M. Zuckerman. October, 1975.
"The Design of Markov Chains for Waveform Generation."
Proceedings of the Institute of Electrical and Electronics
Engineering (EASCON).

Xenakis, Iannis 1971.
Formalized Music.
Bloomington, Indiana: Indiana University Press.
Revised Edition 1992. Pendragon Press.

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

10_01_1
additional parameters: none


This instrument generates 4 seconds of white noise. 


(flowchart)
(.orc and .sco files)

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

10_02_1
additional parameters: ifr


RANDI produces band-limited noise. Here a sequence of 10 notes is
played. The bandwidth of the signals is decreasing from 10000 to
25 Hz. The envelope gives .4 sec of rise and decay over the
duration of the notes. 

The soundfile 10_02_1.SF serves as input for the PLUCK unit
generator in main group 15. 

(flowchart)
(.orc and .sco files)

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

10_02_2
additional parameters: if1, ifqr



This instrument uses RANDI to produce a band-limited noise with
control of center frequency ifqr. Actually RANDI is ring
modulating a sinus oscillator, thereby translating the noise band
to both sides of the center frequency. A good sensation of pitch
is reached by setting the bandwidth to 20% of the center
frequency. 

Suggestions:
Add a parameter that specifies the pitched-ness (that is: the
bandwidth) in % of the center frequency.

Noise glissandos are obtained by adding an LFO onto the frequency
slot of the oscillator. J. Tenney has made use of this type of
instrument in his 'Noise Study'. (Dodge 1985: p. 93)

(flowchart)
(.orc and .sco files)

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

10_03_1
additional parameters: ifr


Here the RANDH version of the most basic noise instrument:
band-limited noise depending on ifr.

RANDH produces new random numbers at the rate specified by ifqr,
and holds the chosen value till a new one is picked. RANDI would
interpolate with a straight line of values between two
successively chosen numbers.

The difference between RANDI and RANDH is clearly audible. 
Compare with 10_02_1...

(flowchart)
(.orc and .sco files)

