GEN08 — Generate a piecewise cubic spline curve.
This subroutine will generate a piecewise cubic spline curve, the smoothest possible through all specified points.
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement).
a, b, c, etc. -- ordinate values of the function.
n1, n2, n3 ... -- length of each segment measured in stored values. May not be zero, but may be fractional. A particular segment may or may not actually store any values; stored values will be generated at integral points from the beginning of the function. The sum n1 + n2 + ... will normally equal size for fully specified functions.
Note | |
---|---|
|
Here is an example of the GEN08 routine. It uses the files gen08.csd.
Example 1273. An example of the GEN08 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 Non-realtime ouput leave only the line below: ; -o gen08.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ifn = p4 ;choose between tables kcps init 1/p3 ;create index over duration of note. kndx phasor kcps ixmode = 1 kval table kndx, 2, ixmode ;normalize index data ibasefreq = 440 kfreq = kval * 100 ;scale asig poscil .7, ibasefreq + kfreq, 1 ;and add to frequency outs asig, asig endin </CsInstruments> <CsScore> f 1 0 16384 10 1 ;sine wave. f 2 0 65 8 0 16 1 16 1 16 0 17 0 f 3 0 65 8 -1 32 1 2 0 14 0 17 0 i 1 0 2 1 i 1 3 2 2 e </CsScore> </CsoundSynthesizer>
These are the diagrams of the waveforms of the GEN08 routines, as used in the example: