trfilter — Filtrage d'un flot de suivi de partiels.
L'opcode trfilter prend en entrée un flot de signal TRACKS pv (tel que généré, par exemple, par partials) et le filtre en utilisant la courbe de réponse des amplitudes stockée dans une table de fonction. La table de fonction peut avoir n'importe quelle taille (aucune restriction aux puissances de deux). La table est consultée avec interpolation linéaire. Il est possible de créer des courbes de filtrage variant dans le temps en mettant à jour la table de la réponse des amplitudes avec un opcode d'écriture de table.
fsig -- flot pv de sortie au format TRACKS.
fin -- flot pv d'entrée au format TRACKS.
kamnt -- importance du filtrage (entre 0 et 1)
ifn -- numéro de la table de fonction. Celle-ci contient une courbe de réponse des amplitudes, de 0 Hz à la fréquence de Nyquist (table indéxée entre 0 et N). Toutes les tailles sont permises. Plus la table est grande et plus la courbe de réponse est lisse. La consultation de la table se fait avec interpolation linéaire.
Voici un exemple de l'opcode trfilter. Il utilise le fichier trfilter.csd.
Exemple 1114. Exemple de l'opcode trfilter.
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 ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o trfilter.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 gifn ftgen 2, 0, -22050, 5, 1, 1000, 1, 4000, 0.000001, 17050, 0.000001 ; low-pass filter curve of 22050 points instr 1 kam line 1, p3, p4 ain diskin2 "beats.wav", 1, 0, 1 fs1,fsi2 pvsifd ain, 2048, 512, 1 ; ifd analysis fst partials fs1, fsi2, .003, 1, 3, 500 ; partial tracking fscl trfilter fst, kam, gifn ; filtering using function table 2 aout tradsyn fscl, 1, 1, 500, 1 ; resynthesis outs aout, aout endin </CsInstruments> <CsScore> f1 0 8192 10 1 i 1 0 4 1 i 1 5 4 0 ;reduce filter effect e </CsScore> </CsoundSynthesizer>
L'exemple ci-dessus montre le suivi de partiels d'un signal d'analyse par distribution de fréquence instantanée et la resynthèse additive linéaire avec filtrage passe-bas.