pvstrace — Retain only the N loudest bins.


Process a PV stream by retaining only the N bins with the highest amplitude, zeroing the others.


fsig pvstrace fsigin, kn 
fsig, kBins[] pvstrace fsigin, kn[,
     isort, imin, imax] 


isort -- if nonzero, sort the reported bins in kBins by decreasing amplitude, optional (default 0, off).

imin, imax -- if nonzero, search between a min and max value (default 0, no min or max).


fsig -- output pv stream

kBins[] -- an array of size fftsize/2 + 1 values, whose first N values report the kn bin numbers retained by pvstrace. Other locations are set to 0. It can be sorted or unsorted.

fsigin -- input pv stream

kn -- number of bins to be retained

[Warning] Warning

It is unsafe to use the same f-variable for both input and output of pvs opcodes. Using the same one might lead to undefined behavior on some opcodes. Use a different one on the left and right sides of the opcode.


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

Example 874. Example of the pvstrace opcode.

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

; 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 pvstrace.wav -W ;;; for file output any platform

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

instr 1

kn = p4
asig  diskin2	"drumsMlp.wav", 1
fsig  pvsanal   asig, 1024, 256, 1024, 1; analyse it
ftps  pvstrace   fsig, kn		; keep kn bins
atps  pvsynth   ftps			; synthesise it
      outs      atps, atps

i1 0 2  5
i1 + 2  10
i1 + 2  20
i1 + 2  40
i1 + 2  80
i1 + 2  160

See also

Tools for Real-time Spectral Processing (pvs opcodes)


Author: Victor Lazzarini

New plugin in version 6.09