**QUICK-REF** - **CsoundManual**
- **Top of this section** - Previous
- Contents - Index
- Next

## GEN05, GEN07

` `**f** # time size 5 a n1 b n2 c . . .
**f** # time size 7 a n1 b n2 c . . .

__DESCRIPTION__

These subroutines are used to construct functions from segments of exponential
curves (**GEN05)** or straight lines (**GEN07**).

__INITIALIZATION__

*size *- number of points in the table. Must be a power of 2 or
power-of-2 plus 1 ( see f statement).

*a, b, c,* etc. - ordinate values, in odd-numbered pfields p5,
p7, p9, . . . For **GEN05** these must be nonzero and must be alike
in sign. No such restrictions exist for **GEN07**.

*n1, n2*, etc. - length of segment (no. of storage locations),
in even-numbered pfields. Cannot be negative, but a zero is meaningful
for specifying discontinuous waveforms (e.g. in the example below). The
sum n1 + n2 + .... will normally equal *size* for fully specified
functions. If the sum is smaller, the function locations not included will
be set to zero; if the sum is greater, only the first *size* locations
will be stored.

**Note:**

If p4 is positive, functions are post-normalized (rescaled to a maximum
absolute value of 1 after generation). A negative p4 will cause rescaling
to be skipped.

Discrete-point linear interpolation implies an increase or decrease
along a segment by equal differences between adjacent locations; exponential
interpolation implies that the progression is by equal ratio. In both forms
the interpolation from *a* to *b* is such as to assume that the
value *b* will be attained in the n + 1th location. For discontinuous
functions, and for the segment encompassing the end location, this value
will not actually be reached, although it may eventually appear as a result
of final scaling.

__EXAMPLE:__

`f 1 0 256 7 0 128 1 0 -1 128 0 `

This describes a single-cycle sawtooth whose discontinuity is mid-way
in the stored function.

**QUICK-REF** - **CsoundManual**
- **Top of this section** - Previous
- Contents - Index
- Next

*HTML Csound Manual - ©
Jean Piché & Peter J. Nix, 1994-97*