GEN05
Prev | Instructions de partition et routines GEN | Next

## GEN05

GEN05 — Construit des fonctions à partir de morceaux de courbes exponentielles.

## Description

Construit des fonctions à partir de morceaux de courbes exponentielles.

## Syntaxe

    f # date taille 5 a n1 b n2 c ...

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

a, b, c, etc. -- valeurs d'ordonnée, dans les p-champs de numéros impairs p5, p7, p9, . . . Elle doivent être non nulles et de même signe.

n1, n2, etc. -- longueurs des morceaux (nombre de positions mémorisées), dans les p-champs de numéros pairs. Ne peuvent pas être négatives, mais un zéro est significatif pour spécifier des formes d'onde discontinues. La somme n1 + n2 + .... sera normalement égale à taille pour les fonctions complètement spécifiées. Si la somme est inférieure, les positions de la fonction non comprises seront mises à zéro ; si la somme est supérieure, seules les premières taille positions seront stockées. Noter que les valeurs sont arrondies en nombres entiers avant leur utilisation.

| Note
Si p4 est positif, les fonctions sont post-normalisées (reproportionnées avec une valeur absolue maximale de 1 après génération). Une valeur de p4 négative empêche cette opération. Une interpolation linéaire sur des points discrets implique une augmentation ou une diminution le long d'un segment par des sauts égaux entre des positions adjacentes ; une interpolation exponentielle implique une progression par rapports égaux. Dans les deux formes l'interpolation de a à b suppose que la valeur b sera atteinte à la (n + 1)ème position. Pour les fonctions discontinues, et pour les segments dépassant la dernière position, cette valeur ne sera pas atteinte, bien qu'elle puisse éventuellement apparaître comme résultat d'une mise à l'échelle finale.

## Exemples

Voici un exemple simple de la routine GEN05. Il utilise le fichier gen05.csd.

Example 1099. Un exemple de la routine GEN05.

    <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 gen05.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    ifn = p4					;choose different tables for GEN05
    kcps init 1/p3					;index over the length of  entire note
    kndx phasor kcps
    ixmode = 1					;normalize index data
    kamp tablei kndx, ifn, ixmode
    asig poscil kamp, 440, 1
         outs asig, asig

    endin
    </CsInstruments>
    <CsScore>
    f 1 0 8192 10 1	;sine wave
    f 2 0 129 5    1   100 0.0001 29 		;short attack
    f 3 0 129 5 0.00001 87    1   22 .5 20 0.0001 	;long attack

    i 1 0 2 2
    i 1 3 2 3

    e
    </CsScore>
    </CsoundSynthesizer>

Voici les diagrammes des formes d'onde des routines GEN05 utilisées dans l'exemple :

f 2 0 129 5 1 100 0.0001 29 - forme d'onde allant de 1 à 0.0001 sur 100 points, puis restant sur cette valeur pendant 29 points

f 3 0 129 5 0.00001 87 1 22 .5 20 0.0001 - forme d'onde allant de 0.00001 à 1 sur 87 points, puis de 1 à 0.5 sur 22 points et enfin de 0.5 to 0.0001 sur 20 points

## Voir aussi

GEN06, GEN07 et GEN08

Prev | Up | Next
GEN04 | Home | GEN06