Skip to content

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.

Syntax

asig resyn 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 resyn opcode. It uses the file resyn.csd.

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

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

endin
</CsInstruments>
<CsScore>
;sine
f1 0 4096 10 1

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

e
</CsScore>
</CsoundSynthesizer>

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)

Credits

Author: Victor Lazzarini
June 2005

New plugin in version 5

November 2004.