[mirtoolbox] Re: Newbie question (*BUG ALERT*)

  • From: Olivier Lartillot <olartillot@xxxxxxxxx>
  • To: mirtoolbox@xxxxxxxxxxxxx
  • Date: Mon, 9 Aug 2010 14:44:22 +0200

Hi Juan and list,

So sorry for this quite late reply. Actually, your question is of high 
importance, because I noticed this week-end it reveals an error in the 
computation of mirspread.. From version 1.0 to version 1.3, spread is computed 
using the following subfunction in mirspread.m:

> function s = spread(d,p,c)
> s = sqrt( sum((p-c).^2.*d) ) ./ sum(d);

which is unfortunately false, because d should first be divided by sum(d) 
before applying the square-root. Enclosed to this mail is a corrected 
mirspread.m, featuring this corrected subfunction:

> function s = spread(d,p,c)
> % Spread is identified to the standard deviation of the distribution d,
> % considered as a histogram where each bin is related to a position p.
> % Spread is hence related to the distance of each position to the centroid
> % c, hence (p-c), and to the frequency of that value in the distribution d.
>  
> s = sqrt( sum((p-c).^2.*d) ./ sum(d) );

This is very bad news indeed, because it means that not only mirspread was 
wrong, but also mirskewness and mirkurtosis, since they depend on that standard 
deviation computed by mirspread..

I will upload a corrected version of MIRtoolbox today.

Such hidden implementation error is one of the most detrimental risk associated 
with a project such as MIRtoolbox. We should really do our best to avoid them 
at all cost. Here are solutions that should be deployed as soon as possible:
- Achieving the transition of MIRtoolbox into a real Open Source collaborative 
project, where all the code is read by at least several contributors.
- Turning all operators black boxes into an actual white box, fully readable by 
all users familiar with Matlab, and easily accessible from the User's Manual.
- Implementing professional-quality quality assurance, including a test 
platform.

This will require in particular the dedication of financial resources for that. 
We plan to apply for some funding for that.

Meanwhile, we are very sorry for these hidden reliability issues. 

Regards,

Olivier


Le 27.7.2010 à 8.39, Juan Pampin a écrit :

> Hi All, I'm new to this list and to mirtoolbox. 
> I've been using the software to analyze a
> bunch of audio segments using high-level 
> spectral descriptors and everything is working
> great, but I was wondering about the ranges of
> values some of the functions return. For instance,
> mirkurtosis seems to return huge values (even
> up to the 1.0e+14 range!) end the same seems
> to happen with mirskewness. From reading
> the documentation I was expecting these functions
> to return values between -3 and 3, so I was 
> wondering how to interpret the huge values the 
> function returns.
> Thank you,
> JUAN
> 

Other related posts: