From: Paul Brossier Date: Sun, 25 Oct 2009 21:03:57 +0000 (+0100) Subject: plugins: remove audacity plugin, obsolete X-Git-Tag: bzr2git~63 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1342c2f184764c8b3128dcd04a5b9306a708569b;p=aubio.git plugins: remove audacity plugin, obsolete --- diff --git a/configure.ac b/configure.ac index 4eccfc87..2b6ccca4 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 524cf402..df07d862 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -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 index e53603a6..00000000 --- a/plugins/audacity/Makefile.am +++ /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 index 3bda1455..00000000 --- a/plugins/audacity/README +++ /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 index 5af8f33a..00000000 --- a/plugins/audacity/audacity-libnyquist.diff +++ /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 */ -+{ "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 */ -+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 index 280a16cf..00000000 --- a/plugins/audacity/audacity-nyquist.diff +++ /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 -+or add this to your init.lsp file: -+ (setf *default-sound-file* \"\") -+ (setf *default-sf-dir* \"\") -+ -+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 index d794d9d6..00000000 --- a/plugins/audacity/plug-ins/Makefile.am +++ /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 index 07b2cac1..00000000 --- a/plugins/audacity/plug-ins/aubioonset.ny +++ /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 - -) -