trfilter — Streaming partial track filtering.


The trfilter opcode takes an input containg a TRACKS pv streaming signal (as generated, for instance by partials) and filters it using an amplitude response curve stored in a function table. The function table can have any size (no restriction to powers-of-two). The table lookup is done by linear-interpolation. It is possible to create time-varying filter curves by updating the amlitude response table with a table-writing opcode.


fsig trfilter fin, kamnt, ifn


fsig -- output pv stream in TRACKS format

fin -- input pv stream in TRACKS format

kamnt -- amount of filtering (0-1)

ifn -- function table number. This will contain an amplitude response curve, from 0 Hz to the Nyquist (table indexes 0 to N). Any size is allowed. Larger tables will provide a smoother amplitude response curve. Table reading uses linear interpolation.


Example 465. Example

gifn ftgen 2, 0, -22050, 5 1 1000 1 4000 0.000001 17050 0.000001 ; low-pass filter curve of 22050 points	
instr 1
ain inch 1                  ; input signal
fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
fst  partials fs1,fsi2,.003,1,3,500  ; partial tracking
fscl trfilter  fst, 1, gifn ; filtering using function table 2
      aout  tradsyn fscl, 1, 1, 500, 1 ; resynthesis 
out aout

The example above shows partial tracking of an ifd-analysis signal and linear additive resynthesis with low-pass filtering.


Author: Victor Lazzarini;
February 2006

New in Csound5.01