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

##
GEN25, GEN27

` `**f** # time size 25 x1 y1 x2 y2 x3 . . .
**f** # time size 27 x1 y1 x2 y2 x3 . . .

####
__DESCRIPTION__

These subroutines are used to construct functions from segments of exponential
curves (**GEN25)** or straight lines (**GEN27**) in breakpoint fashion.
####
__INITIALIZATION__

*size *- number of points in the table. Must be a power of 2 or power-of-2
plus 1 ( see f statement).
*x1, x2, x3,* etc. - locations in table at which to attain the
following y value. Must be in increasing order. If the last value is less
than size, then the rest will be set to zero. Should not be negative but
can be zero.

*y1, y2, y3,*, etc. - Breakpoint values attained at the location
specified by the preceding x value. For **GEN25** these must be non-zero
and must be alike in sign. No such restrictions exist for **GEN27**.

**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.

####
__EXAMPLE:__

`f 1 0 257 27 0 0 100 1 200 -1 256 0`
This describes a function which begins at 0, rises to 1 at the 100th
table location, falls to -1, by the 200th location, and returns to 0 by
the end of the table. The interpolation is linear.

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

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