Generate composite waveforms made up of weighted sums of simple sinusoids.
The specification of each contributing partial requires 1 pfield using GEN10.
Syntax
f#timesize10str1str2str3str4...
Initialization
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.
Examples
Here is an example of the GEN10 routine. It uses the files gen10.csd.
<CsoundSynthesizer><CsOptions>; Select audio/midi flags here according to platform-odac ;;;realtime audio out;-iadc ;;;uncomment -iadc if realtime audio input is needed too; For Non-realtime ouput leave only the line below:; -o gen10.wav -W ;;; for file output any platform</CsOptions><CsInstruments>sr=44100ksmps=32nchnls=20dbfs=1instr1kamp=.6kcps=440ifn=p4asigoscilkamp,kcps,ifnoutsasig,asigendin</CsInstruments><CsScore>f1016384101; Sinef20163841010.50.30.250.20.1670.140.125.111; Sawtoothf301638410100.300.200.140.111; Squaref40163841011110.70.50.30.1; Pulsei1021i1322i1623i1924e</CsScore></CsoundSynthesizer>
These are the diagrams of the waveforms of the GEN10 routines, as used in the example:
f 1 0 16384 10 1 - sine wave with only the fundamental frequencyf 2 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 - sawtooth, with a fundamental and 8 harmonics f 3 0 16384 10 1 0 0.3 0 0.2 0 0.14 0 .111 - square wave, with a fundamental and 8 harmonics but 4 have 0 strengthf 4 0 16384 10 1 1 1 1 0.7 0.5 0.3 0.1 - pulse wave, with a fundamental and 8 harmonics