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.
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
$nyquist plug-in
 | 
						|
$version 3
 | 
						|
$type process
 | 
						|
$preview linear
 | 
						|
$name (_ "Tremolo")
 | 
						|
$manpage "Tremolo"
 | 
						|
$debugbutton disabled
 | 
						|
$action (_ "Applying Tremolo...")
 | 
						|
$author (_ "Steve Daulton")
 | 
						|
$release 2.3.0
 | 
						|
$copyright (_ "Released under terms of the GNU General Public License version 2")
 | 
						|
 | 
						|
;; tremolo.ny by Steve Daulton (www.easyspacepro.com) July 2012.
 | 
						|
;; Based on Tremolo by Dominic Mazzoni and David R. Sky."
 | 
						|
 | 
						|
;; 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 wave (_ "Waveform type") choice (
 | 
						|
   (_ "Sine")
 | 
						|
   (_ "Triangle")
 | 
						|
   (_ "Sawtooth")
 | 
						|
   ("InverseSawtooth" (_ "Inverse Sawtooth"))
 | 
						|
   (_ "Square")
 | 
						|
) 0
 | 
						|
$control phase (_ "Starting phase (degrees)") int "" 0 -180 180
 | 
						|
$control wet (_ "Wet level (percent)") int "" 40 1 100
 | 
						|
$control lfo (_ "Frequency (Hz)") float-text "" 4 0.001 1000
 | 
						|
 | 
						|
; Convert % to linear
 | 
						|
(setq wet (/ wet 200.0))
 | 
						|
 | 
						|
; set tremolo waveform 
 | 
						|
(setq waveform
 | 
						|
  (abs-env
 | 
						|
    (case wave
 | 
						|
      (0 *sine-table*)
 | 
						|
      (1 *tri-table*)
 | 
						|
      ; sawtooth
 | 
						|
      (2 (maketable (pwlv -1 0.995 1 1 -1)))
 | 
						|
      ; inverse sawtooth
 | 
						|
      (3 (maketable (pwlv -1 0.005 1 1 -1)))
 | 
						|
      ; square
 | 
						|
      (4 (maketable (pwlv -1 0.005 1 0.5 1 0.505 -1 1 -1))))))
 | 
						|
 | 
						|
;;; Generate modulation wave
 | 
						|
(defun mod-wave (level)
 | 
						|
  (when (= wave 0)
 | 
						|
    (setq phase (- phase 90)))
 | 
						|
  (sum (- 1 level) 
 | 
						|
    (mult level 
 | 
						|
      (osc (hz-to-step lfo) 1.0 waveform phase))))
 | 
						|
 | 
						|
(mult s (mod-wave wet))
 |