Re: Special kind of frequency sweep (chirp)?
Posted: Tue Nov 01, 2011 9:49 pm
And here's a bandwidth limited (no aliasing) saw version:
Code: Select all
(setq low-freq 440) ; initial frequency - Hz
(setq hi-freq 1320) ; final frequency - Hz
(setq initial-amp 0.8) ; initial amplitude on a scale 0 to 1
(setq final-amp 0.1) ; final amplitude on a scale 0 to 1
(setq hz1 (min low-freq hi-freq))
(setq hz2 (float (max low-freq hi-freq)))
(setq iamp (max (min initial-amp 1) 0))
(setq famp (max (min final-amp 1) 0))
(setf *blsaw-table*
(let* ((wave (build-harmonic 1 2048)))
(do ((i 2.0 (setq i (1+ i)))) ; all harmonics
((or (>= (* i hz2)(/ *sound-srate* 2.0))(> i 2048)) wave)
(setq wave (sum wave (mult (/ i) (build-harmonic i 2048)))))
(maketable (mult -0.6 wave))))
(mult (pwlv iamp 1 famp)
(fmosc 0
(sum
hz1
(mult
(- hz1 hz2)
(sum -1 (pwev 1 1 0.01))))*blsaw-table*))