An implementation of the sines+noise model first described by Xavier Serra in his 1989 PhD thesis; an input sound is analysed in terms of sinusoidal components by a peak tracking phase vocoder. The error between the sinusoidal reconstruction and the original signal (the residual) is then modeled by a noise model of filtered white noise. The sines part and the noise part are separately resynthesised, allowing independent transformations.
For technical details see:
Xavier Serra and Julius O. Smith (1990) "Spectral Modeling Synthesis: A Sound Analysis/Synthesis System Based on a Deterministic plus Stochastic Decomposition". Computer Music Journal 14(4): 12--24
Audio rate input to be analysed
Absolute maximum number of allowed peaks to be detected in the spectrum
Current number of allowed peaks to be detected in the spectrum
Search area for matching peaks; within tolerance spectral bins
Minimum magnitude for a candidate peak (measured as spectral magnitude)
Resynthesis parameter to change frequency; currently causes a gross multiplication of frequency of all sinusoidal components
Resynthesis parameter to change frequency; currently causes a gross addition of a frequency to all sinusoidal components
Even if changing the frequencies of sinusoidal partial tracks, re-impose the original magnitude spectrum so as to keep the formants (spectral envelope preservation). 0 is off, otherwise on (there is a small performance hit).
Use IFFT based resynthesis, which is lower quality, but substantially more efficient
amplitude multiplier for internal compensation for window power loss within algorithm. Usually leave as default of 1.0.
Will fill a user provided buffer with sines + noise data; the buffer must be size 1 + 513 + 5*(maxsines). The first entry will be the number of sines active for that polled frame. Default for this argument is -1, meaning do not write any status data. See the example with live plotting at the base of this help file.