GEN07 — Constructs functions from segments of straight lines.
size  number of points in the table. Must be a power of 2 or powerof2 plus 1 (see f statement).
a, b, c, etc.  ordinate values, in oddnumbered pfields p5, p7, p9, . . .
n1, n2, etc.  length of segment (no. of storage locations), in evennumbered pfields. Cannot be negative, but a zero is meaningful for specifying discontinuous waveforms (e.g. in the example below). The sum n1 + n2 + .... will normally equal size for fully specified functions. If the sum is smaller, the function locations not included will be set to zero; if the sum is greater, only the first size locations will be stored.
Note  


Here is an example of the GEN07 routine. It uses the files gen07.csd.
Example 1273. An example of the GEN07 routine.
<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 Nonrealtime ouput leave only the line below: ; o gen07.wav W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;use GEN07 to alter frequency ifn = p4 ;use different GEN07 tables kcps init 10/p3 ;index ftable 10 times over the duration of entire note kndx phasor kcps ixmode = 1 ;normalize index data kfrq tablei kndx, ifn, ixmode kfrq = kfrq*1000 ;scale asig poscil .8, 1220+kfrq, 1 ;add to frequency outs asig, asig endin </CsInstruments> <CsScore> f 1 0 8192 10 1 ;sine wave f 2 0 1024 7 0 512 1 0 1 512 0 ;sawtooth up and down f 3 0 1024 7 1 512 1 0 1 512 1 ;square f 4 0 1024 7 1 1024 1 ;saw down i 1 0 2 2 i 1 + 2 3 i 1 + 1 4 e </CsScore> </CsoundSynthesizer>
These are the diagrams of the waveforms of the GEN07 routines, as used in the example: