Earlier today, I committed the necessary changes to support Nyquist plug-ins
written using the SAL syntax. Lisp and SAL syntax are both supported and Lisp
is the default.
To use SAL syntax, include an Audacity control line before any code statements
This will tell EffectNyquist to collect all of the code statements and pass them
to the SAL compiler. The output of the compiler is Lisp code, so that is
actually what gets executed.
The SAL code may include any valid SAL statements and it MUST include a function
called "main" which MUST return the desired value:
Here is a working example of the Pluck plugin written in SAL:
;name "SAL Pluck..."
;action "Generating pluck sound..."
;control p "Pluck MIDI pitch" int "" 60 1 127
;control fade "Fade-out type" choice "abrupt,gradual" 0
;control dur "Duration [seconds]" real "" 1 0.1 30
define function main()
set final-amp = #?(fade = 1, 0.001, 0.000001)
set pluck-sound = snd-pluck(*sound-srate*,
set max-peak = peak(pluck-sound, ny:all)
return scale(0.8 / max-peak, pluck-sound)
I've converted 3 others, crossfadein, crossfadeout, and risset drum. I had
intended to attach them to this message, but forgot them at home so I will send