plugins: remove audacity plugin, obsolete
authorPaul Brossier <piem@piem.org>
Sun, 25 Oct 2009 21:03:57 +0000 (22:03 +0100)
committerPaul Brossier <piem@piem.org>
Sun, 25 Oct 2009 21:03:57 +0000 (22:03 +0100)
configure.ac
plugins/Makefile.am
plugins/audacity/Makefile.am [deleted file]
plugins/audacity/README [deleted file]
plugins/audacity/audacity-libnyquist.diff [deleted file]
plugins/audacity/audacity-nyquist.diff [deleted file]
plugins/audacity/plug-ins/Makefile.am [deleted file]
plugins/audacity/plug-ins/aubioonset.ny [deleted file]

index 4eccfc8752219b1350df6ddd06abb58171637f0d..2b6ccca415d6b3771563eea99818e04888367d92 100644 (file)
@@ -266,8 +266,6 @@ AC_OUTPUT([
     interfaces/java/Makefile
     interfaces/java/aubio/Makefile
     plugins/Makefile
-    plugins/audacity/Makefile
-    plugins/audacity/plug-ins/Makefile
     plugins/wavesurfer/Makefile
     plugins/puredata/Makefile
     doc/Makefile
index 524cf402ee4f2c339dab8ff87a998bf063a23bc1..df07d862d8edac9964d1302164c9420decc4fd86 100644 (file)
@@ -1,4 +1,4 @@
 if PUREDATAFOUND
 PUREDATA = puredata
 endif
-SUBDIRS = wavesurfer audacity ${PUREDATA} 
+SUBDIRS = wavesurfer ${PUREDATA} 
diff --git a/plugins/audacity/Makefile.am b/plugins/audacity/Makefile.am
deleted file mode 100644 (file)
index e53603a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBDIRS = plug-ins
-EXTRA_DIST = README  audacity-libnyquist.diff  audacity-nyquist.diff
diff --git a/plugins/audacity/README b/plugins/audacity/README
deleted file mode 100644 (file)
index 3bda145..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This directory contains 2 patches for audacity and a nyquist plugin.
-
-The patch audacity-nyquist.diff is made from the current nyquist release
-source. It's here to activate s-save function which seem to have been left out
-of the audacity source tree.
-
-The other patch is a modification i made to nyx so that the 'system' command
-works and an addition to xlisp to have the 'ftoa' and 'atof' functions.
-
-The nyquist plugin aubioonset simply saves the current selection to a file and
-calls the aubioonset program on this file. The text file obtained is then read,
-converted to a list of labels and unlinked.
-
-Starting a patched audacity from the directory above plug-ins should add an
-entry 'Onset detection...' to the Process menu.
diff --git a/plugins/audacity/audacity-libnyquist.diff b/plugins/audacity/audacity-libnyquist.diff
deleted file mode 100644 (file)
index 5af8f33..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
---- audacity-1.2.1.orig/lib-src/libnyquist/nyx/nyx.c
-+++ audacity-1.2.1/lib-src/libnyquist/nyx/nyx.c
-@@ -620,8 +620,14 @@
- {
-    if (moreargs()) {
-       unsigned char *cmd;
-+      int retval;
-       cmd = (unsigned char *)getstring(xlgastring());
--      fprintf(stderr, "Will not execute system command: %s\n", cmd);
-+      //fprintf(stderr, "Will not execute system command: %s\n", cmd);
-+      system(cmd);
-+      if (retval != 0) 
-+              fprintf(stderr, 
-+              "the command \n %s \n exited with the error %d\n", 
-+              cmd, retval);
-    }
-    return s_true;
- }
---- audacity-1.2.1.orig/lib-src/libnyquist/xlisp/xlftab.c
-+++ audacity-1.2.1/lib-src/libnyquist/xlisp/xlftab.c
-@@ -83,6 +83,7 @@
-     xgetlambda(void),xmacroexpand(void),x1macroexpand(void),
-     xinfo(void),                                      //Added by Ning Hu      Apr.2001
-     xsetdir(void),                                    //Added by Ning Hu      May.2001
-+    xatof(void), xftoa(void),                         //Added by PiemBrossier Jul.2004
-     xtrace(void),xuntrace(void),xprofile(void),xstrsearch(void), xsetupconsole(void);
- #endif
-@@ -452,8 +453,9 @@
- {     "WRITE-INT",                    S, xwrint               }, /* 292 */
- {     "WRITE-FLOAT",                  S, xwrfloat             }, /* 293 */
- {     "INFO",                         S, xinfo                }, /* 294 */ /* Ning Hu, Apr 2001 */
--{     NULL,                           S, xnotimp              }, /* 295 */
--{     NULL,                           S, xnotimp              }, /* 296 */
-+
-+{     "ATOF",                         S, xatof                }, /* 295 */ /* Paul Brossier <piem@altern.org> */
-+{     "FTOA",                         S, xftoa                }, /* 296 */ /* Jul. 2004 */ 
- {     NULL,                           S, xnotimp              }, /* 297 */
- {     NULL,                           S, xnotimp              }, /* 298 */
- {     NULL,                           S, xnotimp              }, /* 299 */
---- audacity-1.2.1.orig/lib-src/libnyquist/xlisp/xlstr.c
-+++ audacity-1.2.1/lib-src/libnyquist/xlisp/xlstr.c
-@@ -16,6 +16,11 @@
- #define TLEFT 1
- #define TRIGHT        2
-+/* on the NeXT, atof is a macro in stdlib.h */
-+#ifndef atof
-+extern double atof();
-+#endif
-+
- /* external variables */
- extern LVAL k_start,k_end,k_1start,k_1end,k_2start,k_2end;
- extern LVAL s_true;
-@@ -555,3 +560,41 @@
-     return (icmp ? s_true : NIL);
- }
-+/* functions added by Paul Brossier <piem@altern.org> */
-+LVAL xatof() /* converts a string to a float */
-+{
-+      if (moreargs()) {
-+              unsigned char *astring = NULL;
-+              float afloat;
-+              astring = (unsigned char *)getstring(xlgastring());
-+              xllastarg();
-+              afloat = atof(astring);
-+              return cvflonum(afloat);
-+      } else 
-+              return NIL;
-+}
-+
-+LVAL xftoa() /* converts a float to a string */
-+{
-+      LVAL arg;
-+      FIXTYPE ival=0;
-+      FLOTYPE fval=0;
-+      if (moreargs()) {
-+              /* get the first argument */
-+              arg = xlgetarg();
-+              xllastarg();
-+
-+              /* set the type of the first argument */
-+              if (fixp(arg)) {
-+                      ival = getfixnum(arg);
-+                      snprintf(buf,STRMAX,"%d",ival);
-+              }
-+              else if (floatp(arg)) {
-+                      fval = getflonum(arg);
-+                      snprintf(buf,STRMAX,"%f",fval);
-+              }
-+
-+              return cvstring(buf);
-+      } else 
-+              return NIL;
-+}
diff --git a/plugins/audacity/audacity-nyquist.diff b/plugins/audacity/audacity-nyquist.diff
deleted file mode 100644 (file)
index 280a16c..0000000
+++ /dev/null
@@ -1,631 +0,0 @@
---- audacity-1.2.1.orig/nyquist/misc.lsp
-+++ audacity-1.2.1/nyquist/misc.lsp
-@@ -74,19 +74,3 @@
-                   (setf fullpath ":")))
-            fullpath)
-           (t nil))))
--          
--;; real-random -- pick a random real from a range
--;;
--(defun real-random (from to)
--  (cond ((= from to) from)
--          (t
--         (+ from
--           (* (random 10000)
--              0.0001
--              (- to from))))))
--
--;; power -- raise a number to some power x^y
--;;
--(defun power (x y)
--  (exp (* (log (float x)) y)))
--  
---- audacity-1.2.1.orig/nyquist/nyinit.lsp
-+++ audacity-1.2.1/nyquist/nyinit.lsp
-@@ -26,7 +26,7 @@
- (setf *WATCH* NIL)
- (format t "~%Nyquist -- A Language for Sound Synthesis and Composition~%")
--(format t "    Copyright (c) 1991-2003 by Roger B. Dannenberg~%")
-+(format t "    Copyright (c) 1991,1992,1995 by Roger B. Dannenberg~%")
- (format t "    Version 2.29~%~%")
- (setf *gc-flag* t)
---- audacity-1.2.1.orig/nyquist/nyquist.lsp
-+++ audacity-1.2.1/nyquist/nyquist.lsp
-@@ -6,10 +6,7 @@
- ;;;   ###########################################################
- ;;;
--;;;   
--;;;   Modifications for using Nyquist within Audacity
--;;;   by Dominic Mazzoni
--;;;
-+(load "fileio.lsp")
- (prog ()
-    (setq lppp -12.0) (setq lpp -9.0)  (setq lp -6.0)    (setq lmp -3.0)
-@@ -217,7 +214,7 @@
-     (cond ((> hz (/ *SOUND-SRATE* 2))
-            (format t "Warning: buzz nominal frequency (~A hz) will alias at current sample rate (~A hz).\n"
-                    hz *SOUND-SRATE*)))
--    (setf n (min n 1)) ; avoid divide by zero problem
-+    (setf n (max n 1)) ; avoid divide by zero problem
-     (scale-db (get-loud)
-               (snd-buzz n                   ; number of harmonics
-                         *SOUND-SRATE*       ; output sample rate
-@@ -344,6 +341,7 @@
-     d                 ; duration
-     phase)))          ; phase
-+
- ;; FMLFO -- like LFO but uses frequency modulation
- ;;
- (defun fmlfo (freq &optional (sound *SINE-TABLE*) (phase 0.0))
-@@ -358,6 +356,7 @@
-           (t
-            (error "frequency must be a number or sound")))))
-+
- ;; OSC - table lookup oscillator
- ;;
- (defun osc (pitch &optional (duration 1.0) 
-@@ -761,6 +760,51 @@
-       ,s))
-+;; COMPUTE-DEFAULT-SOUND-FILE -- construct and set *default-sound-file*
-+;;
-+;; (this is harder than it might seem because the default place for
-+;;  sound files is in /tmp, which is shared by users, so we'd like to
-+;;  use a user-specific name to avoid collisions)
-+;;
-+(defun compute-default-sound-file () 
-+  (let (inf user extension)
-+      ; the reason for the user name is that if UserA creates a temp file,
-+      ; then UserB will not be able to overwrite it. The user name is a
-+      ; way to give each user a unique temp file name. Note that we don't
-+      ; want each session to generate a unique name because Nyquist doesn't
-+      ; delete the sound file at the end of the session.
-+    (system "echo $USER > ny_username.tmp")
-+    (setf inf (open "ny_username.tmp"))
-+    (cond (inf
-+           (setf user (read inf))
-+       (close inf)
-+       (system "rm ny_username.tmp"))
-+      (t      ; must not be unix, make up a generic name
-+       (setf user 'nyquist)))
-+    (cond ((null user)           
-+       (format t 
-+"Please type your user-id so that I can construct a default 
-+sound-file name.  To avoid this message in the future, add
-+this to your .login file:
-+    setenv USER <your id here>
-+or add this to your init.lsp file:
-+    (setf *default-sound-file* \"<your filename here>\")
-+    (setf *default-sf-dir* \"<full pathname of desired directory here>\")
-+
-+Your id please: ")
-+       (setf user (read))))
-+    ; now compute the extension based on *default-sf-format*
-+    (cond ((= *default-sf-format* snd-head-AIFF)
-+           (setf extension ".aif"))
-+          ((= *default-sf-format* snd-head-Wave)
-+           (setf extension ".wav"))
-+          (t
-+           (setf extension ".snd")))
-+    (setf *default-sound-file* 
-+      (strcat (string-downcase (symbol-name user)) "-temp" extension))
-+    (format t "Default sound file is ~A.~%" *default-sound-file*)))
-+
-+
- ;; CONTROL-WARP -- apply a warp function to a control function
- ;; 
- (defun control-warp (warp-fn control &optional wrate)
-@@ -792,6 +836,9 @@
-          (snd-srate sound)
-          (local-to-global 0) *START* *STOP* (db-to-linear (get-loud))))
-+; (s-plot (progv '(*TIME* *START*)'(0.0 0.5)(cue (snd-sine 20 1 100 1)))1000)
-+;(s-plot(progv'(*TIME* *START*)'(0.0 0.5)(cue(cue (snd-sine 20 1 100 1))))1000)
-+
- ;; (sound sound)
- ;;    Same as (cue sound), except also warps the sound.
- ;; Note that the *WARP* can change the pitch of the
-@@ -861,6 +908,13 @@
- (setfn control sound)
-+;; (cue-file string)
-+;;    Loads a sound file with the given name, returning a sound which is
-+;; transformed to the current environment.
-+;(defun cue-file (name)
-+;   (cue (snd-load  name *SOUND-SRATE*)))
-+
-+
- ;; (env t1 t2 t4 l1 l2 l3 &optional duration)
- ;; Creates a 4-phase envelope.
- ;;    tN is the duration of phase N, and lN is the final level of
-@@ -1327,6 +1381,54 @@
- ; 
- (load "seq" :verbose NIL)
-+;(defmacro with%environment (env &rest expr)
-+;  `(progv ',*environment-variables* ',env ,@expr))
-+; 
-+;(defmacro seq (&rest list)
-+;  (display "seq" list)
-+;  (cond ((null list)
-+;         (snd-zero *time* *sound-srate*))
-+;        ((null (cdr list))
-+;         (car list))
-+;     ((null (cddr list))
-+;      `(let* ((first%sound ,(car list))
-+;              (s%rate (snd-srate first%sound)))
-+;         (snd-seq first%sound
-+;                  #'(lambda (t0) 
-+;                      (with%environment
-+;                        ,(the%environment) (setf *time* t0)     
-+;                        (force-srate s%rate ,(cadr list)))))))
-+;     (t
-+;      `(let* ((first%sound ,(car list))
-+;              (s%rate (snd-srate first%sound)))
-+;         (snd-seq first%sound
-+;                  #'(lambda (t0)
-+;                      (format t "snd-seq applying lambda")
-+;                      (with%environment
-+;                        ,(the%environment) (setf *time* t0)     
-+;                        (seq (force-srate s%rate ,(cadr list))
-+;                             ,@(cddr list))))) ))))
-+; 
-+; 
-+;(defmacro seqrep (pair sound)
-+;  `(let ((,(car pair) 0)
-+;         ($loop-count (1- ,(cadr pair))))
-+;     (cond ((< 0 $loop-count)
-+;            (seqrep2 ,(car pair) ,sound))
-+;           ((= 0 $loop-count)
-+;            ,sound)
-+;           (t
-+;            (snd-zero *time* *sound-srate*)))))
-+; 
-+; 
-+;(defmacro seqrep2 (var sound)
-+;  `(cond ((< ,var $loop-count)
-+;          (seq (prog1 ,sound (setf ,var (1+ ,var)))
-+;               (seqrep2 ,var ,sound)))
-+;         ((= ,var $loop-count)
-+;          ,sound)))
-+
-+
- ; set-logical-stop - modify the sound and return it, time is shifted and
- ;                      stretched
- (defun set-logical-stop (snd tim)
-@@ -1532,4 +1634,4 @@
- (defun osc-pulse (hz bias &optional (compare-shape *step-shape*))
-   (compare bias (osc-tri hz) compare-shape))
--(setf NY:ALL 1000000000)
-+
---- audacity-1.2.1.orig/nyquist/seq.lsp
-+++ audacity-1.2.1/nyquist/seq.lsp
-@@ -176,21 +176,18 @@
-              (error (format nil "Negative stretch factor in TIMED-SEQ: ~A" event)))
-             (t
-              (setf start-time (car event)))))
--    (cond ((null score) (s-rest 0))
--          (t
--           (at (caar score)
--               (seqrep (i (length score))
--                 (cond ((cdr score)
--                        (let (event)
--                          (prog1
--                            (set-logical-stop
--                              (stretch (cadar score)
--                              (setf event (eval (caddar score))))
--                            (- (caadr score) (caar score)))
--;                           (display "timed-seq" (caddar score) (local-to-global 0))
--                            (setf score (cdr score)))))
--                         (t
--                          (stretch (cadar score) (eval (caddar score)))))))))))
-+    (at (caar score)
-+        (seqrep (i (length score))
-+           (cond ((cdr score)
-+                  (let (event)
-+                   (prog1 
-+                    (set-logical-stop (stretch (cadar score) 
-+                                               (setf event (eval (caddar score))))
-+                                      (- (caadr score) (caar score)))
-+;                   (display "timed-seq" (caddar score) (local-to-global 0))
-+                    (setf score (cdr score)))))
-+                 (t
-+                  (stretch (cadar score) (eval (caddar score)))))))))
---- audacity-1.2.1.orig/nyquist/system.lsp
-+++ audacity-1.2.1/nyquist/system.lsp
-@@ -1,23 +1,18 @@
--; system.lsp -- machine/system-dependent definitions
-+;; system.lsp -- system-dependent lisp code
--;; default behavior is to call SETUP-CONSOLE to get large white typescript
--;;
--;; set *setup-console* to nil in your personal init.lsp to override this behavior 
--;; (this may be necessary to work with emacs)
--;;
--(if (not (boundp '*setup-console*)) (setf *setup-console* t))
--(if *setup-console* (setup-console))
-+; local definition for play
-+;  this one is for Linux:
- (setf ny:bigendianp nil)
- (if (not (boundp '*default-sf-format*))
--    (setf *default-sf-format* snd-head-Wave))
-+    (setf *default-sf-format* snd-head-wave))
--;(if (not (boundp '*default-sound-file*))
--;    (setf *default-sound-file* "temp.wav"))
-+(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-dir*))
-+    (setf *default-sf-dir* "./"))
- (if (not (boundp '*default-sf-mode*))
-     (setf *default-sf-mode* snd-head-mode-pcm))
-@@ -25,25 +20,8 @@
- (if (not (boundp '*default-sf-bits*))
-     (setf *default-sf-bits* 16))
--;(if (not (boundp '*default-plot-file*))
--;    (setf *default-plot-file* "points.dat"))
--
--;(if (not (boundp '*plotscript-file*))
--;    (setf *plotscript-file* "sys/unix/rs6k/plotscript"))
--
--; local definition for play
--;(defmacro play (expr)
--;  `(s-save-autonorm ,expr NY:ALL *default-sound-file* :play *soundenable*))
--
--
--;(defun r ()
--;  (s-save (s-read *default-sound-file*) NY:ALL "" :play t)
--;)
--
--
--; PLAY-FILE -- play a file
--;(defun play-file (name)
--;  (s-save (s-read name) NY:ALL "" :play t))
-+(if (not (boundp '*default-plot-file*))
-+    (setf *default-plot-file* "points.dat"))
- ; FULL-NAME-P -- test if file name is a full path or relative path
-@@ -51,67 +29,52 @@
- ; (otherwise the *default-sf-dir* will be prepended
- ;
- (defun full-name-p (filename)
--  (or (eq (char filename 0) #\\)
--      (eq (char filename 0) #\.)
--      (and (> (length filename) 2)
--         (both-case-p (char filename 0))
--       (equal (char filename 1) #\:))))
-+  (or (eq (char filename 0) #\/)
-+      (eq (char filename 0) #\.)))
--(setf *file-separator* #\\)
--;(defun ny:load-file () (load "*.*"))
--;(defun ny:reload-file () (load "*"))
-+(setf *file-separator* #\/)
--; save the standard function to write points to a file
--;
--;(setfn s-plot-points s-plot)
-+;; PLAY-FILE - play a sound file
-+;;
-+(defun play-file (name)
-+;;  (system (strcat "sndplay " (soundfilename name))))
-+  (system (strcat "play " (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)))
-+;;;;
--;(defun array-max-abs (points)
--;  (let ((m 0.0))
--;        (dotimes (i (length points))
--;          (setf m (max m (abs (aref points i)))))
--;        m))
--
--;(setf graph-width 600)
--;(setf graph-height 220)
--
--;(defun s-plot (snd &optional (n 600))
--;  (show-graphics)
--;  (clear-graphics)
--;  (cond ((soundp snd)
--;               (s-plot-2 snd n (/ graph-height 2) graph-height))
--;              (t
--;               (let ((gh (/ graph-height (length snd)))
--;                     hs)
--;                 (dotimes (i (length snd))
--;                   (setf hs (s-plot-2 (aref snd i) n (+ (/ gh 2) (* i gh)) gh hs)))))))
--;
--;
--;(defun s-plot-2 (snd n y-offset graph-height horizontal-scale)
--;  (prog ((points (snd-samples snd n))
--;                   maxpoint horizontal-scale vertical-scale)
--;    (setf maxpoint (array-max-abs points))
--;    (moveto 0 y-offset)
--;    (lineto graph-width y-offset)
--;    (moveto 0 y-offset)
--;    (cond ((null horizontal-scale)
--;               (setf horizontal-scale (/ (float graph-width) (length points)))))
--;    (setf vertical-scale (- (/ (float graph-height) 2 maxpoint)))
--;    (dotimes (i (length points))
--;      (lineto (truncate (* horizontal-scale i))
--;              (+ y-offset (truncate (* vertical-scale (aref points i))))))
--;    (format t "X Axis: ~A to ~A (seconds)\n" (snd-t0 snd) (/ (length points) (snd-srate snd)))
--;    (format t "Y Axis: ~A to ~A\n" (- maxpoint) maxpoint)
--;    (format t "~A samples plotted.\n" (length points))
--;    (return horizontal-scale)
--;    ))
--;
--; S-EDIT - run the audio editor on a sound
--;
--;(defmacro s-edit (&optional expr)
--;  `(prog ()
--;         (if ,expr (s-save ,expr 1000000000 *default-sound-file*))
--;         (system (format nil "audio_editor ~A &" 
--;                         (soundfilename *default-sound-file*)))))
-+; 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)
-+  (let (plot-file)
-+    (standard-s-plot s) ;; this calculates the data points
-+    (setf plot-file (strcat *runtime-path* "nyquist-plot.txt"))
-+    (system (strcat "gnuplot -persist " plot-file))))
---- audacity-1.2.1.orig/nyquist/fileio.lsp
-+++ audacity-1.2.1/nyquist/fileio.lsp
-@@ -0,0 +1,204 @@
-+;; s-save -- saves a file
-+(setf NY:ALL 1000000000)      ; 1GIG constant for maxlen
-+(defmacro s-save (expression &optional (maxlen NY:ALL) filename 
-+                  &key (format '*default-sf-format*)
-+                  (mode '*default-sf-mode*) (bits '*default-sf-bits*)
-+                  (endian NIL) ; nil, :big, or :little -- specifies file format
-+                  (play nil))
-+  `(let ((ny:fname ,filename)
-+         (ny:maxlen ,maxlen)
-+         (ny:endian ,endian)
-+         (ny:swap 0))
-+     ; allow caller to omit maxlen, in which case the filename will
-+     ; be a string in the maxlen parameter position and filename will be null
-+     (cond ((null ny:fname)
-+                 (cond ((stringp ny:maxlen)
-+                            (setf ny:fname ny:maxlen)
-+                            (setf ny:maxlen NY:ALL))
-+                           (t
-+                            (setf ny:fname *default-sound-file*)))))
-+     
-+     (cond ((equal ny:fname "")
-+                 (cond ((not ,play)
-+                       (format t "s-save: no file to write! play option is off!\n"))))
-+           (t
-+            (setf ny:fname (soundfilename ny:fname))
-+            (format t "Saving sound file to ~A~%" ny:fname)))
-+     (cond ((eq ny:endian :big)
-+            (setf ny:swap (if ny:bigendianp 0 1)))
-+           ((eq ny:endian :little)
-+            (setf ny:swap (if ny:bigendianp 1 0))))
-+     (snd-save ',expression ny:maxlen ny:fname ,format ,mode ,bits ny:swap ,play)))
-+
-+(defmacro s-save-autonorm (expression &rest arglist)
-+  `(let ((peak (s-save (scale *autonorm* ,expression) ,@arglist)))
-+     (autonorm-update peak)))
-+
-+;; The "AutoNorm" facility: when you play something, the Nyquist play
-+;; command will automatically compute what normalization factor you
-+;; should have used. If you play the same thing again, the normalization
-+;; factor is automatically applied.
-+;;
-+;; Call AUTONORM-OFF to turn off this feature, and AUTONORM-ON to turn
-+;; it back on.
-+;;
-+;; *autonorm-target* is the peak value we're aiming for (it's set below 1
-+;; so allow the next signal to get slightly louder without clipping)
-+;;
-+(setf *autonorm-target* 0.9)
-+
-+(defun autonorm-on ()
-+  (setf *autonorm* 1.0)
-+  (setf *autonorm-previous-peak* 1.0)
-+  (setf *autonormflag* t)
-+  (format t "AutoNorm feature is on.~%"))
-+
-+(if (not (boundp '*autonormflag*)) (autonorm-on))
-+
-+(defun autonorm-off ()
-+  (setf *autonormflag* nil)
-+  (setf *autonorm* 1.0)
-+  (format t "AutoNorm feature is off.~%"))
-+
-+(defun autonorm-update (peak)
-+  (cond ((and *autonormflag* (> peak 0.0))
-+           (setf *autonorm-previous-peak* (/ peak *autonorm*))
-+         (setf *autonorm* (/ *autonorm-target* *autonorm-previous-peak*))
-+         (format t "AutoNorm: peak was ~A,~%" *autonorm-previous-peak*)
-+         (format t "     peak after normalization was ~A,~%" peak)
-+         (format t "     new normalization factor is ~A~%" *autonorm*)
-+         *autonorm-previous-peak*
-+        )
-+        (t peak)
-+  ))
-+
-+;; s-read -- reads a file
-+(defun s-read (filename &key (time-offset 0) (srate *sound-srate*)
-+        (dur 10000.0) (nchans 1) (format *default-sf-format*)
-+        (mode *default-sf-mode*) (bits *default-sf-bits*) (endian NIL))
-+  (let ((swap 0))
-+    (cond ((eq endian :big)
-+           (setf swap (if ny:bigendianp 0 1)))
-+          ((eq endian :little)
-+           (setf swap (if ny:bigendianp 1 0))))
-+    (snd-read (soundfilename filename) time-offset
-+            (local-to-global 0) format nchans mode bits swap srate
-+            dur)))
-+
-+;; SF-INFO -- print sound file info
-+;;
-+(defun sf-info (filename)
-+  (let (s format channels mode bits srate dur flags)
-+    (format t "~A:~%" (soundfilename filename))
-+    (setf s (s-read filename))
-+    (setf format (car *rslt*))
-+    (setf channels (cadr *rslt*))
-+    (setf mode (caddr *rslt*))
-+    (setf bits (cadddr *rslt*))
-+    (setf *rslt* (cddddr *rslt*))
-+    (setf srate (car *rslt*))
-+    (setf dur (cadr *rslt*))
-+    (setf flags (caddr *rslt*))
-+    (format t "Format: ~A~%" 
-+            (nth format '("none" "AIFF" "IRCAM" "NeXT" "Wave")))
-+    (cond ((setp (logand flags snd-head-channels))
-+           (format t "Channels: ~A~%" channels)))
-+    (cond ((setp (logand flags snd-head-mode))
-+           (format t "Mode: ~A~%"
-+                   (nth mode '("ADPCM" "PCM" "uLaw" "aLaw" "Float" "UPCM")))))
-+    (cond ((setp (logand flags snd-head-bits))
-+           (format t "Bits/Sample: ~A~%" bits)))
-+    (cond ((setp (logand flags snd-head-srate))
-+           (format t "SampleRate: ~A~%" srate)))
-+    (cond ((setp (logand flags snd-head-dur))
-+           (format t "Duration: ~A~%" dur)))
-+    ))
-+
-+;; SETP -- tests whether a bit is set (non-zero)
-+;
-+(defun setp (bits) (not (zerop bits)))
-+
-+;; SOUNDFILENAME -- add default directory to name to get filename
-+;;
-+(defun soundfilename (filename)
-+  (cond ((= 0 (length filename))
-+         (break "filename must be at least one character long" filename))
-+        ((full-name-p filename))
-+        (t
-+         ; if sf-dir nonempty and does not end with filename separator,
-+         ; append one
-+         (cond ((and (< 0 (length *default-sf-dir*))
-+                     (not (eq (char *default-sf-dir* 
-+                                    (1- (length *default-sf-dir*)))
-+                              *file-separator*)))
-+                (setf *default-sf-dir* (strcat *default-sf-dir* (string *file-separator*)))
-+                (format t "Warning: appending \"~A\" to *default-sf-dir*~%"
-+                        *file-separator*)))
-+         (setf filename (strcat *default-sf-dir* (string filename)))))
-+  filename)
-+
-+
-+(setfn s-read-format car)
-+(setfn s-read-channels cadr)
-+(setfn s-read-mode caddr)
-+(setfn s-read-bits cadddr)
-+(defun s-read-swap (rslt) (car (cddddr rslt)))
-+(defun s-read-srate (rslt) (cadr (cddddr rslt)))
-+(defun s-read-dur (rslt) (caddr (cddddr rslt)))
-+(defun s-read-byte-offset (rslt) (car (cddddr (cddddr rslt))))
-+(defun round (x) (truncate (+ 0.5 x)))
-+
-+;; change defaults for PLAY macro:
-+(setf *soundenable* t)
-+(defun sound-on () (setf *soundenable* t))
-+(defun sound-off () (setf *soundenable* nil))
-+
-+(defmacro s-add-to (expr maxlen filename &optional time-offset)
-+  `(let ((ny:fname (soundfilename ,filename))
-+         ny:input ny:rslt ny:offset
-+         )
-+     (cond ((setf ny:input (s-read ny:fname :time-offset ,time-offset))
-+            (setf ny:rslt *rslt*)
-+            (format t "Adding sound to ~A at offset ~A~%" 
-+                    ny:fname ,time-offset)
-+            (setf ny:offset (s-read-byte-offset ny:rslt))
-+
-+            (snd-overwrite '(let ((ny:addend ,expr))
-+                              (sum (snd-coterm
-+                                    (s-read ny:fname :time-offset ,time-offset)
-+                                    ny:addend)
-+                                 ny:addend))
-+                           ,maxlen ny:fname ny:offset 
-+                           (s-read-mode ny:rslt) (s-read-bits ny:rslt)
-+                           (s-read-srate ny:rslt) (s-read-channels ny:rslt))
-+            (format t "Duration written: ~A~%" (car *rslt*)))
-+           ((setf ny:input (s-read ny:fname :time-offset 0))
-+            (format t "Could not open ~A at time offset ~A~%" 
-+                    ny:fname ,time-offset))
-+           (t
-+            (format t "Could not open ~A~%" ny:fname)))))
-+
-+
-+(defmacro s-overwrite (expr maxlen filename &optional time-offset)
-+  `(let ((ny:fname (soundfilename ,filename))
-+         ny:input ny:rslt ny:offset)
-+         (setf ny:offset ,time-offset)
-+         (cond ((null ny:offset) (setf ny:offset 0)))
-+     (cond ((setf ny:input (s-read ny:fname :time-offset ny:offset))
-+            (setf ny:rslt *rslt*)
-+            (format t "Overwriting ~A at offset ~A~%" ny:fname ny:offset)
-+            (setf ny:offset (s-read-byte-offset ny:rslt))
-+                (display "s-overwrite" ny:offset)
-+            (snd-overwrite `,expr ,maxlen ny:fname ny:offset
-+                           (s-read-format ny:rslt)
-+                           (s-read-mode ny:rslt) (s-read-bits ny:rslt)
-+                           (s-read-swap ny:rslt)
-+                           (s-read-srate ny:rslt) (s-read-channels ny:rslt))
-+            (format t "Duration written: ~A~%" (car *rslt*)))
-+           ((s-read ny:fname :time-offset 0)
-+            (format t "Could not open ~A at time offset ~A~%" 
-+                    ny:fname ,time-offset))
-+           (t
-+            (format t "Could not open ~A~%" ny:fname)))))
-+
-+
---- audacity-1.2.1.orig/nyquist/nyquist-plot.txt
-+++ audacity-1.2.1/nyquist/nyquist-plot.txt
-@@ -0,0 +1,3 @@
-+set nokey
-+plot "points.dat" with lines
-+
diff --git a/plugins/audacity/plug-ins/Makefile.am b/plugins/audacity/plug-ins/Makefile.am
deleted file mode 100644 (file)
index d794d9d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = aubioonset.ny 
diff --git a/plugins/audacity/plug-ins/aubioonset.ny b/plugins/audacity/plug-ins/aubioonset.ny
deleted file mode 100644 (file)
index 07b2cac..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-;nyquist plug-in
-;version 1
-;type analyze
-;name "Onset Detection..."
-;action "Generate onset label track using aubioonset..."
-;info "Aubio onset detector:\n Generates a label track with markers at the beginning of audio events"
-;control dmode "Detection Beats/Onsets" int "0=Beats 1=Onsets" 1 0 1
-;control threshold "Detection threshold" real "[0.001-0.900...]" 0.3 0.001 1.0
-;control omode "Mode" int "0=ComplexDomain 1=HFC 2=Specdiff 3=Phase 4=Energy" 0 0 3
-
-;Create a function to make the sum the two channels if they are stereo
-(defun mono-s (s-in) 
-  (if (arrayp s-in) (snd-add (aref s-in 0) (aref s-in 1)) s-in)
-)
-
-; path to aubio commands
-(cond 
-  ((= dmode 0)(setf aubiocmd "/home/piem/aubio/aubio/examples/aubiotrack"))
-  (t (setf aubiocmd "/home/piem/aubio/aubio/examples/aubioonset"))
-)
-
-(cond 
-  ((= omode 0)(setf onsetmode "complexdomain"))
-  ((= omode 1)(setf onsetmode "hfc"))
-  ((= omode 2)(setf onsetmode "specdiff"))
-  (t (setf onsetmode "dual"))
-)
-
-; largest number of samples 
-(setf largenumber 1000000000) 
-
-; some temporary files
-;(setf infile (system "mktmp tmp-aubio-XXXXXX"))
-;(setf tmfile (system "mktmp tmp-aubio-XXXXXX"))
-(setf infile "/tmp/aubio-insecure.wav")
-(setf tmfile "/tmp/aubio-insecure.txt")
-
-; our command lines
-(setf aubiocmd (strcat 
-        aubiocmd
-        " -O " onsetmode
-        " -t " (ftoa threshold) 
-        " -i " infile 
-        " > "  tmfile))
-(setf deletcmd (strcat "rm -f " infile " " tmfile))
-
-; save current sound selection into mono infile 
-(s-save (mono-s s) (snd-length (mono-s s) largenumber) infile)
-
-; run aubio
-(system aubiocmd)
-
-; read the file and build the list of label in result
-(let* (
-        (fp (open tmfile :direction :input))
-        (result '())
-        (n 1)
-        (c (read-line fp))
-      )
- (read-line fp)
- ;(setf oldc c)
- (while (not (not c))
-   (setq result 
-        (append
-        result
-        ;(list (list (strcat oldc "    " c) ""))
-        (list (list (atof c) ""))
-        ))
-   ;(setf oldc c)
-   (setf c (read-line fp))
-   (setq n (+ n 1))
-  )
-  (close fp)
-
-  (system deletcmd)
-
-  ;uncomment to debug
-  ;(print result) 
-
-
-  ;If no silence markers were found, return a message
-  (if (null result)
-   (setq result "No onsets or beats found, no passages marked")
-  )
-  
-  result
-
-)
-