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

## GEN04

GEN04 — Génère une fonction de normalisation.

## Description

Ce sous-programme génère une fonction de normalisation en examinant le contenu d'une table existante.

## Syntaxe

    f  #  temps  taille  4  source#  modesource

## Initialisation

taille -- nombre de points dans la table. Une puissance-de-2 plus 1. Ne doit pas dépasser (sauf de 1) la taille de la table source examinée ; limitée à exactement la moitié de cette taille si modesource est de type décalage (voir ci-dessous).

source # -- numéro de table de la fonction stockée à examiner.

modesource -- une valeur codée, spécifiant comment la table source doit être parcourue pour obtenir la fonction de normalisation. Zéro indique que la source doit être parcourue de gauche à droite. Une valeur non nulle indique que la source a une structure bipolaire ; la lecture commencera au point médian et progressera vers les extrémités, par paires de points équidistants du centre.

| Note
La fonction de normalisation dérive de la progression des maxima absolus de la table source parcourue. La nouvelle table est créée de gauche à droite, en stockant des valeurs égales à 1/(maximum absolu lu jusque là). Les valeurs stockées commenceront ainsi par 1/(première valeur lue), et deviendront progressivement plus petites lorsque de nouveaux maxima seront rencontrés. Pour une table source normalisée (valeurs <= 1), les valeurs dérivées descendront de 1/(première valeur lue) jusqu'à 1. Si la première valeur lue est zéro, son inverse sera fixé à 1. la fonction de normalisation générée par GEN04 n'est pas elle-même normalisée. GEN04 est utile pour modifier l'échelle d'un signal dérivé d'une table afin qu'il ait une amplitude de crête consistante. On l'utilise particulièrement en waveshaping quand la porteuse (ou fonction d'indexation) a une amplitude inférieure à la moitié de l'échelle complète.

## Exemples

Voici un exemple de la routine GEN04. Il utilise le fichier gen04.csd.

Exemple 1131. Un exemple de la routine GEN04.

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

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

    gisine   ftgen 0, 0, 16384, 10, 1						;sine wave

    instr   1

    ihertz = cpspch(p4)
    ipkamp = p5
    iwsfn  = p6									;waveshaping function
    inmfn  = p7									;normalization function
    agate   linen   1, .01, p3, .1            					;overall amp envelope
    kctrl   linen  	.9, 2, p3, 2							;waveshaping index control
    aindex  poscil  kctrl/2, ihertz, gisine						;sine wave to be distorted
    asignal tablei  .5+aindex, iwsfn, 1						;waveshaping
    knormal tablei  1/kctrl, inmfn , 1						;amplitude normalization
            outs    asignal*knormal*ipkamp*agate, asignal*knormal*ipkamp*agate

    endin
    </CsInstruments>
    <CsScore>
    f1 0 64 21 6	;Gaussian (random) distribution
    f2 0 33 4 1 1	;normalizing function with midpoint bipolar offset

    s
    ;	st	dur	pch	amp   wsfn inmfn
    i1      0       4      6.00    .7      1     2
    i1      4       .      7.00    .
    i1      8       .      8.00    .
    ;-------------------------------------------------------------------------------------
    f3 0 1025 13 1 1 0 5 0 5 0 10	;Chebyshev algorithm
    f4 0 513 4 3 1			;normalizing function with midpoint bipolar offset
    s
    ;	st	dur	pch	amp   wsfn inmfn
    i1      0       4      6.00    .9      3     4
    i1      4       .      7.00    .
    i1      8       .      8.00    .
    e
    </CsScore>
    </CsoundSynthesizer>

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

f1 0 64 21 6 - distribution (aléatoire) gaussienne

f2 0 33 4 1 1 - et sa fonction de normalisation avec décalage bipolaire du point central

f3 0 1025 13 1 1 0 5 0 5 0 10 - algorithme de Tchebychev

f4 0 513 4 3 1 - et sa fonction de normalisation avec décalage bipolaire du point central

Précédent | Niveau supérieur | Suivant
GEN03 | Sommaire | GEN05