**GEN** Routines: Numeric Value Access

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

### Note

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.

**GEN** Routines: Numeric Value Access