home *** CD-ROM | disk | FTP | other *** search
- ;; system.lsp -- system-dependent lisp code
-
- ; local definition for play
- ; this one is for Linux:
-
- (if (not (boundp '*default-sf-format*))
- (setf *default-sf-format* snd-head-wave))
-
- (if (not (boundp '*default-sound-file*))
- (compute-default-sound-file))
-
- (if (not (boundp '*default-sf-dir*))
- (setf *default-sf-dir* "./"))
-
- (if (not (boundp '*default-sf-mode*))
- (setf *default-sf-mode* snd-mode-pcm))
-
- (if (not (boundp '*default-sf-bits*))
- (setf *default-sf-bits* 16))
-
- (if (not (boundp '*default-plot-file*))
- (setf *default-plot-file* (strcat (get-user) "-points.dat")))
-
-
- ; FULL-NAME-P -- test if file name is a full path or relative path
- ;
- ; (otherwise the *default-sf-dir* will be prepended
- ;
- (defun full-name-p (filename)
- (or (eq (char filename 0) #\/)
- (eq (char filename 0) #\.)))
-
- ; RELATIVE-PATH-P -- test if filename or path is a relative path
- ;
- (defun relative-path-p (filename)
- (not (eq (char filename 0) #\/)))
-
- (setf *file-separator* #\/)
-
-
- ;; PLAY-FILE - play a sound file
- ;;
- (defun play-file (name)
- ;;
- ;; WARNING: if you invoke an external program to play files,
- ;; but Nyquist uses internal (portaudio) interface to
- ;; play synthesized sound, Nyquist may fail to open the
- ;; sound device while it is playing a sound file and then
- ;; refuse to play anything. -RBD dec05
- ;; (system (strcat "sndplay " (soundfilename name))))
- ;; (system (strcat "play " (soundfilename name) )))
- ;;
- (play (s-read (soundfilename name))))
-
- ;; R - replay last file written with PLAY
- (defun r () (play-file *default-sound-file*))
-
- ;;;; use this old version if you want to use sndplay to play
- ;;;; the result file rather than play the samples as they
- ;;;; are computed. This version does not autonormalize.
- ;; PLAY - write value of an expression to file and play it
- ;;
- ;(defmacro play (expr)
- ; `(prog (specs)
- ; (setf specs (s-save (force-srate *sound-srate* ,expr)
- ; 1000000000 *default-sound-file*))
- ; (r)))
- ;;;;
-
- ; local definition for play
- (defmacro play (expr)
- `(s-save-autonorm ,expr NY:ALL *default-sound-file* :play *soundenable*))
-
- ;; for Linux, modify s-plot (defined in nyquist.lsp) by saving s-plot
- ;; in standard-s-plot, then call gnuplot to display the points.
- ;;
- ;; we also need to save the location of this file so we can find
- ;; nyquist-plot.txt, the command file for gnuplot
- ;;
- (setf *runtime-path* (current-path))
- (display "system.lsp" *runtime-path*)
-
- (setfn standard-s-plot s-plot)
-
- (defun s-plot (s &optional (n 1000) (dur 2.0))
- (let (plot-file)
- (standard-s-plot s n dur) ;; this calculates the data points
- (setf plot-file (strcat *runtime-path* "nyquist-plot.txt"))
- (system (strcat "gnuplot -persist " plot-file))))
-
-