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

## GEN12

` `**f** # time size -12 xint

__DESCRIPTION__

This generates the log of a modified Bessel function of the second kind,
order 0, suitable for use in amplitude-modulated FM.

__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* - specifies the **x** interval [*0 to +int]* over
which the function is defined.

**Note:** This subroutine draws the natural log of a modified Bessel
function of the second kind, order 0 (commonly written as **I** subscript
0), over the x-interval requested. The call should have rescaling inhibited.

The function is useful as an amplitude scaling factor in cycle-synchronous
amplitude-modulated FM. (See Palamin & Palamin, *J. Audio Eng. Soc.,
36/9*, Sept. 1988, pp.671-684.) The algorithm is interesting because
it permits the normally symmetric FM spectrum to be made asymmetric around
a frequency other than the carrier, and is thereby useful for formant positioning.
By using a table lookup index of **I***(r - 1/r*), where **I**
is the FM modulation index and **r** is an exponential parameter affecting
partial strengths, the Palamin algorithm becomes relatively efficient,
requiring only oscil's, table lookups, and a single *exp* call.

__EXAMPLE:__

`f 1 0 2049 -12 20 `

This draws an unscaled *ln(I0(x))* from 0 to 20.

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

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