denorm
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## denorm

denorm — Ajoute du bruit de bas niveau à une liste de signaux de taux-a.

## Description

Ajoute du bruit de bas niveau (~1e-20 pour les flottants et ~1e-56 pour les doubles) à une liste de signaux de taux-a. On peut l'utiliser avant les filtres RII et les réverbérations pour éviter les nombres dénormalisés qui peuvent sinon produire un accroissement significatif de l'utilisation des ressources CPU.

## Syntaxe

    denorm a1[, a2[, a3[, ... ]]]

## Exécution

a1[, a2[, a3[, ... ]]] -- signaux auquels on ajoute du bruit.

Certaines architectures de processeur (particulièrement les Pentium IV) sont très lentes pour traiter les très petits nombres. Ces petits nombres peuvent résulter de certains traitements à rétroaction décroissante comme la réverbération et les filtres RII. On peut ajouter du bruit de faible niveau afin que les nombres très petits ne soient jamais atteints et soient "absorbés" par le "fond bruiteux".

Si l'utilisation du CPU atteint les 100% en queue de réverbération ou si l'on obtient des discontinuités audio dans un traitement qui ne devrait pas beaucoup utiliser le CPU, l'utilisation de denorm avant l'opcode ou le traitement fautif peut résoudre le problème.

## Exemples

Voici un exemple de l'opcode denorm. Il utilise le fichier denorm.csd.

Exemple 228. Exemple de l'opcode denorm.

Voir les sections Audio en Temps Réel et Options de la 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     ;;;RT audio out
    ;-iadc    ;;;uncomment -iadc if RT audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o denorm.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>
    ; slightly simplified example from Istvan Varga 2006
    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs = 1

    garvb init 0

    instr 1

    a1  oscils 0.6, 440, 0
    a2  linsegr 0, 0.005, 1, 3600, 1, 0.08, 0
    a1  =  a1 * a2
        vincr garvb, a1
        outs a1, a1
    endin

    instr 99	;"Always on"

           denorm garvb
    aL, aR reverbsc garvb * 0.5, garvb * 0.5, 0.92, 10000
           clear garvb
           outs aL, aR
    endin

    </CsInstruments>
    <CsScore>

    i 99 0 -1	;held by a negative p3, means "always on"
    i 1 0 0.5
    i 1 4 0.5
    e 8		;8 extra seconds after the performance

    </CsScore>
    </CsoundSynthesizer>

## Crédits

Auteur : Istvan Varga
2005

Précédent | Niveau supérieur | Suivant
deltapxw | Sommaire | diff