Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.


how do I convert from linear to logarithmic

This topic is 5979 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

How do I convert a linear volume scale 0->64 to the logarithmic dB scale 0->10000(hundredths of a decibel).
Message from above: Damn, my hair is grey!

Share this post

Link to post
Share on other sites
Using the log function. C''s log() function is the natural logarithm, and you want base 2, but it''s easy to convert betwen the two. E.g. you can use

#define logbase2(a) (log(a) / log(2))

and then you just need

hundredths_of_a_decibel = 100 * 10 * logbase2(volume);

[the ''100'' comes from wanting hundredths, while the 10 comes from wanting _deci_bels]

Note that this may not work for a volume of zero: it may crash or produce an infinite result. If you expect 0 volumes you should probably handle them seperately.

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!