Adjustable Fade

The thing that I keep running up against is problems with how to implement presets.

It has been said that we want presets and I agree that they can be very convenient, however the problem is that some presets will by their nature exclude some of the controls.

Examples:

  1. Linear Fade.
    By definition a linear fade is not “curved”.

    \
  2. “Equal Power” means: “the power level when cross-fading non-correlated audio remains at unity gain”.
    This can only apply when
  1. crossfading
  2. the power gain is unity.

Furthermore, for this to occur without a sudden “jump” at the start/end of the crossfade, the fade must be between 0% and 100% of the original level.
This means that we must chose one of:

  1. High/Low point gain do not apply to “Equal Power” presets.
  2. We do not use the term “Equal Power”

It has been said that:
Offering “fixed” presets is too restrictive.
Providing controls that only work on some “presets” is too confusing.
Providing controls that work on all “presets” is too complicated.

I’m up to version 29 now and I can’t find any satisfactory solution within the limits of the Nyquist plug-in interface that satisfies all of these conditions.
Sorry folks but it looks like the end of the line for a “release” version, which probably also blows out the “Pro Fade Out” effect. :frowning:

I’ve not completely given up on this effect. I’ve just given up trying to keep all the people happy all of the time. :stuck_out_tongue:

I’m currently testing a new version which embraces many of the points that have been raised in this thread, so many thanks to everyone that has contributed.
The plug-in is basically finished now and I’m just tweaking it for usability. It will be posted in due course, but as a sneak preview for anyone following this thread, the “mid fade” slider is back, but presets are out.

There has been one significant change to the GUI. “Fade In” is now called “Fade Up” and “Fade Out” is called “Fade Down”.
This is why:
firsttrack000.png
There is a big crescendo (highlighted) that then drops back down again.
I want to make it drop down a bit further, so I used an “S-Curve” to smoothly lower the level by 6 dB (50% of the original)
firsttrack001.png
I then want the next section to come in with more punch, so I select the beginning of the next section:
firsttrack002.png
And I fade in the next section from 180% to 100% of the original volume with a slightly curved fade shape…
firsttrack003.png
Oops - that’s wrong :blush:
I did not want to fade “In” (even though I am fading “into” a new section).
I wanted to fade “down” from 180% to 100%:
firsttrack004.png
That’s better, now the next section kicks in with a lot more “punch”. :mrgreen:

My proposal here is that we should go with one of the later (probably the latest) versions of Steve’s adjustable fade - and release it.

  1. It is much better than anything we have currently.

  2. My perception is that Steve has probably reached the limits what is possible in a Nyquist plug-in.

  3. If we release this formally then we can garner feedback and then use the initial Nyquist implementation as a test-bed prototype for a later C++ implementation to be undertaken by a developer.

===============================================================

Furthermore: if we do decide to abandon this work and not release it - then I would definitely not want this to be a blocker for the release of Pro-fade-out.

PFO by itself is an extremely valuable tool - far superior to the current linear fade-out (or the Cross-fade-out). Our users deserve to be treated to this simple, easy-to-use tool that produces excellent musical results.

I’m minded to agree with Steve that its is not actually necesssary to balance it with a Pro-Fade-In - but Steve now does have one of those if it were thought absolutely necessary.

Peter

Thanks for your comments (and encouragement) waxcylinder. I share your views about this.
However, I do have one final offering for the pot…

This is the version that I have been using (and will probably stick with). I have added a version number for clarity (now up to version 30 and I think that is probably enough to choose from :wink:)

This version does not have everything, but it has a lot more than is currently available. Within the scope of what can be done with a Nyquist plug-in, I think that this version is close to an optimum balance between functionality, simplicity and productive work-flow.

A suggestion as a way of testing usability: set a keyboard short cut to one of the adjustable fades, and when you need to perform a fade effect, use that keyboard shortcut (I’m using F). Use it for long enough to get used to the shortcut, then see what irritates you about the effect.
adjustable-fade-30.ny (4.37 KB)

Well the interface certainly looks understandable ( even to me :sunglasses: ) and not too complicated …

+1 for v30

Peter.

Thanks, Steve. I think that was probably always likely to be the next move. Obviously there is a major loss here compared to the 14 “presets” we were considering (i.e. not really “presets” but fade type choices). This isn’t any more than an off-the cuff comparison - a concern that people will be forced to use the possibly hard to understand mid-fade boost more than needs be. I know you have been trying hard to make “presets” work, and I don’t have time to test and consider it just now.

I’m not sure about fade up/down, I find even your example much easier to think of in terms of a fade out. I doubt that’s a good change.

I agree it looks pretty “spiffy” :slight_smile: and hope that if nothing else the types of control and their order are now settled. I think though if we use the “gain” word for the third control we should use it for the following two controls.


Gale

+1 (nice word Gale …)

+1

I’m minded to agree with this.

I can see Steve’s POV here; the trouble is that without a complete fade to zero (or from zero) then the fade is not really a fade-out (or fade-in).

Peter.

The thing that swung it for me was when I was using it and chose “Fade In” when I actually wanted to fade “down”. The example that I posted was not theoretical, I actually did that :blush:
If I can make that mistake with an effect that I wrote myself, then I’m sure many others who are less familiar with the effect will make that mistake. If someone says “fade it down a bit”, then there is no doubt that they want it to go from a higher level to a lower level.

Funnily enough it doesn’t feel like a major loss when using the effect. If you have an idea of what sort of fade you want it is very quick and easy to achieve it - in some ways easier than trying to work out what the preset names mean.

But unless you are aleady a fade experrt of course it is a big loss … maybe u dunno what type of fade u wanyt… and even if you do, maybe the fade types teach u to pin the shape with the preset label and learn, u know gives u examples to start from… maybe this not good exceptr for the developer that wrote it.

What does “exceptr” mean?

This is a Nyquist plug-in.
Nyquist plug-ins do not have the ability to save user presets, so unfortunately that option is not on the cards.


This effect has not yet been documented so there aren’t any instructions yet, but there will be. The instructions will be simple.
Have you had a go with version 30?
Do you understand what the controls do? If not I’ll be happy to describe them - this will help with the documentation.

@yulac
For a fade effect that supports preset fade shapes I’d recommend “FadeInOut-02.ny” by billw58 https://forum.audacityteam.org/t/simplified-flexible-nyquist-fade-in-and-out-effect/16042/3
This effect does not support “partial” fades. The fade is always either “Fade In” (from silence to the original level), or “Fade Out” (from the original level to silence).

:frowning: look, u annoy me bit with these colors… u say i can do but u changer it. tell me what color you permit, i ask before

i do not like #30. i not want one plug to do taht, another plug this , another that when really it is one plug. isnt list of effects too long now or u must hotcut remember or downlode another piece…

look i interest in this, actually y i join to talk,

i uerstand no presets in nyq uist, i said fade type. it was almost correct i think before u change it all. Y not some fads e type choices AND 25% → 78%? If i wanna exponential fade, choose the type not guess if i need linear or s then -10 or +10 middle boost. u provide look up table for this? maybe not. sorry but sometimes developer needs sense knocking maybe. but than ks for your labors/ :sunglasses:

I’ve done what I can, so now I think it’s time for a vote: https://forum.audacityteam.org/t/new-fade-effects-poll/27218/1

Perhaps we don’t need the “G” word at all.

Start/End as: [ % of Original ]
Start (or end): [ 0 ]
End (or start): [ 100 ]
adjustable-fade-30b.ny (4.36 KB)

I remain disappointed (as originally stated) for much the same reasons that yulac gives. I think his/her points should have been addressed, and I haven’t been able to raise much enthusiasm to test this in the meantime.

You have said we cannot have a linear preset (or fade type - I am not sure which you are saying). I think this was because we have a curve slider? Is that a problem, and what exactly is the “Fade Up/Fade Down”? AFAICT you have not said, but it looks like linear. Why not call it linear, if it is?

As I see it, the mid fade boost modifies the initial fade type, whatever it is. We should not assume many people will even use the mid fade boost slider, I guess most will not. So why deny the planned range of fade types on that basis?

I think you are saying an “equal power” fade type is incompatible with the “gain” boxes. OK, but that is only a naming problem for that type of fade, am I right?

What were the reasons for removing the remaining five pairs of fade types that were being considered?


Gale

I presume that you are referring to:

The purpose of this plug-in is to provide greater flexibility in fade effects, specifically:

  1. The ability to fade between gain levels other than unity.
  2. Fade shapes other than linear.

We have seen that preset fade alone are inadequate for fulfilling either of these requirements.
The best solution that we found for fulfilling these requirements are to provide controls for:

  1. The amount of curvature
  2. The initial and final gain levels

So that is three controls that we cannot do without. Those three controls provide the essential functionality for the effect. Anything else is optional and may be chosen to improve work flow or to provide “short cuts”, but at the expense of making the effect more complicated.

Optional features:

  1. There are fundamentally two “types” of curve in common usage for fading. “Single” curves that curve in one direction only (such as logarithmic and exponential curves) and “double” curves that bend one way, then the other (‘S’ shaped curves). The latter of these is arguably sufficiently common to be classed as a “requirement” rather than an “optional” feature, but if we say that it is optional (non-core feature) then this must be top of the list. There is no other way in Audacity to create an “S” shaped fade other than very fiddly use of the Envelope tool.
  2. A selector for the fade “direction” (up/down or in/out). This control provides significant benefits to work flow and productivity. The ability to change the “direction” of the fade means that settings for “low point”, “high point” and “curve shape” can be reused when switching between as rising fade and a falling fade.
    The above two “high priority” features have been implemented in the one “Fade Type” control.
  3. Choice of “units” for initial and final gain. The obvious (most common / “standard”) way to describe the gain levels is as “dB”, however there have been persistent arguments for using “% of original level”, so this option has been included (and set as the default). A downside to providing a choice is that “% of original” and “dB” cannot be accommodated on one pair of slider controls because the scales are incompatible. For “dB” we want a range of about -96 to +24 (ideally -inf to +24 dB). An equivalent scale as “% of original” would be 0 to 1600 %.
    To work around this problem we can either duplicate the controls so there are two “dB” controls and two “%” controls (two of which are inactive but not greyed out) or we can use text input. My preference is for text input because (a) duplicate controls make the effect “look” more complicated, (b) It is confusing to have controls that apparently “do not work”, (c) To provide the required range with linear scale sliders, commonly used values are bunched up in a small region of the slider, requiring text input to be used in many cases.

So that is the explanation and justification for all of the controls in version 30. It provides all of the essential functionality and the most important “optional” items in as simple and economical way as possible. I think that the visual simplicity encourages experimentation. The minimal number of options means that novice users are less likely to get “lost”, but core functionality is not compromised.

The only question that I see to be left open is, do we wish to include any “additional” features?
If version 30 is “too complicated” already then the answer must be “no”. Additional user facing features will only make the interface more complicated.

Certainly a “preset” for (by way of example) “exponential fade from unity gain to silence” would make it easy to select an xponential fade from unity gain to silence, but at what cost? Including this preset option would mean that at least some of the controls would need to be disabled, but with no visible indication that they are disabled. Also the preset would be of no use at all if the user wanted a “slightly flatter” curve. I am loath to include features that simplify usage for a few specific cases at the expense of complicating the effect for all other cases.


The points raised by yulac have not been ignored. Each point raised has been carefully considered and I have tried not to be swayed by his/her rudeness, personal attacks or off-topic rantings about text colour.


I see little point in having a “linear preset” for two reasons:

  1. For a fade in or fade out (between unity gain and silence) we have the built-in linear fades which are one click operations and process faster than Nyquist can,
  2. The default settings of version 30 provide a linear fade between unity gain and silence.




  • Fade Up: A linear or “simple” curve from a lower gain amount to a higher gain amount. The default is a linear Fade In. The “Mid fade Cut/Boost” will cause the fade to curve so that it is either higher (“Boost”, + values) or lower (“Cut”, negative values) than a linear fade.
  • Fade Down: A linear or “simple” curve from a higher gain amount to a lower gain amount. The default is a linear fade out.
  • S-Curve Up: A “double” curve from a lower gain amount to a higher gain amount. The fade rises slowly at first, then gradually more steeply before levelling out at the end. This type of fade is ideal for smoothly increasing the audio from one level to a higher level.
  • S-Curve Down: A “double” curve from a higher gain amount to a lower gain amount. The fade falls slowly at first, then gradually more steeply before levelling out at the end. This type of fade is ideal for smoothly lowering the audio from one level to a lower level. It is also popular for fading out music.


It is linear when “Mid fade Cut/Boost” is at zero (default).

When “Mid fade Cut/Boost” is greater than zero (“Boost”) it becomes curved so that the fade will either (fading up) rise more steeply initially then gradually level out, or (fade down) fall gradually at first then progressively more steeply. For positive values (Boost), the middle of the fade will have a higher level than a linear fade (like a “logarithmic” curve).

When “Mid fade Cut/Boost” is less than zero (“Cut”) it becomes curved so that the fade will either (fading up) rise slowly initially then gradually more steeply, or (fade down) fall rapidly at first then level out. For negative values (Cut), the middle of the fade will have a lower level than a linear fade (like an “exponential” curve).


If they are happy to use linear fades then there is no need to use the “Mid fade Cut/Boost”.


I disagree. Every other audio editor that I know of provide at least one means to produce different curve shapes. It is an important feature for any audio editor and conspicuously absent from Audacity (other than the frustratingly fiddly Envelope Tool and the misleadingly named and limited “Cross Fade In/Out” effects).
I have been using self authored plug-ins to provide this functionality for years. Many users do not have that choice and must either make do with the currently shipped tools or use a different audio editor. By providing “one” slider I think that we are actively encouraging users to experiment.


I was tempted to stop reading at this point.
I changed the colour of a couple of your early posts so that I could read what you had written. Since the first time that I mentioned about using colours with a reasonable amount of contrast I have not changed the colours of your posts. I don’t consider this point to be worth any more of my time. You may use any colour that you like - if I can’t read what you have written I will ignore it.


I have already answered this. It would be nice to be able to provide more features, such as presets, but there are severe limitations to what can be implemented within the interface of a Nyquist plug-in. I am only able to provide interface features that Nyquist plug-ins support. Where one feature conflicts with another feature it is necessary to make a design decision regarding the best compromise. There is no point in demanding “everything in one plug-in” because Nyquist plug-ins cannot do that. In fact there is no point “demanding” anything because I am not an employee, I am under no obligation to do anything and I do not respond well to coercion.


As already explained, introducing presets necessarily disables some or all of the other control but there is no way in a Nyquist plug-in to indicate which controls are enabled and which are disabled. The result is a plug-in that appears to be broken, and that would not inspire confidence in users.


An “exponential” fade is not one thing. It is a mathematical function with multiple parameters. An exponential fade is any fade in which the amplitude is proportional to a constant to the power of the time value. In order to provide an exponential fade option, assumptions must be made about the scale for amplitude and time and the exponential rate. Choosing different scales or a different rate will result in different curves. How does the programmer know “which” exponential curve you want?


Please think before you write. So far I have ignored your insults but I may not continue to do so in the future.


Thank you.

My preferred version is version 30
version-30.png
From earlier posts it appears that Gale’s preferred version is for 25f:

Why are we getting so hung up on tiny details when we have so little user feedback?
I’ve been working on this for over 2 years and I’m getting very fed up with progress being repeatedly stifled by objections to details when clearly either of these versions are better than what Audacity currently has.

Version 30 has 2 Fade up types and 2 Fade Down types rather than the 12 types in version 25f, but the two “types” have been carefully selected to provide the most useful fade types, so in this sense it is the most simple of the options on the table. I’m aware that Gale is strongly opposed to removing any “established features” in any part of Audacity, therefore I would recommend that we go for version 30 which has less options than version 25f. We can add more options later if required (which is less likely to be seen as “regression” than removing options if they prove to be too confusing).

Let’s get back to the “do-ocracy” that allowed Audacity to exist in the first place and make Audacity even better.

+1 for #30

It’s relatively straightforward and understandable - and it’s quite powerful without being dauntingly complex, so should encourage users to experiment.

We all know it’s not perfect but it would be much better imo to get it formally released so that more folk get a chance to try it - that way we can gather some ueful user feedback to help improve it. It’s certainly better than anything we have already …

Peter.

My preferred version is not 25f. I have said I like the order of controls in #30. My concern is the lack of fade types in #30.


Gale

My apologies for misrepresenting you.
Looking toward a possible version 30c, what fade types would you want added in order to be happy?