tradsyn

tradsyn — Streaming partial track additive synthesis

Description

The tradsyn opcode takes an input containg a TRACKS pv streaming signal (as generated, for instance by partials),as described in Lazzarini et al, "Time-stretching using the Instantaneous Frequency Distribution and Partial Tracking", Proc.of ICMC05, Barcelona. It resynthesises the signal using linear amplitude and frequency interpolation to drive a bank of interpolating oscillators with amplitude and pitch scaling controls.

Syntax

asig tradsyn fin, kscal, kpitch, kmaxtracks, ifn

Performance

asig -- output audio rate signal

fin -- input pv stream in TRACKS format

kscal -- amplitude scaling

kpitch -- pitch scaling

kmaxtracks -- max number of tracks in resynthesis. Limiting this will cause a non-linear filtering effect, by discarding newer and higher-frequency tracks (tracks are ordered by start time and ascending frequency, respectively)

ifn -- function table containing one cycle of a sinusoid (sine or cosine).

Examples

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

Example 1101. Example of the tradsyn 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 tradsyn.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1

ipch = p4
ain  diskin2 "beats.wav", 1
fs1,fsi2 pvsifd ain,2048,512,1		; ifd analysis
fst  partials fs1,fsi2,.003,1,3,500	; partial tracking
aout tradsyn fst, 1, ipch, 500, 1	; resynthesis
     outs aout, aout

endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1

i 1 0 2 1.5	;up a 5th
i 1 + 2  .5	;octave down
e
</CsScore>
</CsoundSynthesizer>


The example above shows partial tracking of an ifd-analysis signal and linear additive resynthesis with pitch shifting.

Credits

Author: Victor Lazzarini
June 2005

New plugin in version 5

November 2004.