For a standard mixer fader that simulates an equal
loudness curve, here are two methods that sample stored
functions:
1) genSONE (this is a gen routine that creates a
sone = equal loudness curve - see Manual) - for example:
f
2 0 16385 "sone" 0 32000 32000 0
2) f 1 0 512 16 0 512 .8 1
uses gen16 to create the appropriate curve. The
".8" can be changed to create any steepness you like.
(I use this function most of the
time.)
Also: If I run into a situation in which I want the
lowest value to be zero, but it's some minimal value instead:
kamp = (kamp < .01? 0: kamp)
for example.
And if you need to smooth that drop to zero,
add:
kamp port kamp,
.01
or some such.
----- Original Message -----
Sent: Monday, May 06, 2013 9:14 AM
Subject: [Csnd] Control signal for audio
fader
Hi,
I am attempting to set up a standard mixer audio fader
value (to be multiplied against another signal) that is controlled with a
signal of range 0-1, but I am having some difficulty finding the curve to
use. I've attempted to use a base 10 log curve, scaling and offsetting
the control signal such that the desired min and max values are achieved at
the extremes of the control signal range, but the curve is so severe that
almost the entirety of the control signal range is taken up by a very small
slice of the possible resulting range. I want it to work like a mixer
where there is more resolution near dB(0) that at the bottom of the scale, but
what I currently have is far too much. What kind of curve is typically
used for these applications? Also, what is a good minimum dB
level to use to effectively get "silence?" Since the log curve has an
asymptote at the y axis it is impossible to get exactly 0. Is there a
handy way to calculate what it should be for a given bit resolution?
-- Electronically, Jeff
Taylor
|