sinsyn — Streaming partial track additive synthesis with cubic phase interpolation


The sinsyn opcode takes an input containg a TRACKS pv streaming signal (as generated, for instance by the partials opcode). It sinsynthesises the signal using linear amplitude and cubic phase interpolation to drive a bank of interpolating oscillators with amplitude and pitch scaling controls. Sinsyn attempts to preserve the phase of the partials in the original signal and in so doing it does not allow for pitch or timescale modifications of the signal.


asig sinsyn fin, kscal,  kmaxtracks, ifn


asig -- output audio rate signal

fin -- input pv stream in TRACKS format

kscal -- amplitude scaling

kmaxtracks -- max number of tracks in sinsynthesis. 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)


Example 429. Example

ain inch 1                  ; input signal
fs1,fsi2 pvsifd ain,2048,512,1 ; ifd analysis
fst  partials fs1,fsi2,.003,1,3,500  ; partial tracking
      aout  sinsyn fst, 1, 1.5, 500, 1 ; resynthesis (up a 5th)
out aout

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


Author: Victor Lazzarini;
June 2005

New plugin in version 5

November 2004.