[Clam-devel] CombFilter and GenderChange

Xavier Amatriain xavier at create.ucsb.edu
Wed Apr 18 12:35:31 PDT 2007


Again, after further testing... I am lost. It seems to me at this point
the best thing would be to run a coverage analysis (i.e. with gcov) with
a Pitch Shift in SMSTools vs. one in NetworkEditor to understand what
code is being executed in each case.

Any volunteer?

On Tue, 2007-04-17 at 14:39 -0700, Xavier Amatriain wrote:
> I'm sorry to say that after a few hours spent on this I am back to
> square one. Actually, if instead of the Gender Change I insert a simple
> SMSPitchShift the result is much worse and there are artifacts both in
> the residual and the sinusoidal. Using all my local modified files I
> have the same result although, as David pointed out, everything works
> fine in a non-network context.
> 
> Even forcing data copy of all the inputs you get the same effect so the
> only thing left to think is that the inputs are not configured correctly
> due to default port construction (David's num. 3 option). I'll try to
> investigate this a little tomorrow.
> 
> On Mon, 2007-04-16 at 00:33 +0200, David García Garzón wrote:
> > On Diumenge 15 Abril 2007, Xavier Amatriain wrote:
> > > I wasn't asking for the file you changed to make it work :) My question
> > > was whether you had any hints on what made it NOT work. Did the Pitch
> > > Shift stop working due to your latest work on the Gender Change or is it
> > > something that has been down for much longer. In any case, don't worry
> > > too much, I have a working copy and I will be able to figure it out as
> > > soon as I have some time.
> > 
> > I told you about the U shaped output of the gender change when we were at 
> > Santa Barbara, so the bug is there for long. But as the transformation has 
> > been working ok on the SMSTools, i supose that it is something related to 
> > making it work on the NetworkEditor. The tipical issues i found when doing 
> > this are:
> > - Suposing inplace modifications when it is a new object (ugly but fast 
> > solution: copying it and proceed)
> > - The copy is done but at some higher level (segment or frame) as NetEditor 
> > deals with the low level objects, the copy is not done.
> > - Copy is not needed but some format (log/linear, magbuffer/comples...) on the 
> > output is expected but default objects are obtained from the port. In this 
> > case, as Pau said, the solution is to prepare the output on the Do().
> > 
> > 
> > > > Another issue i don't understand is why comb filter is filtering target
> > > > frequencies (i*fundamental*amount) instead source frequencies (just
> > > > i*fundamental).
> > >
> > > I guess my explanation the other day was not quite accurate. The
> > > feedforward delay resonates frequencies that are integer multiples of
> > > the target pitch and filters out the rest (with local minimums at odd
> > > multiples of target/2). So, it's not that you are exactly filtering out
> > > the original but rather resonating the target in the residual.
> > 
> > So i am listening frequencies of the old pitch. It seems to be an analysis 
> > problem, not detecting the proper fundamental and then letting some harmonics 
> > getting out of the shift. I cannot check whether the combfilter minimizes 
> > that because the introduced noise does not let me listening  frequencies. 
> > Whatever the filter resonates, resonates it a lot ;-)
> > 
> > 
-- 
/*********************************
 *       Xavier Amatriain        *
 *  Associate Director - MATi    *
 *  Research Director - CREATE   *
 *    UCSB, Santa Barbara CA     *
 *      1-(805)- 893 83 52       *
 ********************************/





More information about the clam-devel mailing list