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.
- 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.
- 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.
- GEN43 - Loads a PVOCEX file containing a PV analysis.
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. 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.
- "wave"
- fills a table from a wavelet transform.
- "padsynth"
- fills a table using the padsynth algorithm.