tabifd

tabifd — Instantaneous Frequency Distribution, magnitude and phase analysis.

Description

The tabifd opcode takes an input function table and performs an Instantaneous Frequency, magnitude and phase analysis, using the STFT and tabifd (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.

Syntax

ffr,fphs tabifd ktimpt, kamp, kpitch, ifftsize, ihopsize, iwintype,ifn

Initialization

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)

ifn -- source function table

Performance

ffr -- output pv stream in AMP_FREQ format

fphs -- output pv stream in AMP_PHASE format

ktimpt -- time point (in secs) to read from table (if less than 0 or bigger than table length, it will wraparound)

kamp -- amplitude scaling

kpitch -- pitch scaling (transposition)

Examples

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

Example 970. Example of the tabifd 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 tabifd.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
sr=44100
ksmps=1
nchnls=1
opcode TrackPlay, a, kkiiii
 ktime,kthr,isiz,ihsiz,ifcos,ifn  xin 
 idel = isiz-ihsiz*(isiz/(2*ihsiz)-1)
 ffr,fphs tabifd ktime,10000,1, isiz, ihsiz, 1, ifn
 ftrk partials ffr, fphs,kthr, 1, 1, 500
 aout tradsyn   ftrk, 2,1, 500, ifcos 
 xout aout
endop
instr 1
p3 = ftlen(2)/sr
ktime line 0,p3,p3
ares TrackPlay ktime, 0.003,2048,256,1,2
     outs ares
endin

</CsInstruments>
<CsScore>
f1 0 16384 9 1 1 90
f2 0 0 1 "fox.wav" 0 0 1
i1	0 1 
</CsScore>
</CsoundSynthesizer>


The example above shows the tabifd analysis feeding into partial tracking andcubic-phase additive resynthesis with pitch shifting.

Credits

Author: Victor Lazzarini
Aug 2015

New plugin in version 6

Aug 2015