Here’s a function that generates pink noise without filtering. The algorithm is the same as is used in the Audacity pink noise generator.
Unfortunately it is rather slow, but the quality is good.
;;; Generate pink noise
(defun pink (&optional (dur 1.0)(amp 1.0))
(setf pink-class (send class :new '(dur)))
(send pink-class :answer :next '()
'((setq white (1- (* 2 (rrandom))))
(psetq buf0 (+ (* 0.997 buf0)(* 0.029591 white))
buf1 (+ (* 0.985 buf1)(* 0.032534 white))
buf2 (+ (* 0.950 buf2)(* 0.048056 white))
buf3 (+ (* 0.850 buf3)(* 0.090579 white))
buf4 (+ (* 0.620 buf4)(* 0.108990 white))
buf5 (+ (* 0.250 buf5)(* 0.255784 white))
dur (1- dur))
(if (>= dur 0)
(* 0.55 (+ buf0 buf1 buf2 buf3 buf4 buf5))
nil)))
(send pink-class :answer :isnew '(p1)
'((setf dur p1)))
(defun pink-mono (dur amp)
(psetq buf0 0 buf1 0 buf2 0
buf3 0 buf4 0 buf5 0)
(let (obj)
(setf obj (send pink-class :new dur))
(mult amp (snd-fromobject 0 *sound-srate* obj))))
(cond
((or (soundp s)(arrayp s))
(setq dur (* dur len)))
(t (setq dur (* dur *sound-srate*))
(setq len dur)))
(multichan-expand #'pink-mono dur amp))
(setq duration 1)
(setq amplitude 0.5)
(pink duration amplitude)