From: Roger Dannenberg <rbd@cs...> - 2008-01-03 16:45:40
I have been working hard on Nyquist lately. For a long time, I've
considered changing Nyquist because so many people seem to be
intimidated by Lisp syntax. One possibility I considered was Python, but
Nyquist relies heavily on Lisp features that Python lacks. It turned out
that Rick Taube was working along similar lines and created an
algorithmic language named SAL for his Common Lisp Music system. I
really liked the SAL design, which maintains a very close connection to
Lisp but adds infix notation, IF-THEN-ELSE, and other familiar
statements as well as conventional function call notation, i.e. you
write foo(x, y) instead of (foo x y).
The great thing about SAL is that it runs on top of lisp and translates
to Lisp, so with just a simple front end, you can retain everything from
Nyquist. E.g. in SAL, I can now write pluck(c4) to make a plucked string
sound, and the symbols "pluck" and "c4" do not even appear in the SAL
parser/compiler, nor are there any stubs to bridge from SAL to Nyquist.
SAL just translates the code to (pluck c4) and calls Lisp's EVAL. All of
this is hidden from novice users, so they don't have to go running in
fear from parentheses :-)
SAL also allows one to continue working with Lisp code, and the IDE now
supports programming with Nyquist in both Lisp and SAL syntax.
I've rewritten the Nyquist Manual introductory chapters to use SAL
rather than Lisp, and I've added a chapter explaining SAL. The new
Nyquist is Version 3.00, and you can get it via cvs from SourceForge. I
would be very happy to hear from users about their experience and
opinions whether positive or negative. There are undoubtedly bugs I have
not discovered (but v3.0 also fixes some Nyquist bugs).
The manual and the Nyquist downloads on the web will remain at Version
2.xx until the rate of change settles down a bit. Once you get started,
CVS can easily keep you current with the latest updates to v3.xx.
None of this will have any immediate impact on Audacity Nyquist and
Audacity plug-ins. If people like using SAL in Nyquist, it would be very
desirable to to update Audacity with a newer version of Nyquist. (In my
opinion, it's a no-brainer, but I acknowledge that there's real work
involved to make a major update like this.)