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
media_api@create.ucsb.edu
http://lists.create.ucsb.edu/mailman/listinfo/media_api

Reply via email to