Filter interface bugs

A few of the LADSPA plug-in filters have a bandwidth control. In version 2.1.2 this slider jumps between integer multiples of octaves instead of providing the choice of fractions of an octave. Entering other decimal values in the numeric field does not appear to have the intended effect. This bug applies to the single and triple band parametric filters, and also to the blend parameter of the C* Stanford style JVRev and possibly to other effects.

The high pass and low pass filters don’t work (the ones called high/low pass filter… with seven dots). All that happens is that a message comes up saying which day of the week it is (the correct day, fortunately). Similar problems occur with the Notch filter.

I’m on Fedora 23 and have installed audacity 2.1.2 from the distribution.

The effects with 7 dots may be due to incorrect listings in the pluginregistry.cfg file.
The first thing I would suggest is that you try resetting Audacity back to “clean installation”.
Close Audacity then open the hidden folder ~/.audacity-data and delete the files:
audacity.cfg
pluginregistry.cfg
pluginsettings.cfg

This will reset Audacity back to a clean installation (though any “Chains” that you have created will still exist.
You will need to re-enable any non-standard plug-ins using the “Add/Remove Plug-ins” feature (http://manual.audacityteam.org/o/man/index_of_effects_generators_and_analyzers.html#manage).

Note that most LADSPA plug-ins are now very old and most are unmaintained.
If you are aware of specific LADSPA plug-ins that worked in previous versions of Audacity but do not work in the current version, then we can probably look into that, but if the problem is with the plug-in, then there may not be anything that we can do about it.

Note that a lot of filter types are available as Nyquist plug-ins, and these should work correctly in Audacity. If there are problems with Nyquist plug-ins, then there are probably people on this forum able to fix them. There is a collection of Nyquist plug-ins on the Audacity wiki: http://wiki.audacityteam.org/wiki/Download_Nyquist_Plug-ins

If the single and triple band parametric filters are the ladspa-swh plugins, I cannot reproduce that in 2.1.3-alpha on Ubuntu 14.04. The “Bandwidth (octaves)” slider in “Single band parametric” navigates to fractional values and Plot Spectrum shows a difference between for example 2.02 octaves and 2.936 octaves.

You may want to report the issue to Fedora, or try self-compiling the LV2 port of the swh plugins.


Gale

Thanks Steve, removing those files helped.

Just another minor thing. The built in echo effect used to allow for negative values of the gain parameter or “decay amount”. This is no longer possible. I found that useful and would appreciate having that option.

I presume that was a bug. A negative value would mean “less than no echo” :confused:
I don’t have an old version handy - what did negative values do?

I haven’t read the code, but supposedly it implements a delay of the form y[n] = ax[n] + gy[n-D], where D is the delay in samples and g is the gain factor. It is not uncommon to have negative gain as long as you stay within the range -1 < g < 1.

Gain is generally described either as a ratio in “dB”, or as a linear “multiplication” figure.

In the latter case, a gain of “1” is called “unity gain” and is equivalent to a gain of 0 dB. If you think of gain as a box where you put something in one end and get something out of the other, for unity gain, what comes out is identical to what goes in. If the gain is “0”, then that’s equivalent to multiplying by 0, so you put something into the box and nothing comes out. The Echo effect “decay factor” is the linear gain for each delay loop. With a "decay factor of 1, the echo is identical to the input, just shifted to a later time. With a “decay factor” of 0.5, the echo is half the amplitude of the input. With an input of 0. there is no echo.

This is the relevant code:

history[histPos] = obuf[i] = ibuf[i] + history[histPos] * decay;

where “decay” is read from the “Decay factor” text control:

FloatingPointValidator<double> vldDecay(3, &decay, NUM_VAL_NO_TRAILING_ZEROES);
      vldDecay.SetRange(MIN_Decay, MAX_Decay);
      S.AddTextBox(_("Decay factor:"), wxT(""), 10)->SetValidator(vldDecay);

On Windows in 2.0.0 and 2.0.5, negative values were a “no effect”.

In 2.1.0, the negative sign seems to be ignored, and the effect ran assuming the value was positive.


Gale

Still, after all these years, I consider the possibility to set a negative gain factor in the echo useful in some cases. Please consider it a feature request.

And also, the text box is too small. It shows only two decimals (a third if you scroll), whereas three or four decimals are often necessary for fine-tuning the echo rate. This effect is potentially very useful for comb filter effects, but then the user needs to be able to set all those parameters.

How can you have less than “no echo” ? Isn’t that like having less than no oranges?

Well, echoes are not oranges in my opinion. A negative gain still produces an echo, it’s just that every other cycle of the echo the waveform is flipped upside down. The problem may be that the parameter has a misleading name, which may be why you can sometimes see a polarity switch on echo or comb filter effects. But I would prefer just one gain parameter with values -1 < gain < 1 as I’ve said before. Setting gain to 0 would be the only way to have no echo at all.

OK. That’s reasonable, though I agree that the terminology is problematic / misleading.

There is a way that you can achieve that with the current version of Audacity - not as simple as just setting a negative slider value, but the same result:

  1. Duplicate the track twice so that you have 3 identical tracks
  2. Apply “Echo” and “Invert” to ONE of the tracks
  3. Select all 3 tracks and mix.

Indeed, that’s a very convoluted way of doing it. Besides, you also need to set the delay time in the inverted track to twice as long as in the other tracks, and I think the decay amount would need to be half as much.

No big deal, I resort to Csound for this kind of thing.

No you don’t. Try reading my description again.

No it won’t.

If you are familiar with Csound, then that’s probably going to be easiest for you.
If you want to become familiar with some of Audacity’s more advanced features, you could do it with “Nyquist” (see: Nyquist - Audacity Manual)

I tried it, applying echo to just one track, but what happens is that you get one instance of the original signal followed by echoes that are all inverted. That is not what I described.

This idea of mixing and inverting signals to simulate negative feedback is deceptively simple. Using only positive feedback g in the equation y[n] = x[n] + gy[n-D] I see no other way than to set the echo to 2D in one track and adjust the decay parameter to the correct amount (I realised I got the latter part wrong after some back of an envelope doodling).

And yes, I’m aware of Nyquist and like the idea of extensibility, but for me C++ is the language of choice for audio programming.