Sorry, late to the party and unable to read the backlog, but:

The "FFT^-1" technique that Robert mentions is from a paper by Rodet and Depalle that I can't find right now. It's widely cited in the literature as "FFT^-1"

That paper only deals with steady-state sinusoids however. It won't accurately deal with transients or glides.

There has been more recent work on spectral-domain synthesis and I'm fairly sure that some techniques have found their way into some quite famous commercial products.

Bonada, J.; Loscos, A.; Cano, P.; Serra, X.; Kenmochi, H. (2001). "Spectral Approach to the Modeling of the Singing Voice". In Proc. of the 111th AES Convention.

> My goal is to resynthesize arbitary noises.

In that case you need to think about how an FFT represents "arbitrary noises".

One approach is to split the signal into sinusoids + noise (a.k.a. spectral modeling synthesis).

It is worth reviewing Xavier Serra's PhD thesis for the basics (what was already established in the late 1980s.)


Here's the PDF:

There was a bunch of in the early 90's on real-time additive synthesis at CNMAT, e.g.


Of course there is a ton of more recent work. You could do worse than looking at the papers of Xavier Serra and Jordi Bonada:

On 31/10/2018 1:35 PM, gm wrote:
But back to my question, I am serious, could you compress a spectrum by just adding the bins that fall together?

I'm not sure what "compress" means in this context, nor am I sure what "fall together" means. But here's some points to note:

A steady state sine wave in the time domain will be transformed by a short-time fourier transform into a spectral peak, convolved (in the frequency domain) by the spectrum of the analysis envelope. If you know that all of your inputs are sine waves, then you can perform "spectral peak picking" (AKA MQ analysis) and reduce your signal to a list of sine waves and their frequencies and phases -- this is the sinusoidal component of Serra's SMS (explained in the pdf linked above).

Note that since a sinusoid ends up placing non-zero values in every FFT bin, you'd need to account for that in your spectral estimation, which basic MQ does not -- hence it does not perfectly estimate the sinusoids.

In any case, most signals are not sums of stationary sinusoids. And since signals are typically buried in noise, or superimposed on top of each other, so the problem is not well posed. For two very simple examples: consider two stable sine waves at 440Hz and 441Hz -- you will need a very long FFT to distinguish this from a single amplitude-modulated sine wave? or consider a sine wave plus white noise -- the accuracy of frequency and phase recovery will depend on how much input you have to work with.

I think by "compression" you mean "represent sparsely" (i.e. with some reduced representation.) The spectral modeling approach is to "model" the signal by assuming it has some particular structure (e.g. sinusoids+noise, or sinusoids+transients+noise) and then work out how to extract this structure from the signal (or to reassemble it for synthesis).

An alternative (more mathematical) approach is to simply assume that the signal is sparse in some (unknown) domain. It turns out that if your signal is sparse, you can apply a constrained random dimensionality reduction to the signal and not lose any information. This is the field of compressed sensing. Note that in this case, you haven't recovered any structure.


dupswapdrop: music-dsp mailing list

Reply via email to