These subroutines generate composite waveforms made up of weighted sums of simple sinusoids. The specification of each contributing partial requires 1 pfield using GEN10.
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement).
str1, str2, str3, etc. -- relative strengths of the fixed harmonic partial numbers 1,2,3, etc., beginning in p5. Partials not required should be given a strength of zero.
Note:
These subroutines generate stored functions as sums of sinusoids of different frequencies. The two major restrictions on GEN10 that the partials be harmonic and in phase do not apply to GEN09 or GEN19.
In each case the composite wave, once drawn, is then rescaled to unity if p4 was positive. A negative p4 will cause rescaling to be skipped.
Here is a simple example of the GEN10 routine. It uses the files gen10.orc and gen10.sco. It will generate a simple sine wave. Here is its diagram:
Diagram of the waveform generated by GEN10.
Example 16-1. A simple example of the GEN10 routine.
/* gen10.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
kamp = 30000
kcps = 440
ifn = 1
; Play the sine wave stored in Table #1.
a1 oscil kamp, kcps, ifn
out a1
endin
/* gen10.orc */
/* gen10.sco */
; Table #1: a simple sine wave (using GEN10).
f 1 0 16384 10 1
; Play Instrument #1 for 2 seconds.
i 1 0 2
e
/* gen10.sco */