Not sure whether this is where I should be posting this, probably not Nyquist since the code seems to be in a dll. Here’s what I’m doing:
We have a wireless mic, used by multiple speakers including guests. Not practical to set the front-end gain for each user. When somebody hits the peak-limiter threshold, the envelope response is horrible - the automatic gain reduction is delayed enough to be aggravating, moreover it limits the average volume of the track due to all the attack peaks. I just discovered the usefulness of Transient Mangler to clean up the front of the envelope. What I really like is that I can apply it once to the whole track (after using Clip Fix wherever needed) instead of fiddling with each event. I’m using Attack settings from -0.75 to -1.0 and a Sustain setting of 0. -1.0 works best on the punches, but has too much effect on portions of the waveform that didn’t have them.
Would it be feasible to add a Threshold parameter that would prevent altering the attack unless a certain amplitude is reached? Words that begin with a plosive would then retain their original profile unless the attack reached the threshold.
The perfect solution would be to recognize the peak-limiter artifact by the initial brief high amplitude followed by a quick reduction to a fairly constant level. That would be a lot to ask for since it’s probably not useful for anything but cleaning up sloppy ALC response. I think the threshold parameter would suffice.
I’m not sure where you want to add this. Do you mean in the “Transient Mangler” plug-in? The Transient Mangler is not a standard part of the Audacity distribution. Where did you get that effect from?
I believe I installed it with version 1.2, since I haven’t added any effects since then except Pop Mute, Fade by DB and anything that came with an update. It might have been in the file: LADSPA_plugins-win-0.4.15.exe. I don’t remember where this came from - I have it on a thumb drive but I don’t have a way to look inside it without running it. It has the same date on the thumb drive as Lame, so I probably found it when I was looking for that.
I copy most of the Plug-Ins folder from each rev to the next and keep the old folder elsewhere in case I want to look for an effect that’s not in the menu. I assume it lives in transient_1206.dll. This is actually the first time I’ve used it. I’d been propagating it because the name looked interesting. Now that I know what it does I’ll try using it to suppress excess reverberation next time I encounter it.
It’s actually worse than the image I happened to grab to send. I got one that I’d transferred from tape, which compressed the signal somewhat.
Limiting the peaks without introducing distortion would be OK if the gain had been constant during recording. I’m always riding the gain, however, and although I try to anticipate (e.g., speaker taking a good breath → bring it down in anticipation), the level varies a lot. The unique identifying feature is the sudden decrease in amplitude once the envelope (not to be confused with Audacity’s envelope points) reaches its peak level. Detecting that is probably not a function that would be useful for anything else, so there wouldn’t be general interest in it. I’d be content with something that works like Transient Mangler except doesn’t start affecting the attack slope until the amplitude reaches a settable threshold. That way, words like “but” and “butter” would retain their plosive character but the slope would be reduced so that the ultimate peak level would be closer to the level after the ALC kicks in. Actually, since the code would be able to look ahead, it could determine in advance what the new peak level should be. It would just be putting a roundish shoulder on the attack.
I just had a brainstorm as I was writing that. Maybe if I reversed the audio and then applied Transient Mangler the result could be useful. Depends on whether the effect continues watching for an attack after the level has risen to the ALC-limited value. The ALC artifact almost looks time-reversed if you expand it. Will try it.
Thanks, Steve! Looks promising. When I use Transient Mangler on the reversed waveform, sometimes it works great but sometimes the ALC’s action was so abrupt that TM can’t get the timing quite right and I get a half-cycle of hi amplitude before (in reversed waveform) the gain reduction. It sounds like a click.
@Steve: Long overdue response to your suggestion of using Limiter. Very useful plugin, does the job quite nicely. I renamed it (and its name) to Lookahead Limiter. I seem to recall some discussion about the name.
BTW, Why do so many effect names end with “…”?
The only negative I have on it is I wish it didn’t clip @ 0dB input, but your writeup does warn us about that. I guess if it were simple to avoid that, it would have been avoided. Pre-processing with Compressor (set Threshold and Ratio both at max and times at minimum) generally takes care of that.
Effects that end with “…” have an interface for user settings.
Effects without “…” have no user interface (for example “Fade In” and “Fade Out”) and they just do something immediately.
The “…” indicates that there is something to follow (a user interface).
Yes, if the input goes over 0 dB the algorithm does very nasty things - worse than hard clipping.
If there is just the odd sample above 0 dB, hard clipping does little harm.
Usually the effect would be used after compression, so that should ensure that the peaks do not exceed 0 dB. If not then the user should Normalize prior to limiting.
The main problem with trying to cope with 0 dB within the effect is that it then becomes very mysterious what the effect is actually doing and can cause surprising effects.