This generates the log of a modified Bessel function of the second kind, order 0, suitable for use in amplitude-modulated FM.
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 +xint] over which the function is defined.
![]() |
Note |
---|---|
|
Here is a simple example of the GEN12 routine. It uses the files gen12.orc and gen12.sco. It generates the function ln(I0(x)) from 0 to 20. Here is its diagram:
Diagram of the waveform generated by GEN12.
Example 14. A simple example of the GEN12 routine.
/* gen12.orc */ ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ; Create an index over the length of our entire note. kcps init 1/p3 kndx phasor kcps ; Read Table #1 with our index. ifn = 1 ixmode = 1 kamp tablei kndx, ifn, ixmode ; Create a sine wave, use the Table #1 values to control ; the amplitude. This creates a sound with a long attack. a1 oscil kamp*30000, 440, 2 out a1 endin /* gen12.orc */
/* gen12.sco */ ; Table #1: a modified Bessel function (using GEN12). f 1 0 2049 12 20 ; Table #2, a sine wave. f 2 0 16384 10 1 ; Play Instrument #1 for 2 seconds. i 1 0 2 e /* gen12.sco */