[vorbis-dev] References for the BARK/MEL stuff

Monty xiphmont at xiph.org
Mon Nov 27 18:14:17 PST 2000



> >   Could someone point me to the BARK/MEL tables that these macros (from vorbis/scales.h) are trying to approximate?
> > 
> > #define toBARK(f)   (13.1*atan(.00074*(f))+2.24*atan((f)*(f)*1.85e-8)+1e-4*(f))
> > #define fromBARK(z) (102.*(z)-2.*pow(z,2.)+.4*pow(z,3)+pow(1.46,z)-1.)
> > #define toMEL(f)    (log(1.+(f)*.001)*1442.695)
> > #define fromMEL(m)  (1000.*exp((m)/1442.695)-1000.)

Yup, I'll dig them out in a bit.

> >   I was wondering if I could come up with different functions that were easier to compute > that would still be good 
> 
> None of these are performance critical (afaik).

Correct.  They're used to populate small tables.

> >   Looking at a graph of toBark() in Mathematica over 0-30,000 makes it look like something > way simpler than atan could be
> > used (of course, maybe I've implemented toBark incorrectly in Mathematica, which is why I > want to look at the original tables 

0-30,000 is too low.  Look at 0-60,000 minimum.

> 
> Please look at it on a log scale (f log, bark linear). It is important
> to get the
> curve right in both ends _and_ in the middle.

That too.

> Bark is an important scale; at any given point in time, the human
> auditory system
> can only differentiate one sound in a bark-width band. Essentially, a
> strong sound
> makes all other sounds in the bark around it unhearable. Something like
> that. So
> bark-scale is nice for doing psycho-acoustic calculations.

Changing the bark equation used by ogg could potentially drastically
alter decoding in noncompatable ways.  Caveat Programmer.

Monty

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list