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

## GEN17

` `**f** # time size 17 x1 a x2 b x3 c . . .

__DESCRIPTION__

This subroutine creates a step function from given x-y pairs.

__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 normal value is power-of-2 plus 1.

*x1, x2, x3,* etc. - x-ordinate values, in ascending order, 0 first.

*a, b, c,* etc. - y-values at those x-ordinates, held until the
next x-ordinate.

This subroutine creates a step function of x-y pairs whose y-values
are held to the right. The right-most y-value is then held to the end of
the table. The function is useful for mapping one set of data values onto
another, such as MIDI note numbers onto sampled sound ftable numbers (
see loscil).

__EXAMPLE:__

` f 1 0 128 -17 0 1 12 2 24 3 36 4 48 5 60 6 72 7 84 8 `

This describes a step function with 8 successively increasing levels,
each 12 locations wide except the last which extends its value to the end
of the table. Rescaling is inhibited. Indexing into this table with a MIDI
note-number would retrieve a different value every octave up to the eighth,
above which the value returned would remain the same.

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

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