Suggestions for bundled GVerb plugin

#1. and this goes for any plugin that might replace it: Nameofplugin (Reverb) instead of Nameofplugin. in this case GVerb. That way n00bs will know what it is.
#2. Add a drop down box list entitled “Presets:” that changes the settings listed to the ones here:
http://wiki.audacityteam.org/wiki/GVerb#Instant_reverb_settings make one of those presets default when opening Gverb.
#3. if the problem is this is developed by someone else and they don’t want to make usability changes, drop the reverb plugin from those that Audacity carries. It’s just not worth having as it is. There has to be something better if this isn’t fixed for usability.

Kind Regards
T Helms

+1
I think this has been suggested before, and I’m strongly in favour of presets for GVerb.

-1
Despite the horrible defaults, I use GVerb frequently and find it very useful for certain types of reverb effect.
As it is open source there’s no reason why another developer can not add preset support (or at least better default values). Unfortunately I’m not a programmer or I would have done so long ago.

We do not compile GVerb for the Audacity source distro. I could not find the source code nor could I find any non-Audacity based support site. Do you have the source or know someone who does?

I’m not sure if this is the correct version, but it looks like it’s in here:
http://plugin.org.uk/releases/0.4.9/

“Last modified 2004”–talk about stale! Let me look, but it will be tomorrow…

i believe the most up to date version of the plugins is http://plugin.org.uk/releases/0.4.15/

in the download there seems to be code to change the default values at
swh-plugins-0.4.15swh-plugins-0.4.15gverb_1216.c

this appears to describe the window information:

if (gverbDescriptor) {
		gverbDescriptor->UniqueID = 1216;
		gverbDescriptor->Label = "gverb";
		gverbDescriptor->Properties =
		 LADSPA_PROPERTY_HARD_RT_CAPABLE;
		gverbDescriptor->Name =
		 D_("GVerb");
		gverbDescriptor->Maker =
		 "Juhana Sadeharju <kouhia at nic.funet.fi>, LADSPAification by Steve Harris <steve@plugin.org.uk>";
		gverbDescriptor->Copyright =
		 "GPL";
		gverbDescriptor->PortCount = 10;

		port_descriptors = (LADSPA_PortDescriptor *)calloc(10,
		 sizeof(LADSPA_PortDescriptor));
		gverbDescriptor->PortDescriptors =
		 (const LADSPA_PortDescriptor *)port_descriptors;

		port_range_hints = (LADSPA_PortRangeHint *)calloc(10,
		 sizeof(LADSPA_PortRangeHint));
		gverbDescriptor->PortRangeHints =
		 (const LADSPA_PortRangeHint *)port_range_hints;

		port_names = (char **)calloc(10, sizeof(char*));
		gverbDescriptor->PortNames =
		 (const char **)port_names;

I give no apologies for my blatant level of non-knowledgeability, i hope that helps.

This is way out of my comfort zone. I do not have any C compiler installed except Microsoft’s. The Readme is terse at best and I’m not going to devote the time and effort needed to find out if it will even compile, sorry!

can someone tell me who compiled the various plugins for the latest audacity binary packages?

Are they compiled versions that have existed for yonks and are just repackaged each time or are they ones that are compiled freshly for each release?

Does anyone know? I have no idea who packages Audacity for general windows release.

There’s some limitations to what the default values can be.
Each slider can take one of the following values:

0,
100,
minimum,
1/4 scale,
1/2 scale,
3/4 scale,
maximum.

I’ve no idea how to implement presets, but I’ve managed to change the default values and the slider ranges.
I’ve compiled GVerb on Linux, and I think that in Audacity these settings are a lot more useful than the original defaults.

These are the new ranges and defaults that I’ve set (Min, Max, Default):
Room Size (s): 1.0 , 200.0 , 50.75
Reverb Time (s): 0.1 , 10.0 , 2.575
Damping: 0.0 , 1.0 , 0.5
Input Bandwidth: 0.0 , 1.0 , 0.75
Dry Signal Level (dB): -60 , 0.0, 0.0
Early reflection level (dB): -60 , 0.0 , -30
Tail level (dB): -60 , 0.0 , -30

I’ve attempted to make a patch (attached). If I’ve not done it right, please be gentle with me, I’m not a programmer.

I’ve also attached the gverb_1216.so file so that Linux users can (hopefully) test it. To use this file, un-zip it and place it either in the Audacity plug-ins folder, or create a ~/.audacity_files folder an put it in there (Linux only)

I’ve also created a deb file if anyone wants it, but note that I’m not a developer so I may not have done is quite right (though it works on my Ubuntu 10.10 machine.

A couple of points that may cause some disagreement (or not):

The default dry level is 0 dB.
Although I personally like to use the 2 track method (original “dry” track + new copy “wet” track), I think that most users will prefer to just apply the effect to the original track and get something that sounds reasonable.

The maximum reverb time has been cut down from 30 seconds to 10 seconds.
The Audacity wiki recommends 20 seconds for a “Nice hall effect” http://wiki.audacityteam.org/wiki/GVerb
Personally I think that greater than 10 seconds reverb time is rarely useful, and a 10 second reverb can still produce a big hall effect, or “down a sewer” effect.
Because the default cannot be set to “very low”, a 30 second reverb time would only allow the default settings to be 0.1 seconds (far too short for a default) or 15 seconds (far too long for a default). Having a maximum reverb time of 10 seconds allows the default to be set to a far more reasonable 2.575 seconds.

Both of these changes, if adopted, will require a minor update to the wiki page.
gverb_1216.so.tar.bz2 (19.8 KB)
gverb_1216_defaults.patch (2.39 KB)

That’s brilliant Steve!

Great progress.

Is the problem you described here:

There’s some limitations to what the default values can be.
Each slider can take one of the following values:

0,
100,
minimum,
1/4 scale,
1/2 scale,
3/4 scale,
maximum.

fixable by switching to another type of slider or setting the number entry box etc? that sounds like a weird problem, a bug in the LADSPA implementation or a lack of functionality?

Who can I talk to about that?

PS when i set one of those sliders whilst using audacity it remembers the exact setting until i exit?

Hey Steve…

What is this all about (from the README)?:

“You will need libfftw version 2 or 3 installed with 32 bit float support (eg. for FFTW3 use --enable-float), for FFTW recommend you specify the approriate SIMD isntruction set for your CPU with --enable-sse, --enable-sse2, --enable-k7 or --enable-altivec. You can get FFTW from http://www.fftw.org/.

If I have any spare time this next few days I will try to compile on Win7–I just grabbed MinGW.

edit: ignore this


This specific plugin is dated 9/25/2006 in Audacity’s Windows installed version. I do not find any indication of the source code in Audacity’s “trunk”, I suspect it was incorporated directly as a library not compiled specifically by an Audacity Developer. If I can get Steve’s patch to compile on Windows we would have to beg a Mac Developer (on the Audacity Team–I know of no non-Developer Mac compiling person to ask) to test the patch as well. Then we would have to lobby for the patch to be adopted – I will not guess as to the likelihood of that!

I would imagine they would be eager to tweak this very old plugin to juice it for best use.

Audacity will be taken more seriously when it is more usable for beginners in more ways.

I’ve always found GVerb to be lacking. The previous one was better but i think we should try to move forward!

I’ve just tested the default settings as is now and they clip my original before.ogg.

this proves they are not up for the job, the new settings need a little more volume but i think this is a good improvement!

These are the “hints” that LADSPA provides for the settings. These hints do not have to be acted on by the host program, but fortunately Audacity does act on them.

Some info I found on the Internet:

 Hint LADSPA_HINT_DEFAULT_* indicates that in the absence of
>    other information (such as a preset or user preferences) a port
>    should be set to the suggested initial value.

As far as I can tell, GVerb does not supply any other setting to suggest the default (initial) values other than the hints, and as I’m not a programmer I’ve no idea how other values would be implemented.

Building the LADSPA plug-ins does require libfftw, but on Linux I was able to simply install libfftw3 and libfftw3-dev through the package manager.

You’re not using the settings that I’ve set as the default.
“The default dry level is 0 dB”

I think that you have the “dry” level set to minimum (-70 dB on the original G-Verb)

With that particular source sound, the new G-Verb defaults will have little noticeable affect as the source sound is already quite reverby. Try applying the new defaults to a dry voice recording or a click track.

The Mac version is linked from Ardour’s web site.

For Windows users I’d recommend “ANWIDA Soft DX Reverb Light”.

The supplied “configure” script is not compliant with Windows. Someone might be able to cross-compile on Linux for Windows (but not me).

That’s a shame. (and not me either).
There isn’t anything here that helps is there? Google Code Archive - Long-term storage for Google Code Project Hosting.

Yep, that got me compiling. I’m running into a totally strange situation! Your patch would not compile so I am manually doing it step by step until I hit the problem:

@@ -373,8 +373,8 @@
 		port_names[GVERB_DRYLEVEL] =
 		 D_("Dry signal level (dB)");
 		port_range_hints[GVERB_DRYLEVEL].HintDescriptor =
-		 LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MINIMUM;
-		port_range_hints[GVERB_DRYLEVEL].LowerBound = -70;
+		 LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MAXIMUM;
+		port_range_hints[GVERB_DRYLEVEL].LowerBound = -60;
 		port_range_hints[GVERB_DRYLEVEL].UpperBound = 0;

in the line:
port_range_hints[GVERB_DRYLEVEL].LowerBound = -60;

any value between -70 & -63 inclusive compiles but any value -62 and greater (-61, -60 etc.) fails to compile:

error LNK2019: unresolved external symbol _gverb_flush referenced in function _activateGverb gverb_1216.obj LADSPA_plugins-win

Likewise for all the other -70 changes–all have to be -63 or less. I cannot understand why!

How very peculiar. It’s not really a big deal if those ranges go a little lower, it just means that the defaults are a bit more subtle.

I was aiming for a default level in the region of -24 to -30 dB for the “Early reflection” and “Tail” levels.
Will it compile with a value lower than -70, for example -100? If it does then you could try pushing LADSPA_HINT_DEFAULT up from MIDDLE to HIGH for [GVERB_EARLYLEVEL] and [GVERB_TAILLEVEL], which would give defaults of -25 dB.

One thought is that you may need to make similar changes in gverb_1216.xml. It doesn’t seem to make any difference on Linux, but may be important on Windows?

Whatever values are used, I think that the last three sliders should all have the same range.

You are correct Steve I must have set one of the settings incorrectly, your settings are actually extremely subtle and are the sort of thing you’d use to colour vocals.