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

## mode

mode — Un filtre simulant un système masse-ressort-amortisseur.

## Description

Filtre le signal entrant avec la fréquence de résonance et le facteur de qualité donnés. On peut aussi le voir comme un générateur de signal pour un grand facteur de qualité, avec une impulsion pour l'excitation. On peut combiner plusieurs modes pour construire des instruments complexes tels que des cloches ou des tables d'harmonie de guitare.

## Syntaxe

    aout mode ain, xfreq, xQ [, iskip]

## Initialisation

iskip (facultatif, 0 par défaut) -- s'il est non nul, l'initialisation du filtre est ignorée.

## Exécution

aout -- signal filtré

ain -- signal à filtrer

xfreq -- fréquence de résonance du filtre

| Avertissement
Comme ce filtre devient instable si sr/xfreq < pi, la valeur de xfreq est limitée en interne à sr/pi-sr/100 > (par exemple xfreq > 13595 Hz à 44.1 kHz). Le terme sr/100 est dû au fait que le filtre, bien que mathématiquemet stable, a une très forte amplification lorsque l'on s'approche de la région instable.

xQ -- facteur de qualité du filtre

La durée de résonance est approximativement proportionnelle à xQ/xfreq.

Voir Rapports de Fréquence Modale pour des rapports de fréquence d'instruments réels que l'on peut utiliser pour déterminer les valeurs de xfreq.

## Exemples

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

Exemple 615. Exemple de l'opcode mode.

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
    ; Audio out   Audio in    No messages
    -odac           -iadc     -d     ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o moogvcf.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 2

    instr 1; 2 modes excitator

    idur init p3
    ifreq11 init p4
    ifreq12 init p5
    iQ11    init p6
    iQ12    init p7
    iamp    init ampdb(p8)
    ifreq21 init p9
    ifreq22 init p10
    iQ21    init p11
    iQ22    init p12

    ; to simulate the shock between the excitator and the resonator
    ashock  mpulse  3,0

    aexc1  mode ashock,ifreq11,iQ11
    aexc1 = aexc1*iamp
    aexc2  mode ashock,ifreq12,iQ12
    aexc2 = aexc2*iamp

    aexc = (aexc1+aexc2)/2

    ;"Contact" condition : when aexc reaches 0, the excitator looses
    ;contact with the resonator, and stops "pushing it"
    aexc limit aexc,0,3*iamp

    ; 2modes resonator

    ares1  mode aexc,ifreq21,iQ21
    ares2  mode aexc,ifreq22,iQ22

    ares = (ares1+ares2)/2

    display aexc+ares,p3
    outs  aexc+ares,aexc+ares

    endin

    </CsInstruments>
    <CsScore>

    ;wooden excitator against glass resonator
    i1 0 8  1000   3000  12  8  70  440   888   500  420

    ;felt against glass
    i1 4 8  80   188  8  3  70  440   888   500  420

    ;wood against wood
    i1 8 8  1000   3000  12  8  70  440  630   60  53

    ;felt against wood
    i1 12 8  80   180  8  3  70  440  630   60  53

    i1 16 8  1000   3000  12  8  70  440  888   2000  1630
    i1 23 8  80   180  8  3  70  440  888   2000  1630

    ;With a metallic excitator

    i1 33 8 1000  1800  1000  720  70   440   882  500  500
    i1 37 8 1000  1800  1000  850  70   440   630  60  53

    i1 42 8 1000  1800  2000  1720  70   440   442  500  500

    </CsScore>
    </CsoundSynthesizer>

## Crédits

UDO original et documentation/exemple par François Blanc

Traduction de l'opcode en code-C par Steven Yi

Nouveau dans la version 5.04

Paramètres de taux audio introduits dans la version 6.02

Novembre 2013.

Précédent | Niveau supérieur | Suivant
MixerClear | Sommaire | modmatrix