;nyquist plug-in ;version 3 ;type process ;preview linear ;categories "http://lv2plug.in/ns/lv2core#ModulatorPlugin" $name (_"Tremolo") ;manpage "Tremolo" ;debugbutton disabled $action (_"Applying Tremolo...") $author (_"Steve Daulton") $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") (_"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))