trfilter
Prev | Orchestra Opcodes and Operators | Next

## trfilter

trfilter — Streaming partial track filtering.

## Description

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.

## Syntax

    fsig trfilter fin, kamnt, ifn

## Performance

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.

## Examples

Here is an example of the trfilter opcode. It uses the file trfilter.csd.

Example 1121. Example of the trfilter opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    <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 "drumsMlp.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>

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

## See also

Tools for Real-time Spectral Processing (pvs opcodes)

## Credits

Author: Victor Lazzarini;
February 2006

New in Csound 5.01

Prev | Up | Next
trcross | Home | trhighest