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
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
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
dupswapdrop: music-dsp mailing list