GEN Routines
Prev | Score Statements and GEN Routines | Next

## GEN Routines

GEN routines are used as data generators for function tables. When a function table is created using the f score statement the GEN function is given as its fourth argument. A negative GEN number implies that the function is not rescaled, and maintains its original values.

### Sine/Cosine Generators:

- GEN09 - Composite waveforms made up of weighted sums of simple sinusoids.
- GEN10 - Composite waveforms made up of weighted sums of simple sinusoids.
- GEN11 - Additive set of cosine partials.
- GEN19 - Composite waveforms made up of weighted sums of simple sinusoids.
- GEN30 - Generates harmonic partials by analyzing an existing table.
- GEN33 - Generate composite waveforms by mixing simple sinusoids.
- GEN34 - Generate composite waveforms by mixing simple sinusoids.

### Line/Exponential Segment Generators:

- GEN05 - Constructs functions from segments of exponential curves.
- GEN06 - Generates a function comprised of segments of cubic polynomials.
- GEN07 - Constructs functions from segments of straight lines.
- GEN08 - Generate a piecewise cubic spline curve.
- GEN16 - Creates a table from a starting value to an ending value.
- GEN25 - Construct functions from segments of exponential curves in breakpoint fashion.
- GEN27 - Construct functions from segments of straight lines in breakpoint fashion.

### File Access GEN Routines:

- GEN01 - Transfers data from a soundfile into a function table.
- GEN23 - Reads numeric values from a text file.
- GEN28 - Reads a text file which contains a time-tagged trajectory.
- GEN43 - Loads a PVOCEX file containing a PV analysis.
- GEN49 - Transfers data from an MP3 soundfile into a function table.

### Numeric Value Access GEN Routines

- GEN02 - Transfers data from immediate pfields into a function table.
- GEN17 - Creates a step function from given x-y pairs.
- GEN44 - Creates a stifness matrix for scan/scanu.
- GEN52 - Creates an interleaved multichannel table from the specified source tables, in the format expected by the ftconv opcode.

### Window Function GEN Routines

- GEN20 - Generates functions of different windows.

### Random Function GEN Routines

- GEN21 - Generates tables of different random distributions.
- GEN40 - Generates a random distribution using a distribution histogram.
- GEN41 - Generates a random list of numerical pairs.
- GEN42 - Generates a random distribution of discrete ranges of values.

### Waveshaping GEN Routines

- GEN03 - Generates a stored function table by evaluating a polynomial.
- GEN13 - Stores a polynomial whose coefficients derive from the Chebyshev polynomials of the first kind.
- GEN14 - Stores a polynomial whose coefficients derive from Chebyshevs of the second kind.
- GEN15 - Creates two tables of stored polynomial functions.

### Amplitude Scaling GEN Routines

- GEN04 - Generates a normalizing function.
- GEN12 - Generates the log of a modified Bessel function of the second kind.
- GEN24 - Reads numeric values from another allocated function-table and rescales them.

### Mixing GEN Routines

- GEN18 - Writes composite waveforms made up of pre-existing waveforms.
- GEN31 - Mixes any waveform specified in an existing table.
- GEN32 - Mixes any waveform, resampled with either FFT or linear interpolation.

### Pitch and Tuning GEN Routines

- GEN51 - fills a table with a fully customized micro-tuning scale, in the manner of Csound opcodes cpstun, cpstuni and cpstmid.

### Named GEN Routines

Csound's GEN routines can be extended with GEN function plugins. There is currently a simple GEN plugin that provides exponential and hyperbolic tangent functions, and the sone function. There is also a generator called farey for the Farey sequence operations, and a Bézier curve generator. These GEN functions are not called by number, but by name.

- "tanh" - fills a table from a hyperbolic tangent formula.
- "exp" - fills a table from an exponential formula.
- "sone" - fills a table from a sone function formula.
- "farey" - fills a table from a Farey sequence.
- "quadbezier" - fills a table with a quadratic Bézier curve.
- "wave" - fills a table from a wavelet transform.
- "padsynth" - fills a table using the padsynth algorithm.

Prev | Up | Next
} Statement | Home | GEN01