Hello. I subscribed to sweep-dev but I don't intend to touch the Sweep
source code (yet). I'm writing my own editor and I'm sure that by helping
you I help myself too: discussions, common code libraries, implementation
ideas, graphic design, etc. I don't know why I choosed Sweep -- perhaps
because Conrad is visible in LAD list, or perhaps because other editors
feels not good (DAP and Snd included but I have not seen the latest Snd).
I wish we are aiming at similar to SoundForge and other good editors in MS
Okay, I'm continuing the discussion which I started with Conrad.
I may post a summary of the previous mails if needed -- there were
a plenty of okay ideas.
I forget to mention that the volume fader is doing the opposite
of what I would find very useful. I rarely need to decrease the volume,
but very frequently I need to increase the volume by gains up to 64.
The software volume is needed because hardware volume would blow up my
ears if editor plays at the wrong place or some other mistage happens.
(Sweep should not even touch the hardware volume, by the way.)
The volume fader:
-Its movement should be more continuous, smooth, pixel accurate -- not
as stepwise as now
-The gain range should be from 0.0 to maxgain, where maxgain should be
-default maxgain could be 8
-maxgain could be choosed from a menu having values 4, 8, 16, 32, 64;
when changed the gain should not change; only the fader knob position
Here is a formula for the gain:
Assuming that the fader range is from 0.0 to 1.0 (maximum gain).
Assuming the gain is maxgain when fadervalue is at 1.0.
gain = -1.0+exp(fadervalue*log(1.0+maxgain));
formula because exp() seems to be linear enough between 0.0 and the
location where gain will be 1.0. When maxgain is 8.0, the gain is 1.0
at 0.32. That means that the gain values between 0.0 and 1.0 can be
adjusted more finely than the values between 7.0 and 8.0 (say).
That difference would be perfectly okay.
When maxgain is changed (from menu), compute new fader position with
fadervalue = log(gain + 1.0)/log(1.0+maxgain);
where gain is the current gain.
I have also use this kind of exponential formula in my version of XWave.
XWave had a zoom slider in the same place where you have the volume slider.
The problem with XWave's earlier zoom slider formula (linear) was that
it worked only for short waves. It failed badly for ten minutes and longer
recordings. The exponential formula worked perfectly for both short and
large files (500 MB).