resyn — Streaming partial track additive synthesis with cubic phase interpolation with pitch control and support for timescale-modified input


The resyn opcode takes an input containg a TRACKS pv streaming signal (as generated, for instance by partials). It resynthesises the signal using linear amplitude and cubic phase interpolation to drive a bank of interpolating oscillators with amplitude and pitch scaling controls. Resyn is a modified version of sinsyn, allowing for the resynthesis of data with pitch and timescale changes.


asig resyn fin, kscal, kpitch, kmaxtracks, ifn


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)


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

Example 925. Example of the resyn opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

; 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 resyn.wav -W ;;; for file output any platform

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

instr 1

ktracks = p4
ain	diskin2  "fox.wav", 1, 0, 1                  
fs1,fsi2 pvsifd  ain, 2048, 512, 1		; pvsifd analysis
fst	partials fs1, fsi2, .1, 1,3, 500	; partial tracking
aout	resyn    fst, 1, 1.5, ktracks, 1	; resynthesis (up a 5th)
	outs	 aout, aout

f1 0 4096 10 1

i 1 0 2.7 500
i 1 3 2.7 10	;non-linear filtering effect	


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

See also

Tools for Real-time Spectral Processing (pvs opcodes)


Author: Victor Lazzarini
June 2005

New plugin in version 5

November 2004.