I’m not suggesting that we change this. I was just indicating the scope of the terminology problem.
The problem is similar to describing left and right when facing someone - my left or your left.
A logarithmic curve is a “reflection” (inverse) of an exponential curve.
You can even “plot graphs” of logarithmic and exponential curves in Audacity:
;; log curve, scaled to fit on audio track
(setf ma (make-array 44100))
(dotimes (i 44100)
(setf (aref ma i)(* 0.3 (log (/ i 44100.0)))))
(sum (snd-from-array 0 44100 ma) 1)
;; exponential curve, scaled to fit on audio track
(setf ma (make-array 44100))
(dotimes (i 44100)
(setf (aref ma i)(* 0.016 (exp (/ i 11025.0)))))
(snd-from-array 0 44100 ma)
Not that I know of.
The closest thing to a “standard” that I have found is the “curve” control on DJ desks on which “increasing” the “curve control” setting makes the fade shape “bend up”, or in DJ terms, turning up the curve setting “makes the channel open faster”.
User manuals and articles about fade shapes are invariably vague in how they describe the shape of fades, resorting instead to graphic illustrations, for example:
and
ProTools uses the terms “Standard”, “S-curve” to refer to their preset fade-in / Fade-out shapes.
For cross-fade presets they use the terms “Equal Power” and “Equal gain” to refer to the amount of curvature.
It would be so easy if all users were mathematicians as all of these curves can be simply, briefly and unambiguously defined (for mathematicians)
I’m sure they would.
Not exactly, though that does neatly answer my previous question:
When talking about a fade-in (fade up), the first has a decreasing slope while the second has an increasing slope.
When talking about a fade-out (fade down), the slope of the first gets steeper while the slope of the second becomes flatter.
(Oh for a mult-tab plug-in interface :sigh:)
Some examples of linear and exponential fades:
An example of an exponential fade-out:
The amplitude decreases to half the original level after 1 second, then after 2 seconds it decreases to half again (1/4 of the original level) and after 3 seconds it drops to 1/8th and so on.
An example of an exponential fade-in:
The amplitude increases to double the original level after 1 second, then after 2 seconds it doubles again (2 x the original level) and after 3 seconds it doubles again.
Note that for an exponential fade the level will never be zero.
An example of a logarithmic fade in:
It takes 1 second for the level to rise from 0 to 0.1, then takes 2 seconds (2 x as long) to rise from 0.1 to 0.2, and 4 seconds (4 x as long) to rise from 0.2 to 0.3… The rate of growth is ever decreasing.
An example of a logarithmic fade out:
It takes 1 second for the level to fall from 1 to 0.9, then takes 1/2 a second to fall from 0.0 to 0.8, and 1/4 of a second to fall from 0.8 to 0.7… The rate of decline is ever increasing.
An interesting snippet from Wikipedia: “In microbiology, the rapidly growing exponential growth phase of a cell culture is sometimes called logarithmic growth”
Trying to write a simple explanation of logarithmic vs exponential.
Exponential seems easy:
For an exponential fade, the change in level is proportional to its current level.
So if you double the level in one time period, then the level will double again in the next time period. If you halve the level in one time period, then the level will halve again in the next time period.
I’m having trouble defining logarithmic, other than saying that it is the inverse of exponential (which is basically what Wikipedia says).
This diagram illustrates the relationship between a logarithmic curve and an exponential curve, but how to describe that simply in words???
For an exponential curve, the amplitude is never zero.
For a logarithmic curve, the amplitude when time = 0 is “undefined”, so for practical purposes a logarithmic fade shape must always be offset in the time domain.
For a logarithmic curve, the “slope” decreases with time, so for a fade-in that means the curve becomes “flatter” with time and for a fade-out the curve becomes “steeper” (more negative) with time.
Coming back to a “more versatile fade” effect;
Is the idea of “slope” easier to understand than “curve”?
Probably not, because of confusion about whether a “flatter” slope downward is greater or less than a “steep” slope downward.
Currently I think the simplest way to describe which direction a curve bends, is in terms of the mid-fade level relative to a linear fade.
These curves have a greater mid-fade level than a linear fade:
These curves have a lower mid-fade level than a linear fade:
(At some point I’d really like to get back to what waxcylinder described as “the simple, quick-win, implementation of the musical fade-out that Steve’s Pro-fade supplies so simply and effortlessly for the user.”)
“Bullet shaped” works for the way that it looks, but unless people apply the fade to a generated tone the visual shape is not that obvious, and, just from the word, what would you imagine a “bullet” fade to sound like?
I like the idea of “cut/boost mid-fade level” because you can “hear” the effect of that. On a fade-in, increase the mid-fade level and it gets louder more quickly, reduce the mid-fade level and the fade initially rises more slowly. On a fade-out, increase the mid-fade level and it stays louder longer, reduce the mid fade level and the level drops more quickly.
The “bullet” fade is like a linear fade that has had the mid-fade level increased.
It’s kind of near enough for me, as your four log/exponential fade in/out examples were saying what I expected, except for two things:
If exponential is proportional and logarithmic is a mirror of exponential, why can’t logarithmic be defined as proportional (or is that inverse-proportional)?
2 ) Why can’t an exponential curve have zero amplitude, and why cannot logarithmic be defined as also never having zero amplitude?
This is just to test your explicatory powers . Fortunately we don’t need any of this for the Manual.
I think it’s probably better than “S” shaped in common use. That is not so good because people think of an upright “S” literally.
I think many can understand linear (until it becomes “bullet-shaped” in Waveform (dB) View).
Are you suggesting this for some of the presets? “Linear with mid boost” etc?
Exponential growth or decay is when the amplitude is proportional to the “rate of change” to the power of “t” (the time period).
The general formula for exponential growth or decay is:
y=x0 * (r ^ t)
That probably seems quite abstract, but it is easier to see if an example is given:
Let’s take the case where the initial amplitude is 0.1 and the rate of growth (increase) is 50% per second.
This means that each second, the amplitude is 50% greater than one second before, or put another way, it is 1.5 x the amplitude in the previous second.
(this is about to get simpler…)
We said that the initial amplitude was 0.1, so at 1 second the amplitude will be “initial amplitude” x 1.5 and at 2 seconds the amplitude will be 1.5 x the amplitude at 1 second…
at 0 seconds the amplitude was 0.1
at 1 second the amplitude will be: 0.1 x 1.5 = 0.15
at 2 seconds the amplitude will be: 0.1 x 1.5 x 1.5 = 0.225
at 3 seconds the amplitude will be: 0.1 x 1.5 x 1.5 x 1.5 = 0.3375
and so on.
Here’s a table with the values rounded to 2 decimal places:
We can see the characteristic “exponential growth” curve appearing, in which the slope gets steeper as time passes.
Let’s take a “fade out” example - exponential decay.
We’ll start with an initial amplitude of 1.0 and a decay rate of 50% per second
This means that each second the amplitude is 50% less than the amplitude the previous second, or put another way, each second the amplitude will be 1/2 the amplitude that it was 1 second before, so:
at 0 seconds the amplitude was 1.0
at 1 second the amplitude will be: 1.0 x 0.5 = 0.5
at 2 seconds the amplitude will be: 1.0 x 0.5 x 0.5 = 0.25
at 3 seconds the amplitude will be: 1.0 x 0.5 x 0.5 x 0.5 = 0.125
If we take an example of “apples” then we can see why the exponential curve never reaches zero:
Using the above example, if we start off with 1 whole apple, and in one second we eat half of it, then we are left with half an apple. If we then eat half of what we have left, then we have 1/4 of an apple left. If we then eat half of that we have 1/8 of an apple remaining. Each second the amount of apple remaining gets smaller until we have a tiny amount of apple left, then we again eat half of that, leaving an even tinier amount. The amount of apple remaining gets smaller and smaller, but we never eat all of it, so the amount of apple remaining never reaches zero.
So what about “logarithmic”?
Logarithmic functions are the inverse of exponential functions. For example, the inverse of “y = a^x” is “y = logax”, which is the same as “x = a^y”.
For a fade, this would be that the amplitude at time=“t” is “log to base rate t”
How to explain that other than in mathematical terms beats me.
OK, but some may like this “fat narrow end” for its own sake. Visually, it looks sufficiently different to be worth keeping.
If you want to add “+ 3 dB” to the name, it will fit the width even less well. I would suggest, drop “Legacy” and “Cross Fade” but mention in the Manual (when released) that this curve is similar/identical to the former “Cross
Fade” but that other curves are recommended for cross fading.
My experience with technically challenged (and other) users is otherwise, but if it is a problem then labelling can solve it (as in the “dumbed down” adjustable fade).
Unfortunately some of your “must have” functionality doesn’t get requested, which is not to say we shouldn’t have it.
The problem I see with the originally submitted plug-in is that it looks clean and simple but once you get beyond changing the “Fade direction” control and clicking OK, it becomes quite hard (IMO) to use and understand.
I’m more than prepared to be convinced on that, but this still comes back to whether we want this to be a simply understood effect that is going to be widely useful, if it turns out to be the only new GUI fade/envelope plug-in that we can ship.
If we want the curve slider to be used I think it needs a better label. “Curve (+/- 1)” conveys nothing to me. +1 what units, and where?
I looked at the Goldwave and Wavosaur fade effects, which do not seem to have a feature to warp the fade mid-point. They do have easy to understand fade presets. Wavosaur has exponential/sinus/square/cubic fade in or fade out (eight presets).
This is Goldwave Fade in:
Yes, I am sure some users think the above fades to -12 dB wherever it starts from, but don’t worry, it doesn’t (and labelling would fix any misapprehension).
This is Goldwave Volume Shaper:
We also have the possibility of describing presets as modified linear [describe modification]. But if people cannot figure what the curve control does, they won’t be using it intelligently as you hope.
“OR” won’t help. The extra choice menu won’t help much without other changes.
I said “respectively” which means “Minimum Gain” cannot be set positive.
Yes, if people are trying to use this as a freeform replacement for Envelope Tool aka Text Envelope. Maybe they won’t, but I think some will.
What would we need? Max -20 to +50 dB, Min -100 to +20 dB? I don’t think permitting these or similar slider values is unreasonable if you can’t even use the sliders except for “Custom” fades.
It may be less reasonable if you could actually use the sliders for all the fade shapes.
User will know they cannot use “Fade In” or “Fade Out” for what they want to do, and this is special “custom” usage in your plug-in, too, so many won’t be going outside 0% to 100% by definition. Even if they try, they have to actually figure out what % or dB they need to get to close to 0 dB hence, sadly, the requests for fading “to” an amplitude.
Yes, and given all the other complaints about Envelope Tool this why I think there is a strong case for a plug-in shipped with Audacity that has flexible “Text Envelope” features.
Apart from “%”, it lacks multiple envelope points (I know you think these inappropriate here and I can understand your reservations) and it lacks any “simple” way to make a partial fade using common preset shapes.
Are these objections solvable by a providing a note in the Manual about the limitations? A non zero linear fade can still have an understandable/recognisable linear shape, can it not?
Not if user wants the default values of the other controls?
I think something like that is the best of the other solutions on offer.
About the “dumbed down” Adjustable Fade, I do see the objection to two boxes for dB and two for %. Another way to have only one control each for Maximum and Minimum would be to have the minimum control as a “dB reduction” control (where a positive dB value means a reduction) and so the maximum as a “dB increase” control.
;control preset "Preset OR Partial fade" choice "Linear,Logarithmic,Eq Power +3 dB,Sine 'S' Curve,Legacy Cross Fade,Partial Fade,Smooth Partial Fade" 0
;control direction "Fade Direction" choice "Fade Up,Fade Down" 0
;control units "Units (dB or % of original level)" choice "dB,Percent" 0
;control max-gain "High Point dB increase or %n(partial fades only)" real "" 0 0 100
;control min-gain "Low Point dB reduction or %n(partial fades only)" real "" 100 0 100
;control curve "Curve (+/- 1)n(partial fades only)" real "" 0 -1 1
Of course (apart from we don’t like “positive reduction values”) , this makes it unintuitive to enter a positive “minimum value”. So it would probably force a text box for custom levels outside the slider range.
Either way I quite like “High Point” and “Low Point” rather than “Maximum” and “Minimum”.
yes it is - there’s some jiggery pokery going on there. Without asking the developers I don’t know exactly what the conditions are for making the fade go to silence, but if it was mathematically accurate it would not go to silence until it got to beyond -1000 dB (or whatever the smallest 32-bit float amplitude is).
I can happily go with “High Point” and “Low Point” rather than “Maximum” and “Minimum”.
Quite. We do not need, nor should we be, entirely driven by functionality that is already “requested” - we should be capable of taking sensible pragmatic decisions about functionality and implementation.
Looking at this again,
doesn’t “High Point” and “Low Point” suggest absolute levels rather than the amount of gain?
For example:
If a fade has:
Maximum Gain = 3 dB
Minimum Gain = -6 dB
then I think that it is clear that:
If it is fading down, the initial level will be boosted by 3 dB and the final level will be reduced by 6 dB.
If it is fading up, the initial level will be reduced by 6 dB and the final level will be boosted by 3 dB.
If the fade has:
High Point = 3dB
Low Point = -6 dB
then does that (wrongly) imply that:
If it is fading down, the initial level will be +3 dBFS and the final level will be -6 dBFS.
If it is fading up, the initial level will be -6 dBFS and the final level will be +3 dBFS.
If you don’t like “Maximum Gain”, how about “Maximum Amplification”? (I have a slight preference for “Gain” rather than “Amplification”).
An alternative approach (as previously suggested) is to use “Initial Gain” and “Final Gain”.
I think that this option is as simple and unambiguous as it could possibly be.
The limitation of “Initial Gain” and “Final Gain” is that it loses the useful feature of being able to easily reverse the direction of the fade as it requires that both “Initial” and “Final” settings are changed. I am willing (with just a little reluctance) to accept “Initial Gain” and “Final Gain” if that means that we can move this thing forward.
Coming up with unambiguous names for different fade “shapes” other than “Linear” is proving to be one of the main stumbling blocks. I think that the simplest way to get round the problem of multiple “curve” names is if we can have one control that “bends” the fade either this way:
or this way:
Of the suggestions so far, I think that “Mid-fade Cut / Boost” is the clearest name for such a control.
If there is a better name, what is it?
Yes, but I did not suggest “High Point” and “Low Point” with no context but as replacements for “Maximum” and “Minimum” (which would be just as bad on their own). So I would have used e.g. “High Point Gain” (or “High Point Increase” if we were going to combine dB and % in one control).
The objective was to make it easier to “visualise” Fade In where the maximum is on the right of the screen.
I was always OK with “Gain” as the word for “amplification”.
Yes, it makes visualisation completely unambiguous.
Yes, as already noted. Is a one-click reverse of fade direction when using custom gains highly useful? From what you’ve suggested before, fade outs are more common than fade ins, and it may be useful or common for the fade out and fade in to have different shapes or even different gains. If that is true, then the balance of argument may still be with “Initial Gain” and “Final Gain”.
If people making custom fades are really going to predominantly do a reverse of fade direction with the same level and shape, then we probably need to keep controls which set maximum and minimum gain, but if so I would strongly prefer “High Point Gain” or some such for the above reasons.
Well it’s far better than “Curve (+/-1)” which was another blocker IMO. I think the main problem for inexperienced users is again “visualising” that a mid fade point will affect the shape.
Would e.g. “Mid Fade shaping Gain” or some such inclusion of “shape” help, also making clearer that all three controls are level controls? However, relevant to using the word “gain”, I still don’t know what the values "-1.25 to + 1.25 "for this slider refer to. Is the reason for not having a dB gain slider to prevent the shaping introducing clipping? What is the difference with the extra 0.25 at either end of the scale which has been added since the last version?
Thanks for your much improved “version 23” - making both gain sliders -96 to +24 dB makes a big improvement for me. I think this version would at a pinch be releasable even now, where the previous one really wasn’t (IMO) .
Is there a better word than “Taper”? In addition to being a bit like jargon, these two links at least seem to suggest that “taper” has logarithmic-only associations:
Can the “Sine” taper be called “Sine (S)” assuming it’s the same as " Sine ‘S’ "in the previous version?
Would “Ignore” be better than “Override” ? (“Ignore” is less like a noun than “Override”).
Are there any more presets that we can reasonably include, bearing in mind the middle-of-the-road editors I pointed out that have numerous presets? I just think that people may be asking (with whatever degree of understanding) about presets for log and exp in particular. I assume this would mean the current “Override” or “Ignore” control would come first, and the “Taper” control would have no effect when “Override” was chosen. We would have to accept a longer list of presets. If done this way, we have four now:
Fade In (linear)
Fade In (sine)
Fade Out (linear)
Fade Out (sine)
One significant advantage of this is that you could choose common Fade In/Out “tapers” with one selection, even if you wanted to change fade direction as well as “taper”. I think another two pairs of Fade In/Fade Out presets would be valuable.
$64000 question - as the price for keeping “% (of original level)” out of “Adjustable Fade” (if you are still convinced it’s a problem), are you able to commit to a revamped text envelope/ other amplification tool with a % choice and multiple envelope points, and offer it in due course for shipping in Audacity? And if that “text envelope” can’t be shipped, reconsider a % choice for “Adjustable Fade”? Nothing has changed my view that % will be a lot easier for many users.