version 2.1.3 ----- I’ve messed around with Audacity a little but I’m still just a novice. Is there any effect out there that will EQ a selection over time? For example: Say I have 10 seconds of singing and I want it to start with EQ flat and end up with 0-300 hz range completely pulled out. In my mind it works a lot like the sliding scale/pitch shift effect. You’d have 2 EQ windows, one with start EQ and the other with end EQ and the computer gradually, over the length of the selection, smoothly drops (or raises) the frequencies chosen. I hope that makes sense. Thanks! (Admin - I posted this here because I don’t know if something like this exists or not. Feel free to move this to the Adding features in Feedback and Discussion if that would be appropriate.)
You can do that via the Nyquist Prompt effect Nyquist Prompt - Audacity Manual
Nyquist is a scripting (programming) language for audio that is built into Audacity.
Nyquist “scripts” are written as plain text, and can be run via the Nyquist Prompt, or made into “plug-in” effects. Several Nyquist plug-in effects are included with Audacity (Adjustable Fade, High Pass Filter, Low Pass Filter, Notch Filter, Vocal Reduction and Isolation, and others), and many optional Nyquist plug-ins are available from the Audacity wiki (Missing features - Audacity Support) and from this forum (Nyquist - Audacity Forum).
Here’s a script for the Nyquist Prompt that will apply a sweeping 6 dB per octave (first order) low-pass filter from 20 kHz (assuming that the sample rate is at least 40 kHz) down to 300 Hz:
;version 4
(lp *track* (pwlv (min 20000 (/ *sound-srate* 2)) 1 300))
For a steeper filter, the effect can be repeated, or the filter code can be “nested” like this:
;version 4
(lp
(lp
(lp *track* (pwlv (min 20000 (/ *sound-srate* 2)) 1 300))
(pwlv (min 20000 (/ *sound-srate* 2)) 1 300))
(pwlv (min 20000 (/ *sound-srate* 2)) 1 300))
A slight variation that sweeps logarithmically:
;version 4
(lp
(lp
(lp *track* (pwev (min 20000 (/ *sound-srate* 2)) 1 300))
(pwev (min 20000 (/ *sound-srate* 2)) 1 300))
(pwev (min 20000 (/ *sound-srate* 2)) 1 300))
and a version that has controls and “loops” through the filter:
;version 4
;control start-hz "Initial frequency (kHz)" float "" 20 1 20
;control end-hz "Final frequency (Hz)" float "" 300 0 1000
;control iter "Number of times to repeat the filter" int "" 2 1 10
(let* ((start-hz (min (* 1000 start-hz) (/ *sound-srate* 2)))
(slide (pwev start-hz 1 end-hz)))
(dotimes (i iter *track*)
(setf *track* (lp *track* slide))))
Thanks for the response, Steve! Different example - we’ll say I want to start flat and end up with everything except the 400-500 Hz range lowered by different amounts, would I write a script for one freq. and then copy and paste as many times as needed and adjust the numbers? I can see how, once a script is written, it is easy to apply to anything. However, changing the values seems like it might be pretty time consuming, especially if I’m doing this 10 times with different frequencies and dB lowering amounts. My idea is to take a snare hit (or other drum sounds) and repeat it 16 times. I’m imagining the first hit without change, the second with 80-100 Hz lowered or removed, the third with 140 Hz and below removed and so on, so that by the last hit it will sound pretty close to a hi-hat. Thanks for writing those scripts for me, I tried them all and they worked great! If you don’t think there is a plug-in that does this already I’ll use the prompt. Maybe it won’t be quite as hard as I’m imagining!
Steve’s FilterFade plugin may suffice … https://forum.audacityteam.org/t/high-low-pass-slider-filter/45315/4
[ You’ll probably have to apply compression afterwards ]