Basic idea is to provide a scale that is mostly log--like, but can
express the extremities $0$ and $\infinity$.
How to map this time scale $T = [0,\infty]$ to a control parameter
range $C=[0,1]$ in a meaningful way? A mapping that satisfies the
interval boundaries is $$c(t) = \frac{t }{a + t}.$$ This maps $c(0)=0$
and $c(\infty)=1$. The inverse is $$t(c) = \frac{a c}{1-c}.$$
The parameter $a$ can be determined by constraining the middle of the
scale $t(1/2) = a$. Another important parameter is how fast the dial
will move to $0$ and $\infty$. Both are extremes that are part of
$T$, but for say $50\%$ of the $T$ range we'd like to have decay rates
that change mostly exponential in $c$.
To expose the symmetry in $t(c)$, let's introduce a change of variable
$d = 2c -1.$ This gives $$t(d) = a\frac{1+d}{1-d}.$$ This scale is
logarithmically symmetric around $a$ or $t(d)/a = (t(-d)/a)^{-1}$,
meaning that in the middle range it behaves mostly exponential, while
tending to $0$ and $\infty$ in the two extremes\footnote{ This hints
at the input--scaled variant $\frac{1+ax}{1-ax}$ being a good
approximation for $e^x$, which is the case when $a=\frac{1}{2}$.}.
The slope of $t(d)$, relative to $a$ is fixed. At $d=0$, the function
approximates $a\exp(2d)$. For mapping meaningful parameters, this
might be a bit too flat. Successive squaring of $t_0(d) = (1+d)/(1-d)$ can
solve this. For $n$ squarings we have $\exp(2nd)$. The curve then becomes
$$t_n(d) = a t_0(d)^{2^n}.$$
In practice it seems that a single squaring works good. This gives a
reasonably flat log response for $3$ decades, about $70\%$ of the
scale, leaving the rest for the extreme range. If necessary, the
extremities can be avoided by prescaling $d$. With one squaring,
using $0.99$ limits the output range to about $9$ decades.
Mapping this to pole radius requires an extra step. Let's use the
natural $1/e$ decay to relate decay time $t$ (measured in samples) to
pole $p$ as $p^t = 1/e$ or $$p = \exp(- \frac{1}{t}).$$
This approximation needs to be accurate for $t \gg 1$, and extend
correctly to $p=0$ at $t=0$. The first degree Taylor expansion is $1
- 1/t$. Modifying this slightly to give $$p' = 1 - \frac{1}{t+1}$$
yields the wanted behavior at $t=0$ without changing the large $t$
behavior too much. For numerical reasons the update equations will
use the positive quantity $$q' = \frac{1}{t+1},$$ where $p' = 1 -
q'$. Composing the two mappings gives $$q_n(d) =
\frac{1}{1+a(\frac{1+d}{1-d})^n}.$$ where $a$ gives the mid--scale
time constant in samples.
I'm using $n=2$, but some knob twiddling makes me think that maybe
$n=1$ is better. What is important is to get the mid--scale value
correct. I.e. what is a prototypical note's attack and decay rate?
To find the warping
% [1] entry://20130321-160005