mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-11-04 08:04:06 +01:00 
			
		
		
		
	For shipped plug-ins, the version number is the same as the Audacity release version when the plug-in was last modified.
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
$nyquist plug-in
 | 
						|
$version 1
 | 
						|
$type analyze
 | 
						|
$name (_ "Beat Finder")
 | 
						|
$manpage "Beat_Finder"
 | 
						|
$action (_ "Finding beats...")
 | 
						|
$author (_ "Audacity")
 | 
						|
$release 2.3.0
 | 
						|
$copyright (_ "Released under terms of the GNU General Public License version 2")
 | 
						|
 | 
						|
;; Released under terms of the GNU General Public License version 2:
 | 
						|
;; http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 | 
						|
;;
 | 
						|
;; For information about writing and modifying Nyquist plug-ins:
 | 
						|
;; https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference
 | 
						|
 | 
						|
 | 
						|
$control thresval (_ "Threshold Percentage") int "" 65 5 100
 | 
						|
(setf s1 (if (arrayp s) (snd-add (aref s 0) (aref s 1)) s))
 | 
						|
(defun signal () (force-srate 1000 (lp (snd-follow (lp s1 50) 0.001 0.01 0.1 512) 10)))
 | 
						|
(setq max (peak (signal) NY:ALL))
 | 
						|
(setq thres (* (/ thresval 100.0) max))
 | 
						|
(setq s2 (signal))
 | 
						|
(do ((c 0.0) (l NIL) (p T) (v (snd-fetch s2))) ((not v) l)
 | 
						|
; "B" seems too short to put into the i18n catalog.  Make it a control?
 | 
						|
 (if (and p (> v thres)) (setq l (cons (list c "B") l)))
 | 
						|
 (setq p (< v thres))
 | 
						|
 (setq c (+ c 0.001))
 | 
						|
 (setq v (snd-fetch s2)))
 |