ΣSigmaStudio Ask AI Русский Log in

Logarithmic pot by Index LUT?

SigmaDSP & SigmaStudio rszemeti Jun 15, 2013 00:00 5 replies Original on forum ↗
Subscribe
rszemeti Question
Jun 15, 2013 00:00

Hi,

I've got an auxiliary ADC feeding a slew volume control and all the action takes place in the first 30 degrees of pot movement.

I'm using linear pots, so I'd like to feed them through a LUT to convert to something like log, or audio taper.

What is not clear from the documentation is the range of an auxilliary ADC .. is it 0 to 1, 0 to 255? I need this info to make up the linear interpolated LUT.

I'm inclined to use a LUT becuase I need to include a flat zero section at the beginning to ensure the volume can be turned off completely at minimal pot values .. I've noticed with the standard slew volume control that sometimes it can remain slightly open with 0V on the ADC, depending on how fast your turn it down to zero, sometimes you get a different value .. hoping a LUT with a flat zero section will help with that.

Anyway, range of the auxialliary ADC values is needed I think to construct the log LUT

KJBob Reply
Jun 15, 2013 00:00

Hi,

The aux ADC's full-scale output is 1.0 in 5.23 format. One way to convert this to the 28.0 integer numbers a standard lookup table expects is to multiply the aux ADC output by a DC source set to the number of index entries you need, in 28.0 format. For example, as shown below:

As you noted, you can set up your lookup table's entries to provide a fully quiet minimum, while tailoring the increasing entries for a good "feel" -- not necessarily straight dB steps -- as shown here:

BTW -- the standard lookup table as shown can provide log (dB) spaced outputs for an integer (essentially linear) input. There's a new log lookup table in 3.9 Beta, but I suspect it's for a different application. In any event, I haven't figured it out yet.

Best regards,

Bob

8f3a9943cc8fb4db5b7df28ef764ca80.jpg
8f3a9943cc8fb4db5b7df28ef764ca80.jpg
8f3a9943cc8fb4db5b7df28ef764ca80.jpg-450x317.jpg
8f3a9943cc8fb4db5b7df28ef764ca80.jpg-450x317.jpg
794324a8a648c6ef2df725de7e5a4142.jpg
794324a8a648c6ef2df725de7e5a4142.jpg
794324a8a648c6ef2df725de7e5a4142.jpg-360x310.jpg
794324a8a648c6ef2df725de7e5a4142.jpg-360x310.jpg
rszemeti Reply
Jun 17, 2013 00:00

Hi Bob, and thanks for the comprehensive answer!

I think though (unless I have misunderstood) that may be slightly different to what I am trying to do.

Your approach would give a number of discrete steps, what I am tryingto do is have a continuous curve. I was intending to use the "Index LUT" which is a linearly interpolated lookup table, under "basic DSP", "Index LUT" "Linear Interpolator" in V 3.8

So the Aux ADC is 0 -> 1 in 5.23 format, out of interest, where did you find this bit of info? is there a bit of the manual I didn't find yet?

KJBob Reply
Jun 17, 2013 00:00

Hi,

The Aux ADC spec is not in the help or the wiki, but you'll find it on page 36 of the ADAU1701 data sheet:

Bob

5e3e4d48ed65706d602a67d724d813d0.jpg
5e3e4d48ed65706d602a67d724d813d0.jpg
5e3e4d48ed65706d602a67d724d813d0.jpg-450x218.jpg
5e3e4d48ed65706d602a67d724d813d0.jpg-450x218.jpg
ADIApproved Reply
Jun 17, 2013 00:00

Thanks for your help, Bob!

Hi rszemeti,

Your understanding is correct. Bob's approach would give you a discrete number of outputs. If you want to have a continuous output, you can use the same approach that he uses, but replace the lookup table with a linear interpolator. More information is available here: https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/basicdsp/linearinterpolator

rszemeti Reply
Jun 17, 2013 00:00

Right, so using the linearinterpolator table with an input range of 0 to 1, and output range of 0 to 1 and a bit of a curve, sounds easy enough now I know the ranges involved.