**GEN** Routines: Waveshaping

## GEN15

**f** # time size 15 xint xamp h0 phs0 h1 phs1 h2 phs2 . . .

### Description

This subroutine creates two tables of stored polynomial functions, suitable for use in phase quadrature operations.

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

*xint* – provides the left and right values [*-xint*, *+xint*] of the *x* interval over which the polynomial is to be drawn. This subroutine will eventually call **GEN03** to draw both functions; this p5 value is therefor expanded to a negative-positive p5, p6 pair before **GEN03** is actually called. The normal value is 1.

*xamp * – amplitude scaling factor of the sinusoid input that is expected to produce the following spectrum.

*h0, h1, h2, ... hn* – relative strength of partials 0 (DC), 1 (fundamental), 2 ... that will result when a sinusoid of amplitude

xamp * int(size/2)/xint

is waveshaped using this function table. These values thus describe a frequency spectrum associated with a particular factor *xamp* of the input signal.
*phs0, phs1, ... * – phase in degrees of desired harmonics *h0, h1, ...* when the two functions of **GEN15** are used with phase quadrature.

### Note

**GEN15** creates two tables of equal size, labeled **f **# and **f** # + 1. Table # will contain a Chebyshev function of the first kind, drawn using **GEN03** with partial strengths *h0cos(phs0), h1cos(phs1), ...* Table #+1 will contain a Chebyshev function of the 2nd kind by calling **GEN14** with partials *h1sin(phs1), h2sin(phs2),...* (note the harmonic displacement). The two tables can be used in conjunction in a waveshaping network that exploits phase quadrature.

**GEN** Routines: Waveshaping