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. The maximum tablesize is 16777216 (224) points. The value may be given as zero, in which case the number of values decides the table length.

v1, v2, v3, etc. -- values to be copied directly into the table space. 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 1196. 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.

Use of length zero new in version 6.12