GEN02
Prev | Score Statements and GEN Routines | Next

## 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
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 1186. 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 3 0 5 2 0 2 10 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.

Prev | Up | Next
GEN01 | Home | GEN03