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

Segher Boessenkool segher at wanadoo.nl
Sun Nov 26 16:23:28 PST 2000



"Timothy J. Wood" wrote:
> 
>   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.)
> 
>   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).

> approximations (also, can anyone comment on what a good metric is for judging the > 'goodness' of an approximation function).

If it still sounds as good for all possible samples, that's good :-)

> 
>   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 

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.

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.

Dagdag,

Segher

--- >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