1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-04 17:49:45 +02:00
audacity/plug-ins/pluck.ny
Paul Licameli da39cc451f Remove redundant ellipses from names in .ny files...
... The code that parses the header was always just throwing them out.

The code that populates menus deduces whether to add ellipses, as there are
controls or not, regardless what the $name line said.
2018-03-02 20:11:54 -05:00

51 lines
2.0 KiB
Common Lisp

;nyquist plug-in
;version 4
;type generate
;categories "http://lv2plug.in/ns/lv2core#GeneratorPlugin"
$name (_"Pluck")
;manpage "Pluck"
;debugbutton false
;preview linear
$action (_"Generating pluck sound...")
$info (_"MIDI values for C notes: 36, 48, 60 [middle C], 72, 84, 96.")
$author (_"David R.Sky")
$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 .
$control pitch (_"Pluck MIDI pitch") int "" 60 1 120
$control fade (_"Fade-out type") choice ((_"abrupt") (_"gradual")) 0
$control dur (_"Duration [seconds]") real "" 1 0.1 30
; original pluck.ny modified by David R.Sky October 2007
; [vastly simplified later]
; to give user option to use [default] abrupt or gradual fade-out,
; and ability to make pluck sound up to 30 seconds in duration.
; Modified January 2007 to use 'snd-pluck' by edgar-rft@web.de
; instead of the Nyquist 'pluck' function, and normalise to 0.8
; maximum amplitude. As defined in Audacity, 'pluck' has
; incorrect length duration and clipping at the start which gives
; rise to DC offset. Using 'snd-pluck' avoids the clipping and
; reduces offset so we don't need the highpass8 filter that we used before.
; Updated to v4 by Steve Daulton May 2015
; set final-amp for abrupt or gradual fade
(setf final-amp (if (= fade 1) 0.001 0.000001))
;; Get length of preview
(setq pdur
(if (get '*track* 'view) ;NIL if preview
dur
(get '*project* 'preview-duration)))
(let* ((pluck-sound (snd-pluck *sound-srate* (step-to-hz pitch) 0 dur final-amp))
(pluck-sound (extract-abs 0 pdur pluck-sound)) ; shorten if necessary for preview.
(max-peak (peak pluck-sound ny:all)))
;; snd-pluck has a random element and will occasionally produce
;; zero amplitude at very high pitch settings. Avoid division by zero.
(if (> max-peak 0)
(scale (/ 0.8 max-peak) pluck-sound)
pluck-sound))