On Thu, May 21, 2009 at 8:48 PM, Chris Cannam <[email protected]> wrote: > There is an IEC standard for this mapping in meters (IEC 60-268-18) > which works OK for faders as well if extended in a sensible way down > to -inf, particularly if you don't want to go above 0dB. It divides > the range up into several sections which are individually linear in > dB. There's code for this mapping in several places, including > base/AudioLevel.cpp in the Rosegarden source code.
Actually I might as well summarise here, not least because I've noticed the RG code does not in fact implement exactly what's in the standard. The standard has the top 25% of the meter covering 0dB down to -9dB; the next 25% covering -9 to -20; the next 20% covering -20 to -30; the next 15% covering -30 to -40; the next 7.5% covering -40 to -50; the next 5% covering -50 to -60; and the last 2.5% covering -60 to -Inf. Each of those ranges is linear in dB. The numbered levels are 0, -5, -10, -15, -20, -30, -40, -50, -60. Ticks are per dB down to -20, then only at numbered positions, with an additional tick at -45dB (why?) This is actually quite different from the cubic mapping; it gives you a lot more space in -10 to -20 relative to 0 to -10. That suggests that you can get away with quite a few different mappings in practice. > A cubic mapping is also good. In Rosegarden we actually switched from a cubic mapping to one based on the IEC meter mapping, many years ago, because "it seemed like a good idea at the time". I've never really made up my mind whether it turned out better or worse. Nowadays I'd probably go for cubic, since it's a one-liner to code. Chris _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
