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 -- 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 761. Example of the resyn 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 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.