GEN07
Précédent | Instructions de partition et routines GEN | Suivant

## GEN07

GEN07 — Construit des fonctions à partir de morceaux de lignes droites.

## Description

Construit des fonctions à partir de morceaux de lignes droites.

## Syntaxe

    f  #    date    taille   7   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 instruction f).

a, b, c, etc. -- valeurs d'ordonnée, dans les p-champs de numéros impairs p5, p7, p9, . . .

n1, n2, etc. -- longueur de segment (nombre de positions en mémoire), dans les p-champs de numéros pairs. Ne peuvent pas être négatifs, mais un zéro est significatif pour spécifier des formes d'onde discontinues (comme dans l'exemple ci-dessous). La somme n1 + n2 + .... sera normallement é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.

| 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 de la routine GEN07. Il utilise le fichier gen07.csd.

Exemple 1272. Un exemple de la routine GEN07.

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

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

    instr 1	;use GEN07 to alter frequency

    ifn  = p4						;use different GEN07 tables
    kcps init 10/p3						;index ftable 10 times over the duration of entire note
    kndx phasor kcps
    ixmode = 1						;normalize index data
    kfrq tablei kndx, ifn, ixmode
    kfrq = kfrq*1000					;scale
    asig poscil .8, 1220+kfrq, 1				;add to frequency
         outs asig, asig

    endin
    </CsInstruments>
    <CsScore>
    f 1 0 8192 10 1				;sine wave
    f 2 0 1024 7 0 512 1 0 -1 512 0		;sawtooth up and down
    f 3 0 1024 7 1 512 1 0 -1 512 -1	;square
    f 4 0 1024 7 1 1024 -1 			;saw down

    i 1 0 2 2
    i 1 + 2 3
    i 1 + 1 4
    e
    </CsScore>
    </CsoundSynthesizer>

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

f 2 0 1024 7 0 512 1 0 -1 512 0 - dent de scie ascendante commençant et finissant à 0

f 3 0 1024 7 1 512 1 0 -1 512 -1 - onde carrée positive puis négative

f 4 0 1024 7 1 1024 -1 - dent de scie descendante, positive puis négative

## Voir aussi

GEN05, GEN06 et GEN08

Précédent | Niveau supérieur | Suivant
GEN06 | Sommaire | GEN08