[Clam-devel] Re: Zero crossings and so ons...

Greg Kellum greg.kellum at gmail.com
Thu Jul 3 11:11:25 PDT 2008

Hi Yushen and Xavier,

> Hi, Greg
> 1. "Do you think you could identify zero crossings on the fly after
> you've already resynthesized your two new frames?"
> This is an interesting question and my answer is no. I can't do this
> unless I have the access to the samples in a frame. So far all I did
> is in the frame level. Is there anyway for me to operate on sample
> level?

I had actually forgotten how the looping was working.  I just went  
back and looked at it, and I was surprised that it was crossfading the  
spectral peaks rather than audio...  Hm...  Maybe, this is a good  
thing though...  For each spectral peak you also have a phase value.   
I didn't do anything with these though.  I just matched up the  
frequency of the partials and crossfaded their magnitudes.  I would  
think though that if you took the phase values of all the partials of  
the end of the loop and assigned them to the partials at the beginning  
of the loop this would work just as well as matching up the zero  
crossings in the time domain, because then you are forcing the phase  
of the start of the loop to be continuous with the phase of the end of  
the loop...  But actually now that I think about it, the phase values  
are already being corrected anyway.  The SMS synthesis should be over  
writing the phases of each new frame so that it continues where the  
last frame ended.  So, actually, the phases of the partials of the  
overlapping frames should already be aligned.  I'm not sure what  
happens with the residual...

Xavier Amatrian.  What do you have to say about this?  Is what I'm  
saying correct?

> 4. For the "mock-up", do you mean something like a blue print of the
> interface that is not really sfunctional?
> If so, I can just use XCODE Interface Builder...

Yeap, I meant just a blue print of the interface that is not really  
functional.  Interface Builder...  I've never used it.  You recommend  
it?  I guess I should check it out...


> Best regards,
> Han, Yushen
> On Thu, Jul 3, 2008 at 6:32 AM, Greg Kellum <greg.kellum at gmail.com>  
> wrote:
>> Hi Yushen,
>> Here's a response to your earlier mail...
>> I could imagine that it would be difficult to preserve the loop  
>> points
>> you found after an analysis / resynthesis.  Do you think you could
>> identify zero crossings on the fly after you've already resynthesized
>> your two new frames?  When you wrap back around in a loop maybe you
>> could just offset the start point of the loop by enough samples to
>> make sure that the phases of the end and the start of the loop are
>> aligned...
>> You had also asked about the triangular envelope...  Well, a
>> triangular envelope is already being using in SMS for overlapping
>> frames.  This happens in the class OverlapAndAdd (I think).  And it
>> doesn't introduce any artifacts...  Kontakt also uses triangular
>> envelopes in looping...  Um...  Is there another alternative to using
>> a triangular envelope?  Well, I suppose you could use no envelope at
>> all as you mentioned...
>> You also mentioned problems with jitter.  Is this the same question
>> that you wrote about in your more recent email?  I wasn't sure that I
>> understood the problem.  But I'm downloading your tar file, and
>> hopefully, there are some sound files in there where I can hear the
>> jitter...  Maybe that will help...
>> With regards to the user interface, it would be cool if you had  
>> enough
>> time to make a stand-alone application with its own GUI.  They're
>> already using Qt for CLAM.  So, I suppose it would be best if you  
>> were
>> to use Qt as well, and I think portmidi is already built into clam.
>> So, I suppose you could use either that or OSC for input.  I suppose
>> if you have some time to make some mock-ups of the user interface  
>> then
>> we could make comments about them...  I'm working on OS-X as well,  
>> and
>> I usually use OmniGraffle to make mock-ups and then save them as
>> pdfs...
>> Best wishes,
>> Greg

More information about the clam-devel mailing list