GEN02

GEN02 — Transfers data from immediate pfields into a function table.

Description

This subroutine transfers data from immediate pfields into a function table.

Syntax

f # time size 2 v1 v2 v3 ...

Initialization

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] 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.

Examples

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:

f 2 0 5 2 0 2 0

f 2 0 5 2 0 2 0

f 3 0 5 2 0 2 10 0

f 3 0 5 2 0 2 10 0

f 4 0 9 2 0 2 10 100 0

f 4 0 9 2 0 2 10 100 0

See Also

GEN17

Credits

December 2002. Thanks to Rasmus Ekman, corrected the limit of the PMAX variable.