tvconv — Un opcode de convolution dynamique (filtre RIF).
Un opcode prenant deux signaux en entrée et interprétant l'un deux comme les coefficients à variation temporelle linéaire d'un filtre à réponse impulsionnelle finie. Réalisé via une convolution directe (pour des tailles de partition d'un échantillon) ou par une convolution partitionnée basée sur la TFD. Les signaux peuvent être "gelés" (les coefficients du filtre sont maintenus constants) à n'importe quel moment, au taux-a ou au taux-k.
iparts -- taille de partition, pour des tailles > 1, une convolution partitionnée basée sur la TFD est utilisée. Sinon une ligne à retard à RIF est réalisée dans le domaine temporel. Les tailles de partition > 1 sont arrondies à la puissance de deux la plus proche.
ifils -- taille du filtre. Pour des tailles de partition > 1, la taille du filtre est arrondie à la puissance de deux la plus proche. Lorsque le taille de partition vaut 1, comme une convolution directe est utilisée, les filtres peuvent avoir n'importe quelle taille.
ares -- sortie audio.
asig1, asig2 -- entrées audio.
xfreez1 -- indicateur de gel de asig1. Les coefficients ne sont mis à jour (le signal passe dans la convolution) que si xfreez1 > 0. Cette entrée peut prendre un signal audio ou de taux-k, ou une constante.
xfreez2 -- indicateur de gel de asig2. Fonctionne comme xfreez1.
Voici un exemple de l'opcode tvconv. Il utilise le fichier tvconv.csd.
Exemple 1133. Exemple de l'opcode tvconv.
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 </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 asig diskin "fox.wav",1,0,1 air diskin "beats.wav",1,0,1 air buthp air/0dbfs,1000 k1 linseg 0,p3/3,0,0,1,2*p3/3,1 a1 oscili k1, 0.5, 1 a2 oscili k1, 0.6, 1 asig tvconv asig,air,1-a2,1-a1,256,1024 asig clip asig,1,0dbfs outs asig, asig endin </CsInstruments> <CsScore> f1 0 1024 7 0 512 0 1 1 511 1 i1 0 30 e </CsScore> </CsoundSynthesizer>