pvsftr
Prev | Orchestra Opcodes and Operators | Next

## pvsftr

pvsftr — Reads amplitude and/or frequency data from function tables.

## Description

Reads amplitude and/or frequency data from function tables.

## Syntax

    pvsftr fsrc, ifna [, ifnf]

## Initialization

ifna -- A table, at least inbins in size, that stores amplitude data. Ignored if ifna = 0

ifnf (optional) -- A table, at least inbins in size, that stores frequency data. Ignored if ifnf = 0

## Performance

fsrc -- a PVOC-EX formatted source.

Enables the contents of fsrc to be exchanged with function tables for custom processing. Except when the frame overlap equals ksmps (which will generally not be the case), the frame data is not updated each control period. The data in ifna, ifnf should only be processed when kflag is set to 1. To process only frequency data, set ifna to zero.

As the function tables are required only to store data from fsrc, there is no advantage in defining then in the score, and they should generally be created in the instrument, using ftgen.

By exporting amplitude data, say, from one fsig and importing it into another, basic cross-synthesis (as in pvscross) can be performed, with the option to modify the data beforehand using the table manipulation opodes.

Note that the format data in the source fsig is not written to the tables. This therefore offers a means of transferring amplitude and frequency data between non-identical fsigs. Used this way, these opcodes become potentially pathological, and can be relied upon to produce unexpected results. In such cases, resynthesis using pvsadsyn would almost certainly be required.

To perform a straight copy from one fsig to another one of identical format, the conventional assignment syntax can be used:

fsig1 = fsig2

It is not necessary to use function tables in this case.

## Examples

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

Example 831. Example of the pvsftr 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 pvsftr.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    gifil ftgen 0, 0, 0, -1, "fox.wav", 0, 0, 1

    instr 1

    ifftsize = 1024				;fft size
    ioverlap = 256				;overlap
    knewamp  = 0				;new value for amplitudes

    ;create fsig stream from function table
    fsrc	pvstanal 1, 1, 1, gifil, 0, 0, 0, ifftsize, ioverlap, 0
    ifn	ftgen	0, 0, ifftsize/2, 2, 0	;create empty function table
    kflag	pvsftw	fsrc,ifn		;export amps to table
    ;overwrite the first 10 bins each time the table has been filled new
    if kflag == 1 then
    kndx = 0
    kmaxbin = p4
    loop:
    tablew knewamp, kndx, ifn
    loop_le kndx, 1, kmaxbin, loop
    endif
    	pvsftr	fsrc,ifn		;read modified data back to fsrc
    aout	pvsynth	fsrc			;and resynth
    	outs	aout, aout

    endin
    </CsInstruments>
    <CsScore>
    ;           maxbins
    i 1 0 4       10
    i 1 4 4       100
    e
    </CsScore>
    </CsoundSynthesizer>

## See Also

pvsftw

## Credits

Author: Richard Dobson
August 2001

New in version 4.13

Prev | Up | Next
pvsfromarray | Home | pvsftw