;;; ;;; A very simple wavetable instrument ;;; (nando, Oct 8 '96) (definstrument dowave (startime duration frequency amplitude harmonics) (multiple-value-bind (beg end) (get-beg-end startime duration) (let* ( ;; create a table valled "waveform" with the harmonics (waveform (load-synthesis-table harmonics (make-table))) ;; create the table lookup unit generator (s (make-table-lookup :frequency frequency :wave-table waveform)) ;; add a simple amplitude envelope... (amp-env (make-env :envelope '(0 0 0.5 1 1 0) :scaler amplitude))) (run (loop for i from beg to end do (outa i (* (env amp-env) (table-lookup s))))))))