I've been digging through the CLAM code trying to figure this out again.. I have much work to do.  Now there are four things I know of that I am not doing:<br><br>a) the circular shift<br>b) multiplying by an 'inverse' Blackmann window(not comprehending the reasoning behind this yet)
<br>c) any normalization (although I don't see this in SpectralSynthesis.cxx<br>d) undo the zero padding?<br><br>But first is first; the circular shift.  Is it a simple rotation of the samples by half the audio block? 
<br><br><br><div class="gmail_quote">On Dec 19, 2007 6:23 PM, Xavier Amatriain <<a href="mailto:xavier@amatriain.net">xavier@amatriain.net</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Sorry, that should have been IFFT not SFFT.<br><br>About the windowing you are doing on the residual: are you multiplying<br>by the *inverse*? Is this window normalized?<br><div><div></div><div class="Wj3C7c"><br>Rich E wrote:
<br>> Xavier,<br>><br>> Its starting to get clearer, but I still have a couple questions as I<br>> am definetaly not doing the resynthesis correct yet (I am getting a<br>> periodic pitch.. not sound).<br>>
<br>>     The analysis window, which by default is a BlackmanHarris92<br>>     with a 75% overlap. You need to multiply by the<br>>     inverse of this window after the SFFT.<br>><br>><br>> sorry for having to ask, but what is an SFFT?  If it is the same as an
<br>> STFT or FFT, at which point do I do this?  I was under the impression<br>> from one of Serra's publications that all I had to do with<br>> resynthesize the residual FFT, but don't have to do any more FFTing.
<br>><br>> If this is an IFFT, my attempt is on the right track, but I am still<br>> not getting a noise sound.  I am windowing the residual IFFT by a 75%<br>> overlap and multiplying it by the BlackmanHarris92 window, then
<br>> re-windowing the result with a 50% overlap and multiplying by a<br>> triangle window.  But my result is pitched, and this changes if I<br>> change the overlap.<br>><br>> Can anyone see what I am doing wrong?
<br>><br>> regards,<br>> rich<br>><br>>     And then a completely independent<br>>     triangular window with a size equal to twice<br>>     the analysis hop and overlap 50%. This is the one in charge of
<br>>     getting a<br>>     smooth overlap and add process in place.<br>><br>>     Hope it helps.<br>><br>>     X<br>><br>>     Rich E wrote:<br>>     > Okay, I didn't think of looking for the overlap size by checking the
<br>>     > timestamps, but that seems obvious now.. thanks!  I have found there<br>>     > are many things preventing the SDIF files from being used in<br>>     real-time<br>>     > (such as the 1TRC frames not containing birth and death
<br>>     information).<br>>     > So I am already buffering the data in a format that can be used in<br>>     > real-time, so finding the overlap before sysnthesis-time<br>>     shouldn't be<br>>     > a problem.
<br>>     ><br>>     > However, I do not see the 1WIN matrix within the SMS-produced files.<br>>     > I assumed it is a triangle window with an overlap factor of 2<br>>     (this is<br>>     > the default settings in SMSTools), but of course this can be
<br>>     changed,<br>>     > in which case I would not know how to find the windowing function.<br>>     > But I tried these settings without success (in comparison to<br>>     > SMSTools-produced residual sound), so I am still looking for the
<br>>     > correct ones.<br>>     > cheers,<br>>     > rich<br>>     > On Dec 14, 2007 6:30 PM, Richard Dobson<br>>     > <<a href="mailto:richarddobson@blueyonder.co.uk">richarddobson@blueyonder.co.uk
</a><br>>     <mailto:<a href="mailto:richarddobson@blueyonder.co.uk">richarddobson@blueyonder.co.uk</a>><br>>     > <mailto:<a href="mailto:richarddobson@blueyonder.co.uk">richarddobson@blueyonder.co.uk
</a><br>>     <mailto:<a href="mailto:richarddobson@blueyonder.co.uk">richarddobson@blueyonder.co.uk</a>>>> wrote:<br>>     ><br>>     >     Rich E wrote:<br>>     >     > Okay, sorry for getting into too much pd stuff... I
<br>>     basically just<br>>     >     > need to know what needs to be done to the 1STF data before<br>>     I can<br>>     >     > synthesize it.  Is it ready to go, or is windowing still<br>>     necessary?
<br>>     >     > Should the frames be overlapped?<br>>     >     ><br>>     ><br>>     >     It's plain real/imaginary DFT data. SO in that sense yes it is<br>>     >     ready to<br>
>     >     go straight into the IFFT. It will almost certainly require<br>>     windowing.<br>>     >     If you haven't already done so, you will neded to check the<br>>     formal<br>>     >     definition of the 1STF format 
e.g. at:<br>>     ><br>>     >     <a href="http://www.cnmat.berkeley.edu/SDIF/FrameTypes.html#1STF" target="_blank">http://www.cnmat.berkeley.edu/SDIF/FrameTypes.html#1STF</a><br>>     ><br>>     >     SDIF is famous/notorious for being particularly "loose" about
<br>>     >     definitions and content. In short, each frame (matrix) is<br>>     time-stamped<br>>     >     (from the centre of the window, because they like doing<br>>     things that<br>>     >     way), and you have to determine the overlap from that (which
<br>>     means you<br>>     >     have to read at least two frames before you can start rendering,<br>>     >     so this<br>>     >     is not  a true real-time streaming format; one would assume the
<br>>     >     overlap<br>>     >     is constant, but the format does not see the need to mandate<br>>     it);<br>>     >     there<br>>     >     should be a 1WIN matrix that defines the window to use. Beyond
<br>>     >     that, all<br>>     >     I can say is "good luck"!<br>>     ><br>>     ><br>>     >     Richard Dobson<br>>     ><br>>     ><br>>     ><br>>     >
<br>>     ><br>>     ><br>>     >     _______________________________________________<br>>     >     CLAM mailing list<br>>     >     <a href="mailto:CLAM@iua.upf.es">CLAM@iua.upf.es</a> <mailto:
<a href="mailto:CLAM@iua.upf.es">CLAM@iua.upf.es</a>><br></div></div>>     <mailto:<a href="mailto:CLAM@iua.upf.es">CLAM@iua.upf.es</a> <mailto:<a href="mailto:CLAM@iua.upf.es">CLAM@iua.upf.es</a>>><br><div>
<div></div><div class="Wj3C7c">>     >     <a href="http://www.iua.upf.es/mtg/clam" target="_blank">http://www.iua.upf.es/mtg/clam</a><br>>     ><br>>     ><br>>     ><br>>     ------------------------------------------------------------------------
<br>>     ><br>>     > _______________________________________________<br>>     > CLAM mailing list<br>>     > <a href="mailto:CLAM@iua.upf.es">CLAM@iua.upf.es</a> <mailto:<a href="mailto:CLAM@iua.upf.es">
CLAM@iua.upf.es</a>><br>>     > <a href="http://www.iua.upf.es/mtg/clam" target="_blank">http://www.iua.upf.es/mtg/clam</a><br>><br>><br><br></div></div></blockquote></div><br>