pvsifd — Instantaneous Frequency Distribution, magnitude and phase analysis.


The pvsifd opcode takes an input a-rate signal and performs an Instantaneous Frequency, magnitude and phase analysis, using the STFT and pvsifd (Instantaneous Frequency Distribution), as described in Lazzarini et al, "Time-stretching using the Instantaneous Frequency Distribution and Partial Tracking", Proc.of ICMC05, Barcelona. It generates two PV streaming signals, one containing the amplitudes and frequencies (a similar output to pvsanal) and another containing amplitudes and unwrapped phases.


ffr,fphs pvsifd ain, ifftsize, ihopsize, iwintype[,iscal]


ffr -- output pv stream in AMP_FREQ format

fphs -- output pv stream in AMP_PHASE format

ifftsize -- FFT analysis size, must be power-of-two and integer multiple of the hopsize.

ihopsize -- hopsize in samples

iwintype -- window type (O: Hamming, 1: Hanning)

iscal -- amplitude scaling (defaults to 1).

[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.


Example 361. Example

ain inch 1                  ; input signal
fs1,fsi2 pvsifd ain,2048,512,1 ; pvsifd analysis
fst  partials fs1,fsi2,.003,1,3,500  ; partial tracking
      aout  resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
out aout

The example above shows the pvsifd analysis feeding into partial tracking and cubic-phase additive resynthesis with pitch shifting.


Author: Victor Lazzarini;
June 2005

New plugin in version 5

November 2004.