Nyquist Audio Programming

From Audacity Wiki
Revision as of 19:53, 1 November 2010 by Rbd (talk | contribs) (mention SAL and 3.02 manual)
Jump to: navigation, search
Nyquist is a LISP -based programming language for audio synthesis and analysis written by Roger B.Dannenberg. A number of Audacity's built-in effects and tools are written in Nyquist. Audacity interfaces to Nyquist using the somewhat stripped-down and modified Libnyquist library.
This page is at the moment only a list of suggestions, and related pages still need to be written. Feel free to mention topics you are interested in by clicking on the discussion tab at the top of this page.
Related article(s):

If you are especially interested in Nyquist in Audacity, we strongly recommend subscribing to our audacity-nyquist mailing list .

Basic Experiments

Experiments from the Audacity Nyquist prompt:

Advanced topics

Please note: The notation in the current Nyquist 3.02 Reference Manual  from the Nyquist Homepage at Carnegie Mellon Universtiy emphasizes SAL syntax, although the underlying functions are the same. You can use the Nyquist 2.37 Manual from the link above if you would like to see functions described using LISP syntax.

We are currently working on unifying the old Nyquist plug-in documentation on the main Audacity website and the updated information in the German forum into one single place here in the Wiki (then removing the current Nyquist downloads page on the main site ). The only disadvantage of this is that the potential (unused) mechanism for translating this page is lost. Doing this was never a priority as the plug-ins themselves are in English. Possibly we could in time add (at least, German) translations of Wiki Nyquist pages, or even links to German versions of these plug-ins?

Very advanced topics

  • Multiple echoes with different delay times - reverb effect
  • The relations between timeshift and frequency response
  • Frequency-dependent delays with comb and allpass filters - reverb, chorus, phaser, etc.
  • Dynamics processing - how to derive control signals from volume behaviour
  • Auto-equalizing - how to derive control signals from frequency behaviour