[Clam-devel] Spectral Analysis/Synthesis
Karsten Krispin
karsten.mailinglists at krispin.de
Mon Feb 18 12:40:25 PST 2008
Am Montag, 18. Februar 2008 15:39:54 schrieb Xavier Amatriain:
> Comments below...
>
> > Configure-Stuff:
>
> I can't see anything wrong with configuration but I am wondering... why
> did you decide to use KaiserBessel35??
>
> > This is the way I create the temporary buffer in WindowSize (package is a
> > CLAM::Frame) :
> >
> > Analysis:
> > CLAM::Audio tmpAudio;
> > tmpAudio.SetSize(package->frameSize()*4);
> > CLAM::TIndex index = (package->frameSize()*2)-(package->frameSize()/2);
> > tmpAudio.SetAudioChunk(index, package->GetAudioFrame());
>
> Wait! index is constant? That means you are using some sort of zero
> padding but then not
> removing it properly at synthesis. What you should do is concatenate all
> the frameSize samples
> you get into your tmpAudio until you got enough to send it to the
> analysis (i.e. do it four times and then
> start sending). After that, you need to append the new frameSize samples
> at the end of your buffer while
> keeping the last frameSize*3 before those.
Okay... I see. That means that I have an extra latency of3*frameSize. But if
It's the way to get a working synthesis, I have to come along with that.
I will elobarote on it. But that will mean some extra work somewhere else.
Currently I will avoid this. ;)
> Also this is not correct :-( You can't just take the first frameSize*2
> samples and feed them to the OLA.
> You need to take the center frameSize*2. Else the inverse window you are
> applying does not correspond to
> the one you applied in the analysis (in terms of where the center is).
Well, but I looked up the code and SSynth does take the centerFreq +/- hopSize
by itself. So the Audio size after the _specSynth.Do() is 1024 and not 2048.
Or, what else do you mean?
> Hope it helps!
I had a look at the synthesied samples and understand how that change of
amplitude happen. It has something todo with the zero-padding, I think.
But I suppose it will work then. :)
Karsten
More information about the clam-devel
mailing list