Evan,
Nyquist is pretty much off-topic for this list, but I'll answer here
anyway, and others can skip this if they wish.
I've been using and developing Nyquist pretty actively for a long
time now. The latest changes include an option to write in SAL, which
uses conventional function notation [ f(x) instead of (f x) ] and infix
operators. SAL comes from Taube's Common Music. Although Nyquist does
really support real-time *input*, it is pretty amazing on modern
machines in terms of real-time *output* -- garbage collection usually
runs in a small fraction of a second, so with a few hundred ms of audio
buffering, the output streams out with no real delay. Some recent
additions include support for Open Sound Control, so you really can
change input parameters on-the-fly, and you can set the latency lower to
trade off latency with the probability of drop-outs. Various people have
contributed phase vocoder, physical modeling, a decent grand piano, and
lots of other unit generators and libraries. Nyquist also includes
Common Music-like pattern generators and a generalized note-list for
saving, editing, manipulating score data destined for MIDI or synthesis
in Nyquist.
Your view of XLISP is different from mine: I rarely saw XLISP crash (but
eventually fixed a couple of bugs, so now I *never* see it crash,
although Nyquist is not quite so bullet-proof). Error reporting in XLISP
is basically the ability to walk the stack and see functions and
arguments, but I don't remember anything different in Common Lisps that
I used. "lack of all nice lisp features" -- maybe I see the small
extensible kernel of XLISP as actually a feature, especially for
building above.
One of the most powerful features of Nyquist is the support for
transformations including abstract time warping (abstract because you
can choose at what level time warps take place, e.g. should trills or
vibrato slow down in a rubato?). In retrospect, I do not see these
features in actual use, and even my own programs tend to avoid it. It's
elegant but I think it is just too hard to think about and therefore
isn't worth it in most cases. This was one of the biggest surprises to
me, that something so obviously the right thing to do from a
mathematical, programming language, and computer science standpoint just
isn't all that useful.
Nyquist was intended to be a stepping stone to a real-time interactive
system, but there are various hard limitations, so I began working on
Aura, more of an object-oriented application framework than a language.
I've been using Aura for real-time compositions for many years, but it's
so open-ended (and undocumented) that no one else uses it, nor would I
encourage it in this state. Aura includes Serpent, a real-time scripting
language based on Python that runs stand-alone and can be embedded into
other applications. Serpent is my favorite language now. It's very small
and very simple.
-Roger
_______________________________________________
media_api mailing list
[email protected]
http://lists.create.ucsb.edu/mailman/listinfo/media_api