GEN02 — Transfers data from immediate pfields into a function table.
size -- number of points in the table. Must be a power of 2 or a power-of-2 plus 1 (see f statement). The maximum tablesize is 16777216 (224) points.
v1, v2, v3, etc. -- values to be copied directly into the table space. The number of values is limited by the compile-time variable PMAX, which controls the maximum pfields (currently 1000). The values copied may include the table guard point; any table locations not filled will contain zeros.
Note | |
---|---|
If p4 (the GEN routine number is positive, the table will be post-normalized (rescaled to a maximum absolute value of 1 after generation). A negative p4 will cause rescaling to be skipped. You will usually want to use -2 with this GEN function, so that your values are not normalized. |
Here is an example of the GEN02 routine. It uses the files gen02.csd.
Example 1096. Example of the GEN02 routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<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 gen02.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ifn = p4 ;choose different tables of GEN02 kcps init 1/p3 ;index over the length of entire note kndx phasor kcps ixmode = 1 ;normalize index data kamp tablei kndx, ifn, ixmode asig poscil kamp, 440, 1 ;use GEN02 as envelope for amplitude outs asig, asig endin </CsInstruments> <CsScore> f 1 0 8192 10 1 ;sine wave f 2 0 5 2 0 2 0 f 3 0 5 2 0 2 10 0 f 4 0 9 2 0 2 10 100 0 i 1 0 2 2 i 1 3 2 3 i 1 6 2 4 e </CsScore> </CsoundSynthesizer>
These are the diagrams of the waveforms of the GEN02 routines, as used in the example: