[Audacity-nyquist] Undocumented features and the Audacity Nyquist time transformation environment
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: <edg...@we...> - 2009-09-23 18:06:41
|
Hi all on the Audacity Nyquist list, Summary of some recent questions on this list: Steve: Any other undocumented features that you know of? Leland: ;codetype lisp | sal ... ;debugflags trace | notrace | compiler | nocompiler ... Edgar: I will add this to my Audacity Nyquist pages ASAP. Steve: Is there any information about using SAL in Audacity? Leland: I was sort of hoping Edgar might add it to his site. Edgar: The bad news is that I do not use SAL and therefore have no idea how it works. I very often have to use the Nyquist low-level interface directly where (for me) SAL introduces nothing but additional complications (more details below). Steve: Are there any advantages to using SAL? Leland: Much easier to grok for us Lisp challenged ppl. :-) Edgar: This is definetly true (and probably the main reason for adding a SAL compiler to Nyquist), a second reason is that SAL makes Nyquist more compatible to other music composition programming environments like "common music" (Rick Taube) and the "snd" editor (Bill Schottstaedt). I also want to say that I do not think of Lisp as the automatically "best language for every purpose", but in case of Nyquist the sound functions are nested deep into the Lisp interpreter (especially the "lazy evaluation" backtracking system), so that the "most easy" way to deal with the Nyquist low-level interface (the "snd-..." functions) is XLISP and not SAL (what is probably possible, too). This means that I have nothing "against" SAL but for me SAL is not really useful and therefore I just simply have no idea how it works in detail. That's the reason why there is still no documentation. --- Audacity Nyquist time transformation environment --- One of the main reasons why I have to use the low-level interface directly is that the Nyquist time transformation environment in Audacity is messed up by setting the logical time of "1.0" to the length of the Audacity selection instead of "1.0 seconds". I agree with Roger that this is very useful for music composition (Audacity "generate" plugins) where you can write Nyquist code like: XLISP: (compute-sound 1.0) SAL: computeSound(1.0) and you will automatically get a sound of a length that fits right into the Audacity selection. But on the other side is pure pain to work this way in audio processing (Audacity "process" plugins) where delays in time units of seconds are needed for echo compensation and similar stuff, which every time needed to be computed out of the "wrong" selection-length time units. And as a result of this: Nyquist "audio process" code, developed in CMU-Nyquist cannot be used in Audacity because of the different interpretation of time units. This makes CMU-Nyquist incompatible to Nyquist in Audacity. In "old" Nyquist versions there very often was the additional problem that XLISP floats with only six digits precision introduced so much miscalculation, that computing exact delay shifts in microseconds in Audacity was nearly impossible. Newer versions of Nyquist (like Nyquist 3.03, used in the current Audacity 1.3.x versions we are talking about here) use native machine floats so this is not a real problem any more but computing with messed-up time units is still incompatible and over-complicated. I don't know wether the following is a really good idea but: IMHO it would be a much better solution to leave the "len" variable as-is and write some XLISP (or SAL) high-level functions to compute the particular length of the current Auacity selection to be used in "generate" plugins and make the rest of the time transformation environment behaving the same way as used in CMU-Nyquist. This would make Nyquist in Audacity being compatible to CMU-Nyquist. Because I have no exact idea how much this breaks the code of already existing Nyquist "generate" plugins (like "click-track" etc.) I would first of all like to know what the other people on this list think about this idea. Herewith I volunteer to help with fixing all broken Nyquist plugins. I would be interested to know what the others think about this... Thanks, - edgar -- The author of this email does not necessarily endorse the following advertisements, which are the sole responsibility of the advertiser: ________________________________________________________________ Neu: WEB.DE Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate für nur 19,99 Euro/mtl.!* http://produkte.web.de/go/02/ |