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 -- 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 | |
---|---|
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 pvsifd opcode. It uses the file pvsifd.csd.
Example 840. Example of the pvsifd 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 pvsifd.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ifftsize = p4 ihopsize = p5 ain diskin2 "beats.wav", 1, 0, 1 fs1,fsi2 pvsifd ain, ifftsize, ihopsize, 1 ; pvsifd analysis fst partials fs1, fsi2, .1, 1,3, 500 ; partial tracking aout resyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th) outs aout, aout endin </CsInstruments> <CsScore> ;sine f1 0 4096 10 1 ; size hop i 1 0 2 2048 512 i 1 3 2 1024 256 e </CsScore> </CsoundSynthesizer>
The example above shows the pvsifd analysis feeding into partial tracking andcubic-phase additive resynthesis with pitch shifting.