[CLAM] Re. New SMSBatch

Xavier Amatriain xamat at iua.upf.es
Thu Jul 29 05:33:27 PDT 2004


> Okay, I may be doing something wrong.  When I try putting any Polynomial
> into the xml transformation score, SMSBatch crashes with a segmentation
> fault when it tries to load the score (not when it's processing the
> transformation) - which seems to me more of a syntax error (like it's
> not expecting Polynomial2, or the circumstances aren't right for such a
> Polynomial).  

I tried with polynomial and it works fine. Note that you have to exactly
put in the "strings" defined in GlobalEnums.cxx, that is:

{EInterpolation::eStep,"Step"},
{EInterpolation::eRound,"Round"},
{EInterpolation::eLinear,"Linear"},
{EInterpolation::eSpline,"Spline"},
{EInterpolation::ePolynomial2,"2ond_order_Polynomial"},
{EInterpolation::ePolynomial3,"3rd_order_Polynomial"},
{EInterpolation::ePolynomial4,"4th_order_Polynomial"},
{EInterpolation::ePolynomial5,"5th_order_Polynomial"},
{EInterpolation::ePolynomialn,"nth_order_Polynomial"},

> For Spline, I get this:
> 
> 
> SMS Transformation Processing
> ##########################################################
> ################### ASSERTION FAILED #####################
> ##########################################################
> At file ../../../../src/Standard/BPFTmplDef.hxx line 410
> BPF::Spline table not updated

This is a different story, I see where the problem is but it has to do
with the program logic so it will be harder to solve... goes to the todo
list, maybe you could report the bug at mantis.

If you wanna give it a try it seems there is a missing
mConfig.GetBPFAmount().UpdateSplineTable() at line 27 of
SMSTransformation.cxx (I would give it a try myself but I am leaving on
holidays tomorrow and have to finish up too many things :( I think this
should fix the problem excep for SMSMorph in which case you will have to
add the same line at SMSMorph.cxx:93.

> You mentioned I need a number of points for these two - can you
> elaborate? 

It is a fact that for generating a line (1st order polynomial) you need
two points. In the same way for a 2ond order polynomial you need 3
points... thus you need order+1 points in order to restrict all the
possible degrees of freedom. Even then, if points are, for instance, too
close together you will be forcing the polynomial to have very close
zero's so it is bound to be quite unstable.


> One other question - when I save a transformation score from the gui,
> each Config element has a <Type> element that repeats the
> <ConcreteClassName> ... this isn't in the example transformation score -
> is <Type></Type> superfluous?

It is for the time being.

-- 
/**********************************
********* Xavier Amatriain ********
****** Music Technology Group *****
** IUA- Universitat Pompeu Fabra **
****** www.iua.upf.es/~xamat ******
***********************************/





More information about the clam-users mailing list