Need Help Rewriting Effect

Hi, I’ve made a very basic Nyquist code:

(setf *track1* (mult *track* 0))

(dotimes (i 100)
(setf *track1* (sum *track1*
(snd-tapv *track* 1 (mult (lowpass2 (noise) 0.1) 0.5) 10)
))
)

(mult *track1* 0.1)


It is randomly subtracting frequencies from the audio, giving it a kind of whooshing sound.

My problems are:

  1. The code uses many delay lines (100!).
  2. The effect heavily boosts the lower frequencies, which I don’t want to happen.

Is there anything I can change in my code (mainly to solve problem #2)?

You could reduce the amount of bass in each delayed signal:


(defun do-delay(sig)
  ;; Custom delay.
  (let ((vardelay (mult (lowpass2 (noise) 0.1) 0.5)))
    (setf sig (tapv sig 1 vardelay 1.1))
    ;; Reduce low frequencies.
    (eq-lowshelf sig 500 -18)))

(let ((output (s-rest 0))) ; output is a null sound.
  (dotimes (i 100)
    (setf output (sum output (do-delay *track*))))
  ;; Normalize based on first million samples.
  (mult (/ 0.7 (peak output 1000000)) output))