Difference between revisions of "Nyquist Audio Programming"

From Audacity Wiki
Jump to: navigation, search
(some additions...)
m (Text replace - "http://web.audacityteam.org" to "https://web.audacityteam.org")
 
(27 intermediate revisions by 7 users not shown)
Line 1: Line 1:
'''Related pages:'''
+
{{Introrel|This page is a list of suggested "how-to" and explanatory articles for Nyquist programmers. Nyquist is a [http://en.wikipedia.org/wiki/Lisp_programming_language LISP]-based programming language for audio synthesis and analysis written by Roger B.Dannenberg. A number of effects and analysis tools shipped with Audacity are written in Nyquist. Audacity interfaces to Nyquist using the somewhat stripped-down and modified [[Libnyquist]] library. |Many articles herein are still to be written. Feel free to request other topics by clicking the [[Talk:Nyquist Audio Programming|discussion tab]] at the top of this page. If you are looking for extra Nyquist plug-ins to use, see [[Nyquist Plugins]]. |[http://www.cs.cmu.edu/~music/music.software.html Nyquist homepage] at Carnegie Mellon University
 +
*[[Nyquist]] Wiki reference source for all things Nyquist
 +
*[[Nyquist Plugins Reference]] - an overview of plug-in structure and syntax
 +
*Other pages in our [[:Category:Digital Audio Technology|Digital Audio Technology]] category}}
  
[[:Category:Digital Audio Technology|Digital Audio Technology]],
 
[[Download Nyquist Plug-ins]]
 
  
 +
{{Hint|1=If you are especially interested in Nyquist in Audacity, we strongly recommend subscribing to our {{external|[http://lists.sourceforge.net/lists/listinfo/audacity-nyquist audacity-nyquist mailing list]}}.}}
  
__TOC__
 
  
=Nyquist Programming with Audacity=
 
 
Nyquist plugins are plain text files which can be read with
 
every simple text editor. You can e.g. load the '.lsp' files from the Audacity
 
'nyquist' directory or the '.ny' files from the Audacity 'plug-ins' directory
 
into your favourite text editor and try to find out how they work. That's how I
 
myself learned Nyquist programming. Lots of Nyquist plugins can be found on
 
the Nyquist plug-ins download page (see link at the top of this page).
 
 
 
{| style="background:#EEEEFF"  cellpadding="10px" width=90% align="center"
 
|-
 
|The following is at the moment (February 7, 2008) only a list of suggestions. The related pages still need to be written. Feel free to add topics you are interested in on the discussion page.
 
|}
 
  
 +
__TOC__
  
=Basic Experiments=
+
==Basic Experiments==
  
 
Experiments from the Audacity Nyquist prompt:
 
Experiments from the Audacity Nyquist prompt:
  
* Changing the volume of an Audacity audio track
+
* [[Nyquist Basics: The Audacity Nyquist Prompt|The Audacity Nyquist Prompt]] - how it works
* Changing the volume of the left and right stereo channels independently
+
* Changing the Volume - in different ways
* Changing the volume with envelopes - fade in, fade out, etc.
+
** [[Nyquist Basics: Changing the Volume|Changing the volume of an Audacity audio track]]
* Changing the volume with a low frequency generator - tremolo effect
+
** [[Nyquist Basics: Changing the volume of the left and right stereo channels independently|Changing the Volume of the left and right stereo channels independently]]
 +
** Changing the volume with envelopes - fade in, fade out, etc.
 +
** Changing the volume with a low frequency generator - tremolo effect
 
* Increasing/decreasing treble and bass - simple equalizer
 
* Increasing/decreasing treble and bass - simple equalizer
* Timeshift with Nyquist - simple delay effect
+
* [[Nyquist Basics: Adding a Delay Effect|Simple delay effect]]
* Audio loops with Nyquist - simple loop and echo effects
+
* Audio loops with Nyquist - simple loop and echo effects...
  
 +
==Advanced topics==
  
=Advanced topics=
+
* Narrowing and widening stereo signals
 
+
* Removing vocals from a stereo recording
* Writing your own Audacity Nyquist plugins
+
* Writing your own Audacity Nyquist plug-ins
** {{external|[http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/nyquist.htm Official Audacity Nyquist plugin documentation]}}
+
** {{external|[http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/nyquist.htm Official Audacity Nyquist plug-in documentation]}}
** {{external|[http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/devel/audacity-nyquist-en.htm Updated plugin information, 2007]}}
+
** {{external|[http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/devel/audacity-nyquist-en.htm Updated plug-in information, 2007]}}
** {{external|[http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/manual/home.html Nyquist 2.36 manual]}} - the current Nyquist 3.0 manual is not compatible with Nyquist in Audacity
+
** [http://www.cs.cmu.edu/~rbd/doc/nyquist/ Nyquist 3.02 Reference Manual] - the latest Nyquist manual, most functions described in terms of SAL syntax
 +
** [http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/manual/home.html Nyquist 2.37 Reference Manual] - the latest Nyquist manual using all LISP syntax
 
** {{external|[http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/xlisp/xlisp-index.htm XLISP documents collection]}} - XLISP is the programming language Nyquist is based on
 
** {{external|[http://www.audacity-forum.de/download/edgar/nyquist/nyquist-doc/xlisp/xlisp-index.htm XLISP documents collection]}} - XLISP is the programming language Nyquist is based on
  
In the long view I would like to unify the old Nyquist plugin documentation
+
{{Hint|1='''Please note:''' The notation in the current Nyquist 3.02 Reference Manual from the links above emphasizes SAL syntax, although the underlying functions are the same. SAL only works in Audacity 1.3.8 or later. <p>Use the Nyquist 2.37 Manual from the links above if you would like to see functions described using LISP syntax. These work in any Audacity version.</p>}}
on the Audacity homepage and the updated information in the german forum into
 
one single place here in the user's wiki.
 
  
* Narrowing and widening stereo signals
+
{{ednote|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. The outdated list of Nyquist plug-ins at https://web.audacityteam.org/download/nyquistplug-ins has now been removed. The only disadvantage of this is that the potential (unused) mechanism for translating the plug-ins list is lost. Translating the list 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?}}
* Removing vocals from a stereo recording
 
  
  
=Very advanced topics=
+
==Very advanced topics==
  
* Reverb - multiple echos with different delay times - reverb effect
+
* Multiple echoes with different delay times - reverb effect
 
* The relations between timeshift and frequency response
 
* The relations between timeshift and frequency response
* Frequency dependent delays with comb and allpass filters - reverb, chorus, phaser, etc.
+
* Frequency-dependent delays with comb and allpass filters - reverb, chorus, phaser, etc.
 
* Dynamics processing - how to derive control signals from volume behaviour
 
* Dynamics processing - how to derive control signals from volume behaviour
 
* Auto-equalizing - how to derive control signals from frequency behaviour
 
* Auto-equalizing - how to derive control signals from frequency behaviour
  
  
There is of course still much missing. Feel free to add your suggestions on
+
 
the discussion page.
+
==Links==
 +
 
 +
[[Nyquist|'''|<''' Nyquist]]
 +
 
 +
[[Category:Nyquist]]
 +
 
 +
 
  
  
[[Category:Digital Audio Technology]]
+
[[Category:Digital Audio Technology]] [[Category:Nyquist]]

Latest revision as of 12:11, 21 August 2017

This page is a list of suggested "how-to" and explanatory articles for Nyquist programmers. Nyquist is a LISP-based programming language for audio synthesis and analysis written by Roger B.Dannenberg. A number of effects and analysis tools shipped with Audacity are written in Nyquist. Audacity interfaces to Nyquist using the somewhat stripped-down and modified Libnyquist library.
Many articles herein are still to be written. Feel free to request other topics by clicking the discussion tab at the top of this page. If you are looking for extra Nyquist plug-ins to use, see Nyquist Plugins.
 
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 links above emphasizes SAL syntax, although the underlying functions are the same. SAL only works in Audacity 1.3.8 or later.

Use the Nyquist 2.37 Manual from the links above if you would like to see functions described using LISP syntax. These work in any Audacity version.

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. The outdated list of Nyquist plug-ins at https://web.audacityteam.org/download/nyquistplug-ins has now been removed. The only disadvantage of this is that the potential (unused) mechanism for translating the plug-ins list is lost. Translating the list 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


Links

|< Nyquist