[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