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 file gen12.csd. 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.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in
-odac -iadc ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o gen12.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; 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
</CsInstruments>
<CsScore>
; 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
</CsScore>
</CsoundSynthesizer>