;;; Continuing from my digest of my synth yesterday (check my phlog ..)

(setq *notes*
 (loop for f in '(50 320 190 460)
  for lf = (let ((n 0)) (lambda () (+ f (* 30 (sin (incf n 0.001))))))
  for n = (synote (lambda () 1.5d0) lf (lambda () 0.2d0))
  collect n))

(mp:process-run-function 'beeps-1
 (lambda () (mapc 'funcall *notes*)))

(setq *notes-2*
 (loop for f in '(50 320 190 460)
  for lf = (let ((n 0)) (lambda () (+ f (incf n 0.001))))
  for n = (synote (lambda () 1.5d0) lf (lambda () 0.2))
  collect n))

(mp:process-run-function 'beeps-2
 (lambda () (mapc 'funcall *notes-2*)))

(setq *granul*
 (loop for x from -12 to 12
  for f = (* 440 (expt 2 (/ x -12.0)))
  for n = (note f f 0.1 0.1)
  collect n))

(mp:process-run-function 'beeps-3
 (lambda () (mapc 'funcall *granul*) 
  (mapc 'funcall (reverse *granul*))))

;; Something like this.