tabifd — Instantaneous Frequency Distribution, magnitude and phase analysis.
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.
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
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)
Here is an example of the tabifd opcode. It uses the file tabifd.csd.
Example 896. 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.