omriharel / deej

Set app volumes with real sliders! deej is an Arduino & Go project to let you build your own hardware mixer for Windows and Linux

Home Page:https://deej.rocks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deej with logarithmic Potentiometers

CodingFactoryT opened this issue · comments

I only have logarithmic slider potentiometers. What can I do?

Hi @CodingFactoryT, thanks for writing.

Unfortunately, there isn't much you can really do to make logarithmic pots work perfectly. It's not that they won't be usable, it just won't be completely ideal.

As you might know, a logarithmic taper on pots is the typically suitable one for audio-related applications. But in the case of operating systems like Windows, there is already a linearization of the software volume controls (which is what deej changes) which means that the control needs to be linear.

Since the physical properties of a logarithmic pot define the mathematical function that determines its resistance based on its wiper position, there isn't a great way to reverse them in software. That missing resolution around the sharper parts of the curve just gets lost, so even if you try to come up with a reverse calculation that tries to mimic a linear taper, you'd still be left with a pot that feels less accurate and less linear than an actual linear pot.

But with all that said - it's not necessarily a huge deal. You should still give such a potentiometer a try (maybe on a breadboard, just as a quick prototype), and see how it feels - maybe it'll be good enough for you!

Please let me know if you have other questions. Thanks!

Thanks for your detailed answer! I searched very long for a solution, and I have found one which can map the logarithmic values to linear ones. I created a pull request so that everyone can benefit from it.

Hi @CodingFactoryT, I looked at your PR but as I explained in my above answer, it isn't a real solution that allows to make better use out of a logarithmic pot. Feel free to use it for yourself if you believe it helps.