GEN12
Prev | Instructions de partition et routines GEN | Next

## GEN12

GEN12 — Génère le logarithme d'une fonction de Bessel de seconde espèce modifiée.

## Description

Génère le logarithme d'une fonction de Bessel de seconde espèce modifiée, d'ordre 0, adaptée pour la MF modulée en amplitude.

## Syntaxe

    f # date taille 12 intx

## Initialisation

taille -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1 (voir l'instruction f).

intx -- spécifie l'intervalle des x [0 à +intx] sur lequel la fonction est définie.

| Note
Ce sous-programme calcule le logarithme naturel d'une fonction de Bessel de seconde espèce modifiée, d'ordre 0 (habituellement écrite comme I0), sur l'intervalle des x demandé. Cet appel devrait désactiver la normalisation. Cette fonction est utile comme facteur d'échelle d'amplitude dans la MF à période synchrone modulée en amplitude. (Voir Palamin & Palamin, J. Audio Eng. Soc., 36/9, Sept. 1988, pp.671-684.) L'algorithme est intéressant car il permet de rendre le spectre de MF, habituellement symétrique, assymétrique autour d'une fréquence autre que la porteuse, et il est ainsi utile pour placer des formants. En utilisant un index de lecture dans la table de I(r - 1/r), où I est l'index de modulation et r est un paramètre exponentiel affectant l'importance des partiels, l'algorithme Palamin se montre relativement efficace, ne demandant que des oscil, des lecture de table, et un appel d'exp.

## Exemples

Voici un exemple de la routine GEN12. Il utilise le fichier gen12.csd.

Example 1107. Un exemple de la routine GEN12.

Voir les sections Audio en Temps Réel et Options de Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac  ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o gen12.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>
    ;example from the Csound Book, page 87
    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    idur    =       p3
    iamp    =       p4
    icarfrq =       p5
    imodfrq =       p6
    aenv    expseg  .01, idur*.1, iamp, idur*.8, iamp*.75, idur*.1, .01
    i1      =       p7*imodfrq			;p7=modulation index start
    i2      =       p8*imodfrq			;p8=modulation index end
    adev    line    i1, idur, i2			;modulation frequency
    aindex  line    p7, idur, p8			;modulation index

    ar      linseg  1, .1, p9, p3-.2, p10, .1, 1	; r value envelope: p9-p10 =exp. partial strength parameter start and end
    amp1    =       (aindex*(ar+(1/ar)))/2
    afmod   oscili  amp1, imodfrq, 1		;FM modulator (sine)
    atab    =       (aindex*(ar-(1/ar)))/2		;index to table
    alook   tablei  atab, 37			;table lookup to GEN12
    aamod   oscili  atab, adev, 2			;am modulator (cosine)
    aamod   =       (exp(alook+aamod))*aenv
    acar    oscili  aamod, afmod+icarfrq, 1		;AFM (carrier)
    asig    balance acar, aenv
            outs    asig, asig

    endin

    </CsInstruments>
    <CsScore>
    f 1     0   8192    10  1
    f 2     0   8192    9   1 1 90
    f37 0   1024    -12 40		;Bessel function-defined from 0 to 40

    i 1  0  2  .2  800  800    1    6   .1   2
    i 1  +  .  .   1900 147    8    1    4   .2
    i 1  .  .  .   1100 380    2    9   .5   2
    i 1  .  10 .   100  100    11   3   .2   5
    s
    i 1  0  1 .1   200 100     1    6   .1   2
    i 1  +  .  <   <    <      <    <   <    <
    i 1  +  .  .   <    <      <    <   <    <
    i 1  +  .  .   <    <      <    <   <    <
    i 1  +  .  .   <    <      <    <   <    <
    i 1  +  .  .   <    <      <    <   <    <
    i 1  +  .  .   <    <      <    <   <    <
    i 1  +  10 .2  800  800    9    1   .9   6
    s
    i 1  0  11 .25 50   51     1    6   .1   2
    i 1  1  9  .05 700  401    1    6   .1   2
    i 1  2  8  .   900  147    8    1    4   .2
    i 1  3  7  .   1100 381    2    9   .5   2
    i 1  4  6  .   200  102    11   3   .2   5
    i 1  5  6  .   800  803    9    1   .9   6
    e
    </CsScore>
    </CsoundSynthesizer>

Voici le diagramme de la forme d'onde de la routine GEN12 utilisée dans l'exemple :

f 37 0 1024 -12 40 - fonction de Bessel définie de 0 à 40

## Crédits

L'exemple provient du Csound Book (p. 87) avec de légères modifications.

Prev | Up | Next
GEN11 | Home | GEN13