Main Page       Index


psah.lsp


 psah.lsp
 Version  1.00  31 October 2004
 Author Steven Jones

 Contact jones57@swbell.net include the word "nyquist" in subject line  

 The contents of this file are released under the terms of the GNU General
 Public License. See the file LICENSE.txt

 A pseudo sample and hold. Uses pwl to approximate sample-and-hold of noise
 source. See sah.lsp for a true ample and hold


function

psah

 (psah frq [dur])
 A simulation of sample-and-hold of noise source.

 frq    - flonum. SH clock rate in Hz.
 dur    - flonum. Duration of result in seconds.
 return - Sound. A signal at *control-srate* with frq*dur random events.  
          The amplitude is in interval (-1,+1)


View the Sourcecode :



;; psah.lsp
;; Version  1.00  31 October 2004
;; Author Steven Jones
;;
;; Contact jones57@swbell.net include the word "nyquist" in subject line  
;;
;; The contents of this file are released under the terms of the GNU General
;; Public License. See the file LICENSE.txt
;;
;; A pseudo sample and hold. Uses pwl to approximate sample-and-hold of noise
;; source. See sah.lsp for a true ample and hold

(provide 'psah)
(current-file "psah")


;; Generate break point list for use by pwl-list
;;

(defun psah:make-pwl-list (frq dur)
  (let (period events p a acc)
    (setf period (/ 1.0 frq))
    (setf events (/ dur period))
    (setf p 0)
    (setf a (rndr -1 1))
    (setf acc (list a 0))
    (dotimes (i (truncate events))
      (setf p (+ p period))
      (push p acc)
      (push a acc)
      (push p acc)
      (setf a (rndr -1 1))
      (push a acc))
    (push dur acc)
    (reverse acc)))


;; @doc function psah
;; (psah frq [dur])
;; A simulation of sample-and-hold of noise source.
;;
;; frq    - flonum. SH clock rate in Hz.
;; dur    - flonum. Duration of result in seconds.
;; return - Sound. A signal at *control-srate* with frq*dur random events.  
;;          The amplitude is in interval (-1,+1)
;;

(defun psah (frq &optional (dur 1))
  (pwl-list (psah:make-pwl-list frq dur)))


Main Page       Index