[Clam-devel] residual spectrum line segment approximation?

roumbaba roumbaba at gmail.com
Tue May 27 11:01:58 PDT 2008


Hi all,

I am trying to understand how the residual spectrum gets modeled in  
clam/SMS. I have read the Serra/Smith 1990 CMJ paper and as I  
understand it  it describes two steps:
1- substract the harmonic spectrum from the original spectrum
2- perform a line-segment approximation of the residual spectrum  
obtained in 1

I have stepped through clam and SMS code and I think I can see where  
step 1 gets performed:

SMSAnalysisCore::Do()
{

mSinSpectralAnalysis.Do();
mResSpectralAnalysis.Do();
...
...
...
mSynthSineSpectrum.Do();
mSpecSubstracter.Do(); /* step 1 gets performed here I think*/

}


but I cannot find where step 2 (line approximation) gets performed.  
Where should I look in the code?

Thank you very much,
Cheers,

Roumbaba

ps:

Here is a quote from the paper I mentionned above:

"Approximation of the Spectral Residual

Assuming the the residual signal is quasi-stochastic, each magnitude- 
spectrum residual can be approximated by its envelope since only its  
shape contributes to the sound characteristics. [...] The particular  
line-segment approximation performed here is done by stepping through  
the magnitude spectrum and finding local maxima in every section, ..."





More information about the clam-devel mailing list