Nyquist Generate Plugins

From Audacity Wiki
Jump to: navigation, search
These are optional plug-in audio generators for Audacity. They are written in the Nyquist programming language. To install Nyquist plug-ins, see this page in the Manual.

"Generate Plugins" appear in the Audacity Generate menu. Plugins that generate audio will usually be in this menu. This is the only type of Nyquist plug-in that does not require a selection to be made prior to applying the plug-in.

Unless otherwise indicated, these plug-ins are released under the terms of the GNU General Public License.
Related article(s):
Warning icon Feedback and bug reports:
  • All new plug-ins added to this list are tested in the Audacity version current at the time, but many of the older plug-ins are still in need of testing.
    • Please report any bugs to the Nyquist section of the Audacity forum so they may be fixed.
  • Please also let us know which plug-ins you like and find useful as that will help us to develop the types of plug-ins that users want.

Downloading and Installing Plug-ins

Please see the Download Nyquist Plug-ins page.

Tone Generators

Buzz tone generator

(buzz.ny) Download | MP3 Example Clip

Author: David R.Sky

Generates a nasal-sounding tone composed of the base frequency plus n-1 harmonics. If for example you choose a frequency of 100 Hz with n=4 harmonics, this plug-in will generate a tone comprised of 100, 200, 300 and 400 Hz, of equal amplitude. (The more harmonics, the more nasal and high-pitched the tone sounds.)


  1. Frequency or MIDI number: [0=frequency, 1=MIDI (default)]
  2. Frequency: [20 - 5000 Hz, default 110]
  3. MIDI note number: [16 - 127, default 45]
  4. Number of harmonics: [1 - 60, default 12]
  5. Buzz tone duration: [0.1 - 120 seconds, default 5.0]
  6. Volume: [1 - 100 percent, default 95]

DTMF Tones (random)

(dtmfrand.ny) Download

Authors: David R.Sky, Dominic Mazzoni, Roger Dannenberg, W. Borgert

Touch Tones (also known as DTMF or Dual Tone Multi Frequency Tones) are the tones made by key pads on telephones. Each tone is comprised of two separate tones at different pitch, hence "dual tone".


  1. Number of DTMF Tones: [1 - 120, default 20]
  2. Include military tones A-D: [0 = no (default), 1 = yes]
  3. Option to include silent intervals: [0 = no (default), 1 = yes]
  4. Volume: [0.001 - 1.000, default 0.3]
  5. Tone length [0.001 - 1.000 seconds, default 0.1]
  6. High to low tone ratio: (or twist) [0 - 4 dB, default 0] - "Twist" is the volume ratio between the higher-pitched and lower-pitched tones in any given tone. So a twist value of 0 dB means the higher-pitched tone is no louder than the lower-pitched tone. A twist value of 4 dB means the higher-pitched tone is 4 dB louder than the lower-pitched tone.
  7. Post silence duration: [0 - 1 seconds, default 0.1]

DTMF Tones

(dtmf.ny) Download

Authors: David R.Sky, Dominic Mazzoni, Roger Dannenberg, W. Borgert

Touch Tones (also known as DTMF or Dual Tone Multi Frequency Tones) are the tones made by key pads on telephones. Each tone is comprised of two separate tones at different pitch, hence "dual tone".

Type in your telephone number, or an 'alphabetized' number such as "1800audacity". Includes the US Military's A, B, C and D tones to the right of the regular number keypad.


  1. Tone string: [180audacity (default)]
  2. Tone duration: [1 - 1000 milliseconds, default 100]
  3. Silence duration after tone: [0 - 1000 milliseconds, default 100]
  4. Twist: [0 - 4 dB, default 0] - "Twist" is the volume ratio between the higher-pitched and lower-pitched tones in any given tone. So a twist value of 0 dB means the higher-pitched tone is no louder than the lower-pitched tone. A twist value of 4 dB means the higher-pitched tone is 4 dB louder than the lower-pitched tone.
  5. Volume: [1 - 100 percent, default 80]


(HQ-Tone.ny) Download

Author: Steve Daulton

HQ-Tone is a high quality (no alias) tone generator.

Like the Square (no alias) option in Audacity's built-in Tone generator, the waveforms generated by this plug-in produce bandwidth limited waveforms to avoid aliasing distortion. This plug-in is typically faster than Audacity's built-in "Square - no alias" generator, particularly for low frequencies, and provides more waveform choices:


  1. Waveform: [Choice: Sine, Square, Triangle, Sawtooth, Inverse sawtooth (default: Square]
  2. Frequency (Hz): [20 - 10000 Hz, default 440 Hz] - the frequency of the generated waveform.
  3. Amplitude (0 to 1): [0 to 1, default 0.8] - The amplitude of the generated waveform. Note that due to technical limitations, the actual waveform may be very slightly different from the requested amplitude. However, the amplitude can be expected to be very close to the specified level (within about 0.001 dB).
  4. Duration: [must be greater than zero] - Time units may be selected by clicking the downward pointing arrow on the right side of the control.
  5. Phase (-180 to 180): [-180 to +180 degrees] - The starting phase of the waveform. Rising across zero is taken to mean a phase of 0 degrees for all waveforms.
  6. Smoothing: [Choice: Yes / No (default: Yes)] - Waveforms that have near instantaneous rise or fall times have noticeable ripple. When this option is enabled, additional damping is applied to smooth out the ripples, producing a cleaner looking waveform, at the expense of slightly reduced high frequency harmonics.


(pwm.ny) Download

Author: Steven Jones.

Generates a modulated pulse tone.


  1. MIDI key: [0 - 127, default 60]
  2. Cents: [0 - 99 cents, default 0] - Detune amount
  3. Duration: [1 - 30000 milliseconds, default 10000]
  4. Mod Rate: [1 - 100, default 1] - number of modulation cycles
  5. Mod Depth: [-100 - +100 percent, default 90]
  6. Mod Wave: [0 = tri (default), 1 = up sawtooth, 2 = down sawtooth] - waveform of tone
  7. Width: [0 - 100 percent, default 0] - fixed pulse width
  8. Amplitude: [0 - 100 percent, default 100]

If the sum of the fixed width and the instantaneous modulation amount is outside the interval [0 - 99], the output will go to full off or full on.

Noise Generators

Harmonic Noise

(harmonicnoise.ny) Download

Author: Steven Jones.

Generates approximately harmonic tones by mixing narrow bands of noise. For each note in the MIDI note list an n-partial tone is produced. Each partial of each tone is actually a narrow band of noise centered at the ideal harmonic frequency. The center frequency of each band is harmonically related to the fundamental and the amplitude decreases inversely with the harmonic number.


  1. MIDI Note List: [c2 c3 ef4 g4 bf4 c5] - MIDI notes may be specified either as integers or using the Nyquist constants 'g3' for third octave g, 'bf4' for fourth octave b flat, 'gs2' for second octave g sharp and so on.
  2. Number of Harmonics: [1 - 32, default 8] - that is, the number of partials for each note generated
  3. Duration: [1 - 30 seconds, default 10]
  4. Band Width: [1 - 1000 Hz, default 2] - depending on the width of this noise band, the result can sound very noisy or distinctly tonal with a heavy chorusing effect.
  5. Odd Harmonics Only: [0 = all harmonics (default), 1 = odd-numbered harmonics only]

Narrowband Noise

(noiseband.ny) Download

Author: Steve Daulton (after "Noise Band" by Steven Jones).

Narrowband Noise generates noise within a specified frequency range by ring-modulating a sine wave with low-pass filtered noise. The effect is like band-pass filtered noise.


  1. Center Frequency (Hz): [10 to 10000 Hz, default 440]
  2. Bandwidth (Hz): [1 to 10000 Hz, default 50]
  3. Amplitude (0 - 1): [0 to 1, default 0.8]
  4. Duration (minutes): [0 to 20 minutes, default 0]
  5. Duration (seconds): [0 to 60 seconds, default 30]
  6. Stereo Output: [No / Yes, default No]

To generate true stereo noise (left and right channels different), a stereo track must be selected and the Stereo Output control must be set to "Yes". As with all Nyquist generator plug-ins, if a track is not selected, Audacity will create a mono track and attempt to place the generated sound into that track. If Stereo Output is set to yes and a stereo track is not selected the plug-in will return the error message: "Nyquist returned too many audio channels."

Special Effects

Binaural Tones with Surf 2

(bitone2.ny) Download | MP3 example clip

Author: David R.Sky

A sine tone of one constant frequency is generated in the left channel of a stereo track, and a series of changing tones of slightly different frequencies are generated in the right. The differences between the left- and right-channel frequencies are termed "beat frequencies". In addition, a stereo "surf" noise is generated based on pink noise. This is a lower-frequency "rushing" sound compared with "hissing" white noise.

Some people believe that listening to these beat frequencies can cause the brain to "align" with the beat frequencies through a phenomenon called entrainment. It is hypothesized that beat frequencies may result in different states of awareness, including increased relaxation or alertness, lucid dreaming or many other states.

Neural oscillations, or "brainwaves", are rhythmic or repetitive patterns of neural activity in the central nervous system. They may be detected by EEG and similar techniques. Five brainwave frequency bands are classified by some sources as:

  • Alpha (7 - 14 Hz)
  • Beta (14 - 30 Hz)
  • Gama (30 - 150 Hz)
  • Delta (1 - 4 Hz)
  • Theta (4 - 8 Hz)
Warning icon Audacity makes no claims regarding the effects, suitability, or side effects of "brain entrainment". No claim or guarantee is offered or implied, that the user will or will not experience any effect from the use of this plug-in, or from works created with it.

By downloading, installing, using this plug-in and/or listening to the audio it generates, you explicitly accept full responsibility for any and all effects of its use, whether 'positive', 'negative', intentional, unintentional, or otherwise.

To use this plug-in, first add a new stereo track in Audacity (ALT, T, N, S on Windows and Linux). Then open the Generate menu and select "Binaural Tones with surf 2..." from the dropdown menu.


  1. Left channel tone frequency: [50 - 1000 Hz, default 100].
  2. Beat frequency [Hz], duration [minutes], time to change to next beat frequency [minutes]: There are six of these edit fields in which you may enter up to three indicated values, separated by a space. The first of these edit fields has default values of 17.5 0.25 0.25 and must contain some non-zero value for duration. If you enter only a single value into any of the subsequent fields, the duration of that beat frequency will be zero. If you leave any of these edit fields blank they will be ignored. In the sixth field you may enter a final beat frequency and duration of that frequency.
  3. Adjust total time: [1 - 60 minutes, default = 0 (no adjustment)].
  4. Fade-in and fade-out times: [0 - 120 seconds, default 10]
  5. Stereo surf frequency: [0 - 2 Hz, default 0.1] - If this setting is above zero, the surf sound will be panned back and forth somewhere between the left and right audio channels at the specified frequency, how far depending on the sixth variable:
  6. Stereo surf spread: [0 - 100 percent, default 80] - The larger this number, the further the surf sound will move away from the center pan position (0% results in the surf sound remaining in the center).
  7. Tone to surf volume ratio: [0 - 100 percent, default 70] - adjusts the relative volume of the tones and surf sound. 0 = no tone (only surf) and 100 = no surf (only tone).


(surf-lfo.ny) Download | MP3 example clip

Author: David R.Sky

LFO Surf generator. A signal whose frequency is generally below the human ear's ability to hear as a tone, usually 20 cycles per second [Hz]. Generates mono or stereo surf which sweeps between a lower and upper filter frequency. Stereo surf also sweeps back-and-forth somewhere between the left and right audio channels. To generate stereo surf, first open a new stereo track in Audacity. Do this by ALT, P, S in Audacity pre-1.3, or ALT, T, N, S in 1.3 and later.


1. Mono or stereo surf: [1=mono 2=stereo]
Mono surf is heard only in the center between the two speakers, or in the middle of your head when wearing headphones. Stereo surf sweeps back-and-forth somewhere between the two audio channels, depending on the next setting, Stereo Spread.
2. Stereo spread: [stereo only: percent]
The larger this value, the more widely the stereo surf will move back-and-forth between the left and right audio channels. When this value is above zero, the deeper section of the surf sweep will be heard more in the left channel; below zero, the deeper section of the surf sweep will be heard more in the right channel.
3. Fade-in and fade-out times: [seconds]
To smoothly fade in and fade out the volume at the start and end of the surf.
4. Surf duration: [minutes] (up to 60)
5. Surf type: [0=white noise 1=pink noise]
White noise is more of a "hissing" sound, whereas pink noise is a lower "rushing" sound. Technically, white noise is "equal energy per frequency", whereas pink noise is "equal energy per octave"
6. Surf sweep frequency: [Hz]
Sets how slow or fast the surf sweeps between the lower and upper filter frequencies, and the left and right channels [for stereo surf].
7. Lower filter frequency: [Hz]
8. Upper filter frequency: [Hz]
Both the above determine how low and how high the low-pass filter sweeps the surf noise.
9. Bass frequency to boost: [Hz]
You can boost the volume of frequencies of the surf sound below this setting, to get a deeper-sounding surf. Somewhat equivalent to the bass knob on your stereo.
10. Bass boost : [dB]
Sets how much to boost the above bass frequency. 0 dB means no boost, 6 dB means double the amplitude of the bass frequency, and so on.


If you get an error message "Nyquist returned too many audio channels", this means you tried to generate stereo surf without first having opened a blank stereo track in Audacity. See instructions at the start of this help file for instructions on how to do this.


(surf-oxy.ny) Download | MP3 example clip

Author: David R.Sky

Jean-Michel Jarre put out a hauntingly beautiful electronic album in 1976, Oxygene. One section of this album had a repeating surf sound: a sweep from the right to the left audio channel, a pause, and then a deep crash in the right channel. After another pause, this cycle repeated many times. Very relaxing to listen to. This sound generator plug-in emulates that surf cycle, in either mono or stereo.

Start a new session of Audacity. To generate stereo surf, first open a blank stereo track (ALT, P, S in Audacity pre-1.3, ALT, T, N, S in 1.3 and later). Open the generate menu. Click on "Surf [Oxygene]".


1. Surf output: [1=mono 2=stereo]
To generate mono or stereo Oxygene surf.
2. Stereo spread: [stereo only - percent]
If you've chosen to generate stereo Oxygene surf, this setting will determine how widely the surf sweeps away from the center pan position. From +100 percent to -100 percent. Positive values make the sweep section go from the right to the left, with the crash in the right. Negative values reverse this pattern.
3. Fade-in and fade-out times: [seconds]
Time to fade in and fade out the volume at the start and end of the surf, if you wish.
4. Number of Oxygene surf cycles:
How many Oxygene surf cycles to generate.
5. Surf type: [0=white noise 1=pink noise]
White noise is a higher-frequency "hissing", whereas pink noise is a lower-frequency "rushing" sound.
6. Sweep starting filter frequency: [Hz]
7. Sweep ending filter frequency: [Hz]
The above two parameters set the starting and ending frequencies for the low-pass filter to sweep the sweep portion of Oxygene surf. A low-pass filter allows frequencies below a certain value to pass, while frequencies above that value are attenuated, or reduced in volume.
8. Sweep duration: [seconds]
This sets how slow or fast the sweep portion of Oxygene surf takes.
9. Post-sweep silence duration: [seconds]
Duration of the silence after the sweep.
10. Crash filter frequency: [Hz]
The low-pass filter frequency of the crash.
11. Crash bass frequency boost: [dB]
How much to increase the volume of the above filter frequency and below. 0 dB means no boost, 6 dB means double the amplitude of this bass frequency, and so on.
12. Post-crash silence duration: [seconds]
How much silence before the Oxygene surf cycle repeats.


  1. If you get an error message "Nyquist returned too many audio channels", this means you tried to generate stereo surf without having first opened a blank stereo track in Audacity. See instructions at the top of this help file on how to do this.
  2. In the original Oxygene, reverb was applied to the surf, giving it a more expansive sound and feeling. If you want to have reverb added to Oxygene surf, you need to apply it yourself after the surf sound has been generated. There's Reverb already in the Audacity effects menu (or GVerb in legacy Audacity versions), and many people use the Anwida Light free VST reverb plug-in.


Fire and Explosion sounds

(firex.ny) Download

Author: David R.Sky

Emulates a Korg MS-10 synthesizer patch.


  1. Audio type: [0=fire 1=explosion, default=1]
  2. Sound duration: [0.1 to 60 seconds, default=3]
  3. Attack time: [0 to 500 milliseconds, default=50]
  4. Explosion decay time: [0 to 500 milliseconds, default=500]
  5. Decay down to this level: [1 to 100 %, default=30]
  6. Cutoff frequency: [100 to 10000 Hz, default=3800]
  7. Filter quality: [Q: 1 to 20, default=10]
  8. Bass boost frequency: [10 to 1000 Hz, default=300]
  9. Bass boost: [0 to 60 dB, default=30]
  10. clipping amount: [0 to 99 %, default=55]

View plug-in text for additional help.


(klstrbas.ny) Download

Author: Steven Jones.

KLSTRBAS (for "cluster bass") generates dense sounds by combining several waveforms with a fixed frequency ratio between them. Early Roland drum machines created cymbal sound in part by combining multiple square waves with non-integral frequency ratios. The combined signal was then high-pass filtered to produce a very dense cluster of high frequency harmonics. The genesis of KLSTRBAS was a failed attempt to create cymbal sounds using this technique.


  1. MIDI key: [0 - 127, default 45]
  2. Decay: [0 - 30 whole seconds, default 2]
  3. Fractional Decay: [0 - 99 hundredths of a second, default 0] - synth kick drum sounds can be produced by setting Decay time to zero and fractional decay to a low value.
  4. Density: [1 - 6, default 4] - Sets the number of component waveforms, defined as four times the density value. Higher densities produce a deeper flange effect but can also cause the sound to go out of tune.
  5. Detune: [0 - 99, default 0] {these two parameters affect the relative
  6. Flange: [0 - 4, default 2] frequencies of the component waveforms}
  7. Wave table: [0=sine 1=tri 2=sqr 3=saw (default}] - type of component waveform. These are not band limited so aliasing may result if either MIDI key or generated frequencies are too high.
Technical note: The frequency of each component is determined by the MIDI key number and the detune and flange parameters. Specifically the nth component has a frequency of:
p * (1 + d/100 + g)^n where:
p is the fundamental frequency determined by the key number,
d is the detune amount 0 <= d <= 99, and
g is derived by the flange parameter (g = 1/(10^(4-f)) for flange value f)

Pluck (Hz)

(Pluck-hz.ny‎) Download

Author: David R.Sky and Steve Daulton.

Pluck generates a synthesized pluck tone with abrupt or gradual fade-out. The sound is the same as the Pluck effect that is shipped with Audacity, except that the pitch of the note is determined by entering a frequency in Hz (cycles per second) rather than a MIDI note.


  1. Pluck frequency (Hz): [10 to 10000, default 261.626] The default frequency is equivalent to MIDI note 60.
  2. Fade-out type [abrupt or gradual, default "abrupt"] Determines how rapidly the pluck sound decays.
  3. Duration [seconds]: Specifies the length of the pluck sound. The default is 1.0 second.

A table showing the relationship between note names, MIDI note numbers, and frequency (A440 standard tuning) is available HERE.

Risset Bell

(rbell.ny) Download

Author: Steven Jones.

Simulates a realistic bell tone based on the pioneering work of Jean Claude Risset. This plug-in is an adaptation of a demonstration lisp file by Pedro Jose Morales contained in the standard Nyquist distribution.


  1. MIDI key: [0 - 127, default 72]
  2. Decay: [0 - 30 seconds, default 10]
  3. Fractional Decay: [0 - 99 hundredths of a second, default 0]

Sequence Generators


(rndtone.ny) Download

Author: Steven Jones.

Generates random sine waves. The generated tones have random frequencies, attack and decay times.


  1. Duration: [1 - 30 seconds, default 20]
  2. Density: [1 - 100 generated tones, default 60]
  3. Floor: [20 - 1000 Hz, default 300] - Lowest frequency of tones
  4. Ceiling: [20 - 1000 Hz, default 600] - Highest frequency of tones

SQ1 Generator Sequencer

(sq1.ny) Download

Author: Steven Jones.

Algorithmic generator sequencer number 1. Note also the Audio Selection Sequencer 2 on the Effect Plugins page which sequences pre-existing audio samples. The sq1 sequencer generates complex sequences of tones by using the sum of three square-wave low frequency oscillators to frequency-modulate two oscillators. The oscillators output one of four waves (sine, tri, square and saw) and may be frequency adjusted relative to each other. The wave tables are not band-limited so aliasing will result for sufficiently high frequencies. There is also an overall three-stage amplitude envelope.


  1. Center: [0 - 10000 Hz, default 440] - the unmodulated carrier frequency
  2. Detune: [0.25 - 4.00, default 1.01] - the frequency of oscillator 2 relative to oscillator 1
  3. Wave: [0=sine, 1=tri (default), 2=square, 3=saw]. Wave shape for both oscillators
  4. Attack: [0 - 10 seconds, default 1]
  5. Sustain: [0 - 10 seconds, default 1]
  6. Decay: [0 - 10 seconds, default 1]
  7. f1: Frequency of LFO 1
  8. a1: Amplitude of LFO 1 - LFO amplitudes are calibrated in Hz indicating the corresponding frequency shift in the audio oscillators.
  9. f2: Frequency of LFO 2
  10. a2: Amplitude of LFO 2
  11. f3: Frequency of LFO 3
  12. a3: Amplitude of LFO 3

Note that the three LFOs are interchangeable.

Generator Utilities

Nyquist Generate Prompt

(generate.ny) Type 2 plug-in for Audacity Download

Authors: Steve Daulton, Edgar Franke, Steven Jones and David R.Sky

Nyquist Generate Prompt makes it easy for Nyquist developers to test their code for "Generate" plug-ins in one step, unlike the Nyquist Prompt built into Audacity under the Effect menu, which requires several steps including pre-loading audio to test. Simply type your Nyquist generate code into the edit fields, then Left Click, TAB or SHIFT + TAB from one edit line to the next or previous line.

The OK button then sends your Nyquist Generate code to be processed directly. The Debug button will open the debug window and display the commands that you entered, any output text generated by the plug-in and, in the event of an error, any debug text returned from Nyquist.

For example:

 (setq mysound (noise 10))
 (lp mysound (pwl 0 5000 10 100 10))

The first line generates 10 seconds of white noise and assigns it to the variable "mysound".
The second line applies a low-pass filter sweeping down from 5 kHz to 100 Hz over a period of 10 seconds to "mysound".

Warning icon

Format specifiers (such as ~a) should be avoided within code strings as they may cause errors.

Tuning Fork

(tuning.ny) Download | MP3 example clip

Author: David R.Sky

A software tuning fork, with a table giving C notes and their equivalent MIDI note numbers near the top of the screen.


  1. Tone duration: [0 - 300 seconds, default = 120]
  2. Constant or fade out: [0=constant volume or 1=fade out, default = constant]
  3. MIDI or frequency: [0=MIDI 1=frequency, default = MIDI] - choose whether to generate tone with reference to a MIDI note number or a frequency. Note: Middle C = MIDI note 60, A above Middle C (440 Hz) = MIDI note 69.
  4. MIDI note: [16 - 127, default = 69] - You can use non-integer values here (such as 60.75)
  5. Frequency: [20 - 20000 Hz, default = 440]

Variable Duration Silence Generator

(varsilence.ny) Download

Author: David R.Sky

This plug-in will generate any length of silence from 0.000 to 60.999 seconds. This plug-in may be useful if you need to run a legacy version of Audacity where the silence generator by default only lets you choose a value in whole seconds.


  1. Silence duration 1: [0 - 60 seconds]
  2. Silence duration 2: [0.000 to 0.999 seconds] - change this if you want a value other than in whole seconds. Both values will be added to determine the silence to be generated.