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

## allpole

allpole — Réalisation d'un filtre tout-pôle par convolution directe.

## Description

Cet opcode réalise un filtre tout-pôle par convolution directe.

## Syntaxe

    ares allpole asig, kCoef[]

## Exécution

kCoef[] -- coefficients du filtre tout-pôle (tableau de taille iord)

asig -- entrée audio

ares -- sortie audio

Cet opcode fait partie d'une suite d'opcodes de prédiction linéaire sur un flux. Il réalise un filtre tout-pôle en utilisant des coefficients qui lui sont passés via un tableau de taux-k. La longueur du filtre est déterminée par la taille du tableau.

The typical application is compute the coefficients via some method and then pass these to the opcode. The set of coefficients passed to allpole need to implement a stable filter, since this is an IIR filter and stability is not guaranteed by default.

La méthode la plus commune de dérivation des coefficients est l'analyse par prédiction linéaire, produite par exemple par lpcanal. D'autres méthodes peuvent être employées, y compris le calcul direct des coefficients à partir d'une recette de filtre connu (par exemple résonateurs, etc).

## Exemples

Voici un exemple de l'opcode allpole qui utilise un signal d'entrée audio comme source lpc. Il utilise le fichier allpole.csd.

Exemple 48. Exemple de l'opcode allpole.

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>
    -odac -d
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 64
    nchnls = 1
    0dbfs = 1

    gifw ftgen 0,0,1024,20,2,1

    instr 1
    a1 diskin "fox.wav",1,0,1
    kcfs[],krms,kerr,kcps lpcanal a1,1,128,1024,64,gifw
    if kcps > 180 then
      kcps = 180
    endif
    a2 buzz 0dbfs, kcps, sr/(kcps*2), -1
    a3 allpole a2*krms*kerr,kcfs
    a3 dcblock a3
    out a3
    endin

    </CsInstruments>
    <CsScore>
    i1 0 30
    </CsScore>
    </CsoundSynthesizer>

Voici un autre exemple de l'opcode allpole qui utilise une table de fonction comme source lpc. Il utilise le fichier allpole-2.csd.

Exemple 49. Un autre exemple de l'opcode allpole.

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>
    -odac -d
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 64
    nchnls = 1
    0dbfs = 1

    gifn ftgen 0,0,0,1,"fox.wav",0,0,1
    gifw ftgen 0,0,1024,20,2,1

    instr 1
    k1 init 0
    kts = p4
    kcfs[],krms,kerr,kcps lpcanal k1,1,gifn,1024,ksmps,gifw
    if kcps > 180 then
      kcps = 180
    endif
    a1 buzz 0dbfs, kcps, sr/(kcps*2), -1
    a3 allpole a1*krms*kerr,kcfs
    k1 += ksmps*kts
    if k1 > ftlen(gifn) then
     k1 = 0
    endif
    a3 dcblock a3
    out a3
    endin

    </CsInstruments>
    <CsScore>
    i1 0 10 1
    i1 10 10 .75
    i1 20 10 1.5
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

lpcfilter, lpcanal

Précédent | Niveau supérieur | Suivant
aftouch | Sommaire | alpass