Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Various generator-type Nyquist plugins. Licensed under GPL v2 unless otherwise noted.
A-weighting is a commonly used curve defined in the International standard IEC 61672:2003. It was originally developed for measuring low level noise in audio equipment.
This tutorial provides a brief introduction to using stereo tracks in Nyquist programming.
If a sound from an Audacity stereo track was given to Nyquist, the *TRACK* variable contains an array of sounds. Because all Nyquist "snd-..." low-level functions only can process mono signals, to use such a function, the *TRACK* array first must be split into single mono signals and afterwards be re-combined into an array before it is given back to Audacity.
In Sal, one could write:
Or in LISP, one could write:
(arrayp *track*) - tests if '*track*' is an array
This page explains how to use Nyquist to add a feedback delay effect in Audacity.
To add a feedback delay effect to an Audacity track with Nyquist, the easiest way is to use the Nyquist "feedback-delay" function:
(feedback-delay sound delay feedback)
The "feedback-delay" function applies feedback delay to sound. The delay must be a number (in seconds). The sample rate is the maximum from sound and feedback (if feedback is also a sound). The amount of feedback should be less than 1 to avoid an exponential increase in amplitude. Also since output is truncated at the stop time of
(aref *track* 0) - the left stereo channel [the 0-th slot of the array]
(aref *track* 1) - the right stereo channel [the 1-st slot of the array]
Important: The Nyquist interface within Audacity can handle a maximum of two channels simultaneously [Audacity stereo tracks]. If in Audacity more than one audio track were selected, each of the selected tracks will be given sequentially, one after the other, with a maximum of two channels simultaneously [stereo] to Nyquist for processing. It is not possible with Nyquist in Audacity e.g. to copy audio signals from one Audacity track into another track.
In the "nyquist.lsp" file in the Audacity "nyquist" sub-directory, there is a function "multichan-expand" defined, which simplifies the handling of multi-channel sounds [e.g. stereo tracks]:
(multichan-expand function &rest arguments)
So the "arrayp" constuct from above can also be written:
This may look a bit more cryptic at first, but it can help to avoid long-winded audio processing functions.
if arrayp(*track*) then
return vector(snd-function(*track*[0]), snd-function(*track*[1]))
else
return snd-function(*track*)Example:
1. First either load a sound file into Audacity or record some.
2. Now click Tools -> Nyquist Prompt. A window with a text field will appear where you can type in:
Do not forget to type the parens. The parens are part of the Lisp language Nyquist is based on. Without the parens the Nyquist Lisp interpreter will not be able to understand your code
See Prompt Basics for more info about the prompt.
After clicking "OK" in the "Nyquist Prompt" window the "feedback-delay" function will take the Audacity sound and return a output sound with a feedback delay of 0.7s throughout the sound. The result of the last computation of the Nyquist code always gets automatically returned to Audacity.
Try "feedback-delay" with longer or shorter delay times as well as different sounds for feedback. Nyquist provides many more functions to generate sounds besides the simple "sine" function. Look at Functions: Sound Synthesis for the complete list of these functions.
;;"(sine 440)" generates a sinusoidal sound wave at 440Hz to be used as the feedback
(feedback-delay *track* 0.7 (sine 440)) (if (arrayp *track*)
(vector
(snd-function (aref *track* 0)) ; left stereo channel
(snd-function (aref *track* 1))) ; right stereo channel
(snd-function *track*)) ; mono signal return multichan-expand(quote(snd-function), *track*) ;; in SAL
(multichan-expand #'snd-function *track*) ;; in LISPOnce installed, the converter appears in Tools -> EQ XML to TXT Converter.
To use it,
Select the target EQ effect. Curves to be imported can be either for Filter Curve EQ effect or Graphic EQ effect but not both.
Select your source XML file.
(optional) select what should happen if the file exists already
Click OK.
The TXT file now is in the same location as the source XML file.
You now can import the TXT file via Filter Curve EQ or Graphic EQ -> Presets and settings -> Import...
Automatic vocal tuning effect, part of the MFreeFXBundle pack
Nyquist Time, Pitch and Tempo effects
This site features download links to various plugins for Audacity, which can be used to extend Audacity's functionality to better match your workflow.
On this site you can find download links for equalizer plugins, filter plugins, delay and reverb plugins, and more. If you'd like to download many plugins at once, you also can try entire plugin suites.
All plugins in the realtime effects section can be used instantly and non-destructively from the effects panel in Audacity.
This means that you can change the effect settings while playing, and come back to your settings after doing many other things - without the need to undo anything, or to wait for the effect to be applied to the track.
Further information about using realtime effects can be found here:
When you install plugins, they're automatically enabled the next time you restart Audacity. Alternatively, you can also locate and enable them via Effect -> Plugin Manager -> Rescan Plugins. Further instructions can be found here:
, a plugin to check if an audio book complies with the ACX guidelines
, an effects library from Audacity's sister project.
, a library to import and export various media formats such as M4A, WMA and MP4.
If you want to add your own plugin, or one that you found on the web, read the .
Audacity has built-in support for Nyquist effects on all operating systems. You can download additional Nyquist plugins, or create your own using the . Nyquist code can be conveniently tested using "" under the Effect menu.
Audacity has built-in support for plugins, which are an extensible successor of LADSPA effects. LV2 plugins are mostly built for Linux, but Audacity supports LV2 on all operating systems. To install LV2 plugins, place them in the then use the Plugin Manager to enable the new plugins as in the plugin installation instructions.
Audacity can load VST effects (but not VST instruments) on all operating systems.
Starting with Audacity 3.2, VST3 effects are also supported on all operating systems.
On Mac OS X only, you can add plugins to the .
LADSPA is superseded by LV2. These plugins are mostly built for Linux.
This site is only meant as a starting point for effects. There are many more plugins, particularly VST3 ones, available on various vendor sites, directories and online stores. Some of them are listed below:
: ,
: ,
Generates approximately harmonic tones by mixing narrow bands of noise
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.
Families of plugins by the same authors
A collection of essential effects. Contains a Chorus, Compressor, De-esser, Delay, Master, Noise Gate, Pitch Fix, Reverb, Rotary, and two EQ effects.
MuseFX is a free and expanding collection of high quality plugins for Audacity, MuseScore 4 and any VST3 compatible host. MuseFX brings the tools you need to elevate your mix to a higher level.
A set of simple VST effects, most known for the GSnap (auto-tune) effect.
A collection of 37 effects in categories like Analysis, Saturation & distortion, Dynamics, Equalization, Mastering, Mixing, Pitch and others.
Powerful plugins for any type of audio mixing: eq, dynamics, reverb, and more.
Kilohearts Essentials is free collection of 30+ plugins.
A selection of some effects found in Reaper.
Music separation, remix and generation, noise suppression, and transscription
A set of LADSPA effects. They can be found in most Linux repositories.
An LV2 plugin suite featuring a wide array of plugins for audio mixing and mastering. As of version 0.90.0 there are 47 plugins in the suite.
Note: The virtual instruments included are not supported in Audacity.
The Calf plugins can be found in the repositories of most Linux distributions, additionally, compilation instructions can be found here:
A set of AI-enabled effects, generators, and analyzers. These AI features run 100% locally on your PC 💻 -- no internet connection necessary! OpenVINO™ is used to run AI models on supported accelerators found on the user's system such as CPU, GPU, and NPU.
Music Separation🎵 -- Separate a mono or stereo track into individual stems -- Drums, Bass, Vocals, & Other Instruments.
🧹 -- Removes background noise from an audio sample.
🎶 -- Generates music from a text prompt or continues an existing song
🎤 -- Uses to generate a label track containing the transcription or translation for a given selection of spoken audio or vocals.
A virtual device that sits between your microphone and Audacity and other programs which allows you to use an AI denoiser.
Caution: NVIDIA Broadcast only works on Windows machines with a NVIDIA RTX GPU.
Further, it only works on spoken word content; musical content is treated as noise and filtered out.
Nyquist Generate Prompt makes it easy for Nyquist developers to test their code for "Generate" plugins in one step.
A software tuning fork, with a table giving C notes and their equivalent MIDI note numbers near the top of the screen.
This page provides a brief introduction to using the *SCRATCH* symbol in Nyquist programming.
*SCRATCH* is a global symbol, specific to Nyquist in Audacity, which is not deleted in-between plugin runs. It provides a way for information to survive from one invocation of a plugin to the next. However, you should not rely on the "value" of *SCRATCH* beyond a single invocation of a plugin as it could be overwritten by another plugin. It is better to use property lists of *SCRATCH*. That way, you get a whole name space rather than a single variable name, and with careful naming of the property keys, name collisions can be avoided.
To pass data from plugin "effectX-partA" to "effectX-partB":
1. Assign a property name based on the effect name, e.g.: 'EFFECTX [or in SAL, which does not support the single-quote notation of LISP, write QUOTE(EFFECTX). ]
2. "effectX-partA" should delete any old property value:
exec remprop(quote(*SCRATCH*), quote(effectx)) ;; in SAL
(remprop '*SCRATCH* 'effectx) ;; in LISP3. "effectX-partA" should compute a new property value v and save it:
exec putprop(quote(*SCRATCH*), v, quote(effectx)) ;; in SAL
(putprop '*SCRATCH* v 'effectx) ;; in LISP4. "effectX-partB" should access the property using:
set v = get(quote(*SCRATCH*), quote(effectx)) ;; in SAL
(get '*SCRATCH* 'effectx) ;; in LISP5. When "effectX-partB" finishes, it should remove the property:
But there may be cases where you do some analysis and want to use the analysis data multiple times. You might even have multiple analysis plugins operating on different inputs to collect data to feed into a plugin with multiple inputs. In this case, which might be quite common, you should not call REMPROP(), but this has the problem of leaving data on the *SCRATCH* property list indefinitely.
In cases where *SCRATCH* data is not deleted immediately after use, and where there is the potential to leave large amounts of memory there, there should be another effect, e.g. "effectX-partCleanup", that simply calls:
allowing the user to explicitly free up any data stored on the 'EFFECTX property. It would be reasonable to omit the "effectX-partCleanup" effect if the data stored on the property list has a maximum size of, say, 10KB. The problem we want to avoid is properties with unbounded size getting left in the heap until Audacity is restarted.
You can turn any short piece of imported, recorded or generated audio into a (repeated) sequence of notes based on chosen tempo, beats per sequence and semitone values. Any sound can be used.
This page explains how to use Nyquist to change the volume of left and right stereo channels independently.
As discussed previously, the audio data <sound>from an Audacity track is passed to Nyquist in a variable '*track*'. If the track is mono (just one channel) then the <sound> is simply the value given to the variable '*track*'. However, for a stereo track there are two sounds, and these are passed to Nyquist as two elements of an array. The name of the array is '*track*'.
To access a specific element of an array we use the command.
As a stereo track has 2 channels, the array '*track*' has two elements which are numbered 0 and 1. the 0th element is the audio data from the left channel and the other element contains the audio data from the right channel.
Odd Harmonics Only: [0 = all harmonics (default), 1 = odd-numbered harmonics only]
Bandwidth (Hz): [1 to 10000 Hz, default 50]
Amplitude (0 - 1): [0 to 1, default 0.8]
Duration (minutes): [0 to 20 minutes, default 0]
Duration (seconds): [0 to 60 seconds, default 30]
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 plugins, 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 plugin will return the error message: "Nyquist returned too many audio channels."
Constant or fade out: [0=constant volume or 1=fade out, default = constant]
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.
MIDI note: [16 - 127, default = 69] - You can use non-integer values here (such as 60.75)
Frequency: [20 - 20000 Hz, default = 440]
(setq mysound (noise 10))
(lp mysound (pwl 0 5000 10 100 10))Overall transpose value: [(default 0), then for successive measures (default 0 0 5 5 0 0 -5 -5)]
Sequences to generate: [1 - 96, default 4]
1st Semitone, volume, pan value[s]: [default (0 1 0) (4 .5 .2) (7 .5 .8) (2 1 .5)]
2nd SVP value[s]: [default (12 .5 .8) (7 .5 .2) (4 1 1) r]
3rd, 4th. 5th and 6th SVP value[s]: [filled in by user]
VST3 (C++) The industry standard for plugins. Widely supported across Audacity, Musescore and most DAWs. Documentation: https://steinbergmedia.github.io/vst3_doc/vstsdk/index.html
LV2 (C, C++, other C-compatible languages) The Linux plugin standard. Widely supported across open source software. Documentation: https://lv2plug.in/book/
Vamp (C++, Python) An easy-to-develop-for framework for audio analyzers. Documentation: https://www.vamp-plugins.org/develop.html
Additionally, LADSPA, VST2.4 and Audio Units are supported. LADSPA and VST2.4 are the predecessor to LV2 and VST3, respectively, and thus fairly outdated. Audio Units are only available on macOS.
Further, Audacity has modules, which allow extending Audacity beyond just editing audio. It is somewhat experimental and not yet documented.
Audacity supports the following scripting formats:
mod-script-pipe (Python, Perl) A module that exposes a named pipe to which commands can be sent. Documentation: https://manual.audacityteam.org/man/scripting.html
Macros You can use Audacity's macros feature to chain effects and actions together. This can be exported as a file. Documentation: https://manual.audacityteam.org/man/macros.html
If you have found a macro or script which you find universally applicable, you can share it in the scripts section.


Parameters:
Duration: [1 - 30 seconds, default 20]
Density: [1 - 100 generated tones, default 60]
Floor: [20 - 1000 Hz, default 300] - Lowest frequency of tones
Ceiling: [20 - 1000 Hz, default 600] - Highest frequency of tones
Algorithmic generator sequencer number 1.
Adds high frequency harmonics to brighten very dull recordings that don't respond to Equalization. On already good recordings, you can add a little extra "sparkle" or "air". The harmonics are generated by soft-clipping the high frequency band as in a diode limiter, then recombining this signal with the original.
Parameters:
Enhancer Crossover Frequency: [2000 to 4500 Hz - default=3200] - lower this for very dull sources, or increase it to add only very slight or subtle high frequency harmonics.
Enhancer Drive: [-10 to 10 dB - default = 0] - increase this to generate more harmonics and vice versa.
Harmonic Generator Mode: [Even order,Odd order - default = Even] - generates even harmonics or odd harmonics. Even harmonics tend to be less harsh.
Enhancer Noise Gate Threshold: [-40 -16 dB - default = -28] - increase this to prevent adding un-necessary noise in quieter recordings.
Enhancer Mix Level: [-26 to +6 dB - default = -10] - how much of the generated harmonics are mixed into the original audio.
Output: [Mix (Normal),Effect Only,Effect Level - default = Mix] - the two "effect" modes let you see and hear the generated harmonics on their own. Use "Effect Level" specifically to test if the Enhancer Drive level is set correctly. Edit > Undo and run Harmonic Enhancer in Mix (Normal) mode to apply the effect.
A tape saturation simulation effect.
exec remprop(quote(*SCRATCH*), quote(effectx)) ;; in SAL
(remprop '*SCRATCH* 'effectx) ;; in LISP exec remprop(quote(*SCRATCH*), quote(effectx)) ;; in SAL
(remprop '*SCRATCH* 'effectx) ;; in LISPTo access the audio data from the left channel we can use:
To access the audio data from the right channel we can use:
As described in the previous tutorial we can amplify a sound using the (scale) function. For a mono track if we want to halve the amplitude of the sound we simply type
If we use this instruction on a stereo track the function is applied to each element of '*track*' in turn, so both channels are amplified to half of their original amplitude. However if we want to access the channels individually then we also need to know how to send two different sounds back to the same track in Audacity.
To send two different sounds to a stereo track in Audacity we must create an array with two elements. The first element will contain the <sound>{=html} for the left channel and the second element will contain the sound for the right channel. The easiest way to do this is to use the vector function.
<left channel>and <right channel> will be the sounds that we are sending from Nyquist.
To try this out we will amplify the left channel only of a stereo track.
Open a short stereo track.
From the Effect menu select "Nyquist Prompt" and enter the following code:
The 0th element in this array is the original left channel (aref *track* 0) that has been scaled [amplified] by 2. This will be the new left channel. The next element in this array is the original right channel (aref *track* 1) which is sent back unaltered as the new right channel.
Instead of using the function (scale) we could use the function mult. This is virtually identical to using the function scale except that we do not need to specify the multiplication factor first. (mult 2.0 *track*) is identical to (mult *track* 2.0).
For our second example we will amplify the left channel to half of its original amplitude and the right channel to double its original amplitude:
(aref *track* 0)(aref *track* 1)(scale 0.5 *track*)(vector <left channel> <right channel>)(vector
(scale 2.0 (aref *track* 0))
(aref *track* 1)
)(vector
(mult (aref *track* 0) 0.5)
(mult (aref *track* 1) 2.0))Compressor 4 : Dynamics processor
Dual VCF : non-linear filters
Enhancer : preset filter eq
Equalizer 4: Digital remasterd Anolog dynamic eq
Flowtones : synthesizer
GonioMeter : Stereo Image Analyzer
MBC : Multiband Compression and saturation
Morphit : Headphones correction and personalization
ReelBus 4 : Magnetic tape recording, echo and flanger simulator
Reverb 4 : Lush reverberation and shimmer
Sibalance 4 : Spectral de-esser and harshness remover
Spectogram : Insightful time and frequency visualization
VoicePitcher 4 : Vocal doubling, pitch shifting and freezing effect

An easy to use mastering plugin. Part of the Muse FX pack.
A multi-purpose dynamics processor, can be used for EQ, compressor, gate and noise reduction purposes. Part of ReaPlugs.
A powerful compressor with custom processing shape, part of the MFreeFXBundle pack
A multi-band compressor effect, part of ReaPlugs.
Nyquist Dynamics Processing effects
Nyquist Amplify, Mix and Pan Effects
Paid plugins are not allowed at this point.
Generally, a plugin entry should look like this:
###################################################
A short description of what the plugin is good for.
#####################################################
Pitch and Tempo plugins
Delay and Reverb plugins
Distortion plugins
Dynamics Processing plugins
Filter plugins
Equalizer plugins
Modulation plugins
Noise Removal and Repair plugins
Plugin Suites
Recommended: MuseFX
AI plugins
Mastering loudness for various streaming services
Various streaming platforms and other institutions expect content to have a certain range for peaks, RMS, LUFS, noise floor or a combination of the aforementioned. These plugins provide the relevant checks for the platforms in question.
This page explains how to use Nyquist to change the volume of Audacity tracks in different ways.
SAL is a new alternative syntax to LISP. Although Nyquist is based on the LISP programming language, you can write almost any Nyquist program in SAL. Most people prefer SAL syntax to LISP syntax because SAL is a bit more like popular programming languages that include Java, C, and Python.
You can specify which one you're using with the respective :
You can only use one or the other in your script.
To change the volume of an Audacity track with Nyquist, the easiest way is to use the Nyquist function:
scale(number, sound)
The "scale" function multiplies the amplitude [volume] of the "sound" by the given "number". A number of 0.5 will make the sound become only half as loud as before, while a number of 2 will make the sound become double as loud as before.
Example:
To run this example in the Nyquist Prompt, ensure that "Use legacy (version 3) syntax" is not selected.
For more information about the *track* keyword, refer to the
1. Create an audio track with some audio [eg a short recording]
2. Now click Tools > Nyquist Prompt. A window with a text field will appear where you can type in:
Important: Do not forget to type the parentheses. The parentheses are part of the Lisp language Nyquist is based on. Without the parentheses the Nyquist Lisp interpreter will not be able to understand your code.
Important: Do not forget to type the parens and comma. These are part of the SAL language.
After clicking "OK" in the "Nyquist Prompt" window the "scale" function will take the Audacity sound and return a "scaled-down" sound with half the volume to Audacity. The result of the last computation of the Nyquist code always gets automatically returned to Audacity.
If you try "scale" with big numbers you will notice that you can return sounds with volumes taller than the Audacity track which will sound very distorted if you play them afterwards in Audacity. So an important lesson to learn is that Nyquist gives you the freedom to do whatever you want but it's now on you to take care that the result will still sound good afterwards.
An alternative command for amplifying a sound is the command.
MULT may be used with numbers, sounds or multi-channel sounds. When using MULT with a sound and a number, each sample value in the selected sound is multiplied by the number, which is essentially the same as using the SCALE command.
An easy to use chorus effect. Part of the Muse FX pack.
An easy to use Rotary/Leslie effect. Part of the pack.
A modulator with 11 different algorithms.
Classic two oscillators ring-modulation effect, part of the pack
Nyquist
RMS level The RMS level of the selected audio.
Noise floor The RMS level of the quietest 500 milliseconds in the selection
Warnings: (These are only displayed when applicable.)
Limitations
These tools provide useful guidance, but they do not guarantee that the services in question will reject or modify the uploaded sounds anyway. This particularly goes for ACX, which has additional quality standards not measured by this tool.
The Noise Floor measurement is taken from the quietest half second of audio found in the selection. If one part of the selection is quieter than the rest, you will get a false value. Also note that ACX requires a very quiet noise floor to be present.
Minimum selection length is 1/2 second.
Maximum selection length is about 2.14 billion samples (13.5 hours at a sample rate of 44100 Hz)
Also beware that some noise sources are worse than others, and noise such as the 1000 Hz whine found in some USB audio interfaces may result in an ACX rejection even though it is below the -60 dBFS noise floor requirement.
Club Play
Deezer
Netflix
(Podcasts)
Sony related
Soundcloud
Spotify
Spotify
Tidal
YouTube
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.
Parameters:
Left channel tone frequency: [50 - 1000 Hz, default 100].
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.
Adjust total time: [1 - 60 minutes, default = 0 (no adjustment)].
Fade-in and fade-out times: [0 - 120 seconds, default 10]
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:
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).
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).
An LFO surf generator.
A surf generator inspired by Jean-Michel Jarre's album Oxygene.
(scale number sound);codetype lisp
;codetype sal(scale 0.5 *track*)return scale(0.5, *track*)(mult *track* 0.5)return mult(*track*, 0.5)MAC: OSX 10.8/10.9/10.10/10.11, MACOS 10.12/10.13/10.14/10.15, MACOS 11 BIG SUR
PLUGIN FORMATS: 64-BIT VST2.4/VST3/AAX/AU
\
Information from the vendor: https://valhalladsp.com/shop/modulation/valhalla-space-modulator/
Earth Shattering Kaboom.
ValhallaSpaceModulator is our take on flanging.
Eleven algorithms allow you to get through-zero flanging, barberpole flanging, detuning, doubling, strange echoes, reverbs, and all sorts of effects that defy description.
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
Automatic gain compensation (AGC)
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.






A distortion tool, part of the MFreeFXBundle pack
A frequency shifter plugin, part of the pack
A tube-like saturation effect, part of the pack
An analog-inspired distortion effect, part of the pack
A wave-shaping effect, part of the pack
Nyquist
Emulates a Korg MS-10 synthesizer patch.
KLSTRBAS (for "cluster bass") generates dense sounds by combining several waveforms with a fixed frequency ratio between them.
Pluck generates a synthesized pluck tone with abrupt or gradual fade-out.
Simulates a realistic bell tone based on the pioneering work of Jean Claude Risset.
This page explains how to use the Audacity Nyquist Prompt to test-run Nyquist code snippets.
The Audacity Nyquist prompt appears in Audacity's "Tools" menu.
Sound files are imported into Audacity via: File > Import > Audio or the shortcut CTRL + SHIFT + I.
If you have no pre-existing sound files to work with, you can create your own mono or stereo tracks via the Audacity "Generate" menu.
Select the track(s) and click Tools > Nyquist Prompt.
The Nyquist Prompt appears like this:
Simply enter the code below and press Apply to receive a "hello world" prompt:
The programming language used above is Lisp. The Nyquist prompt automatically assumes you're using Lisp if the first character is an (. If it isn't, the prompt assumes you are writing SAL, which is more similar to C-like syntax. If you prefer SAL, a "hello world" program looks like this:
The prompt also comes with a debug button. It shows you various warnings and non-fatal errors after the program finished. For example, if you forget the quotation marks around "hello world", just hitting apply will just do nothing, whereas hitting debug will tell you where you went wrong:
The current Nyquist manual is here: .
A useful index of Nyquist commands is here:
Audacity uses the *TRACK* variable to reference the current audio file/selection. Thus, you can use basic commands such as mult or sum with *track* and the Nyquist prompt will replace the file/selection with the result (or as Audacity calls it, "returned audio").
Type the following into the Nyquist Prompt (using LISP syntax): (sum *track* 1)
``Or type the following equivalent SAL command: return *track* + 1
The whole signal has now moved up to above zero.
To multiply a signal with a generated carrier signal, you can use the following commands:
The (hzosc 19000) produces 19kHz sine wave carrier.
The (osc-pulse 19000 0) produces 19kHz square wave carrier (note the 0 is the bias or 50/50 duty cycle, -1 to 1 = 0%-100% pulse-width ). Applying the 19kHz square wave carrier obtains this result.
The top and bottoms of the signal can then be clipped using the Hard Limiter option from the effects menu (0dB limit and Wet level 1) if required.
The above examples show how you can use the many Nyquist commands to perform basic signal processing without using scripts.
In general terms, a variable is a symbol which contains a value. The symbol can be any valid name, and its value may be changed (hence "variable"). In Nyquist, the value may be of any data type (for example, a number, a character, or even a sound) and may be changed from one data type to another. Unlike some programming languages, variables do not need to be declared before use - they can just be set, and then they exist.
In addition to the value of the variable, one or more "properties" may also be attached to the symbol. Each "property" has a name and a value. The properties are known collectively as the symbol's "property list".
Setting the value of a symbol "binds" the value to the symbol. A symbol that has no value (not even "nil") is said to be "unbound".
In addition to the value of a symbol, we can also attach properties. This is a way of associating a list of items, each with their own value, to a single variable. Each item is called a key or indicator, and we can give each key a value. This list of items is called a "property list" (or plist for short).
To get the value of a property, we use the GET command.
When getting the value of a property, we do NOT want to evaluate either the variable (symbol) or the key symbol, so we must "quote" both symbols to prevent evaluation.
When the type of a plugin is process or analyze, Audacity sets the value of *TRACK* to the currently selected audio, and sets a lists of properties related to that track. The plugin processes one track at a time in sequence, and the *TRACK* variable is set each time for the track that is being processed.
The value of *TRACK* provides direct access to the selected audio, and its property list provides access to other properties of the track. The NAME property provides the name of the Audacity track that is currently being processed. To access the value of the NAME property, we use the command.
The GET command returns the value of the property (the name of the track), which may be assigned to another variable and used elsewhere in the code. For example, to print a pretty message:
This property contains a list of start and end times of each audio clip in the track. This property is more likely to find uses in than in standard Nyquist plugins. Note that this property refers to the entire selected track, and not only the selected portion of the track.
For mono tracks, the CLIPS property is a list, containing a two element list for each clip in the selected track. A mono track with two audio clips will look like ((s1 e1)(s2 e2)) where s1 and s2 to are the start times of the two clips, and e1 and e2 are the end times.
This code snippet will print the start and end times of the first audio clip in a mono track:
It is important to remember that Nyquist sees the start of the current selection as "time=zero". Thus if we wish to actual track times in Nyquist, we must offset the times by the start time of the current selection. We can create a point label at time=0 with (list (list 0 0 "")), but this is relative to the start of the current selection. If we want to create a label at time=zero as shown in the regardless of where the selection starts, then we must offset the label times by the start time of the selection.
Fortunately it is easy to find the absolute start time of the selection by using "START" property of the *SELECTION* variable: (get '*selection* 'start). We can create a label at an absolute time (relative to Audacity's Timeline) like this:
We can now put this all together and create a label for each audio clip in the selected track:
Just as stereo sounds are represented as an array of sounds, so the track "clip" data for stereo tracks is an array of lists (one list per channel). A stereo track with two audio clips in each channel will look like: #(((s1 e1)(s2 e2))((s3 e3)(s4 e3))) where s1 to s4 to are the start times, and e1 to e4 are the end times.
This code snippet will print the start and end times of the first audio clip in the left channel of a stereo track:
In a similar manner to the mono example, we can create a label for each clip in a stereo track:
Decay down to this level: [1 to 100 %, default=30]
Cutoff frequency: [100 to 10000 Hz, default=3800]
Filter quality: [Q: 1 to 20, default=10]
Bass boost frequency: [10 to 1000 Hz, default=300]
Bass boost: [0 to 60 dB, default=30]
Clipping amount: [0 to 99 %, default=55]
Decay: [0 - 30 whole seconds, default 2]
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.
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.
Detune: [0 - 99, default 0] {these two parameters affect the relative
Flange: [0 - 4, default 2] frequencies of the component waveforms}
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)
Fade-out type [abrupt or gradual, default "abrupt"] Determines how rapidly the pluck sound decays.
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.
Decay: [0 - 30 seconds, default 10]
Fractional Decay: [0 - 99 hundredths of a second, default 0]
Automatic gain compensation (AGC)
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
Automatic gain compensation (AGC)
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
Automatic gain compensation (AGC)
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
Automatic gain compensation (AGC)
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
Automatic gain compensation (AGC)
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.




(print "hello world")return "hello world";Lisp input: (print hello world)
error: unbound variable - HELLO
if continued: try evaluating symbol again
1>
;Sal input: retun hello world
>>> parse error: Syntax error.
>>> in NIL, line 1, col 14.
return hello world
^(mult *track* (hzosc 19000)) ; Lisp
return *track* * hzosc(19000) ; Sal(mult *track* (osc-pulse 19000 0)) ; Lisp
return *track* * osc-pulse(19000, 0) ; Sal(get 'varaiable-name 'property-name)set v = get(quote(varaiable-name ), quote(property-name));codetype lisp
(get '*TRACK* 'NAME)
;codetype sal
return get(quote(*TRACK*), quote(NAME));codetype lisp
(setf track-name (get '*TRACK* 'NAME))
(format nil "The name of the current track is ~s." track-name)(setf track-clips (get '*track* 'clips))
(print (first track-clips))(setf label-time 10) ;the absolute time for the label is at the 10 second mark
(setf offset (get '*selection* 'start))
(list (list (- label-time offset)(- label-time offset) ""));type analyze
(setf track-clips (get '*track* 'clips))
(setf start (get '*selection* 'start))
(let (labels) ;initialise "labels" variable with NIL value.
(dolist (c track-clips labels)
(setf label
(list (- (first c) start)
(- (second c) start)
""))
(push label labels)))(setf track-clips (get '*track* 'clips))
(setf left-channel (aref track-clips 0)) ; the list of clips in the left channel
(print (first left-channel));type analyze
(setf track-clips (get '*track* 'clips))
(setf start (get '*selection* 'start))
(setf labels ()) ;an empty list
(defun add-labels (data text)
(dolist (c data)
(setf label
(list (- (first c) start)
(- (second c) start)
text))
(push label labels)))
(multichan-expand #'add-labels track-clips #("Left" "Right"))
labels ;Reurn labelsDescription from the vendor:
Filterjam is a multi-band resonant filter delivering weird ringmod-like filtered sounds. The input signal is divided into 4 bands that are then summed or multiplied together according to the selected mode. Filterjam can be very harsh or gentle, it can add brightness or depth to synth sounds, but it can also completely mangle acoustic sources.
Multi-Band Resonant Filter
Oversample up to 16x
Lightweight on CPU
Preset system with randomizer
Windows 7, 8, 10 2GHz CPU, 4 GB RAM VST2, VST3, AAX, CLAP (64-bit)
OS X 10.9 – macOS 12 2GHz CPU, 4 GB RAM VST2, VST3, AU, AAX, CLAP (64-bit) Universal 2 Binary
A host-synced filter module
A modern motion filter plugin
A filter with slopes up to 120dB/oct, part of the MFreeFXBundle pack
A multi-comb filter, part of the MFreeFXBundle pack
Nyquist Filters and EQ effects
A noise gate keeps noise in quiet parts out while not affecting the audio you want at all.
An easy to use de-esser. Part of the Muse FX pack.
A multi-purpose dynamics processor, can be used for EQ, compressor, gate and noise reduction purposes. Part of ReaPlugs.
A noise gate effect, part of ReaPlugs.
Removes most sounds that aren't speech.
This plugin only works with a 48000Hz sample rate. You can change the project sample rate in Audio Setup -> Audio Settings.
A virtual device that sits between your microphone and Audacity and other programs which allows you to use an AI denoiser.
Caution: NVIDIA Broadcast only works on Windows machines with a NVIDIA RTX GPU.
Further, it only works on spoken word content; musical content is treated as noise and filtered out.
Dynamics Processing - Dynamics processors can often be used for noise reduction purposes

Generates a nasal-sounding tone composed of the base frequency plus n-1 harmonics.
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".
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".
HQ-Tone is a high quality (no alias) tone generator. This plugin is typically faster than Audacity's built-in "Square - no alias" generator, particularly for low frequencies, and provides more waveform choices.
Generates a modulated pulse tone.
A plugin collection for various Vamp Analyzers. The plugins included are all open source software developed and published by various different authors and institutions:
BBC
Carl Bussey
Chris Cannam
Jamie Bullock
Download page:
This analyzer was developed as an aid for audiobook producers. It displays a number of useful statistics about the selected audio, and compares them to the specifications published by (an Amazon.com subsidiary).
A Goniometer, also known as XY-Oscilloscope or Phase Scope.
Note: Requires registration. This Analyzer can be found in the Effects category.
Either places a single label at the first instance of a peak volume, or multiple labels at all the instances of that peak.
This plugin attempts to detect and display the musical pitch and frequency of the selected note. In most cases the default settings will work best. The other options are provided to handle special cases such as analyzing synthetic signals that are outside of the usual musical range.
Additional Vamp Plugins can be found on
Buzz tone duration: [0.1 - 120 seconds, default 5.0]
Volume: [1 - 100 percent, default 95]
Include military tones A-D: [0 = no (default), 1 = yes]
Option to include silent intervals: [0 = no (default), 1 = yes]
Volume: [0.001 - 1.000, default 0.3]
Tone length [0.001 - 1.000 seconds, default 0.1]
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.
Post silence duration: [0 - 1 seconds, default 0.1]
Tone duration: [1 - 1000 milliseconds, default 100]
Silence duration after tone: [0 - 1000 milliseconds, default 100]
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.
Volume: [1 - 100 percent, default 80]
Frequency (Hz): [20 - 10000 Hz, default 440 Hz] - the frequency of the generated waveform.
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).
Duration: [must be greater than zero] - Time units may be selected by clicking the downward pointing arrow on the right side of the control.
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.
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.
Duration: [1 - 30000 milliseconds, default 10000]
Mod Rate: [1 - 100, default 1] - number of modulation cycles
Mod Depth: [-100 - +100 percent, default 90]
Mod Wave: [0 = tri (default), 1 = up sawtooth, 2 = down sawtooth] - waveform of tone
Width: [0 - 100 percent, default 0] - fixed pulse width
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.
Marsyas Plugins
Matthias Mauch
Paul Brossier
Queen Mary, University of London
Simon Dixon and Chris Cannam
University of Alicante
RMS level The RMS level of the selected audio.
Noise floor The RMS level of the quietest 500 milliseconds in the selection
Warnings: (These are only displayed when applicable.)
Warning: ACX require 44100 Hz sample rate.
Warning: ACX require running time no longer than 120 minutes
Noise floor: -inf dB Warning (too low - Dead silence sounds unnatural.) ACX require constant, low level "room tone" rather than an unnaturally silent background noise level.
Limitations
This tool is intended only as an aid in achieving ACX acceptance. Even straight passes from this tool is NO guarantee of ACX acceptance.
The Noise Floor measurement is taken from the quietest half second of audio found in the selection. If one part of the selection is quieter than the rest, you will get a false value.
Minimum selection length is 1/2 second.
Maximum selection length is about 2.14 billion samples (13.5 hours at a sample rate of 44100 Hz)
Also beware that some noise sources are worse than others, and noise such as the 1000 Hz whine that often happens in USB audio interfaces may result in an ACX rejection even though it is below the -60 dBFS noise floor requirement.
\
Limitations
This effect can be very slow on long selections.
If the audio is clipped and "Place labels at: all equally loud peaks" is selected, there may be an extremely large number of labels created. The "Minimum Distance" setting is useful to reduce the number of labels.
Peaks that appear to be at the maximum amplitude will not be labeled unless they are exactly at the maximum amplitude.
Analyse first (seconds): [0.1 to 1. Default 0.2] At the default setting the first 0.2 seconds of the selection will be analyzed.
Limitations
This plugin is intended to detect single notes - you may get strange results if you try to analyze chords.
Extremely high frequencies may not be detected very accurately, especially if the sample rate is not very high. The plugin will often detect very high frequencies better if the sample rate is 96000 Hz rather than 44100 Hz.
The plugin should usually be able to detect pitches of single notes to within a few percent of the actual frequency. Don't expect the frequency in Hz to be exact..
Advanced usage tips
For detecting very low frequencies (less than a few hundred Hz) the plugin should be set to the low frequency range (20 to 1000 Hz).
For detecting very high frequencies (several kHz) the plugin should be set to the high frequency range (1 kHz to 10 kHz).
For measuring synthesized tones and other electronic signals, the most accurate measure of frequency in Audacity is to use "Plot Spectrum" and set the "Size" setting to a high value.




An easy to use, versatile delay effect, part of the Muse FX pack.
An easy to use, versatile reverb effect, part of the pack.
A multi-tap delay effect, part of ReaPlugs.
An easy-to-use highly optimized convolution reverb, part of the pack
A Lush algorithmic reverb effect, , part of the pack
A free algorithmic stereo reverb
A plate reverb with a vintage 80's character
A natural sounding reverb based on the concept of a room simulator
OldSkoolVerb offers you a comprehensive set of parameters permitting you to achieve various reverbs ranging from plate reverb to room reverb to hall reverb sound.
ValhallaSupermassive lets you create massive reverbs, harmonic echoes and space sounds
Nyquist effects
An easy to use yet powerful EQ. Part of the Muse FX pack.
An easy to use 4-band EQ. Part of the pack.
An unlimited band IIR based equalizer effect, part of ReaPlugs.
A 16-band linear-phase graphic equalizer with multi-channel operation support
A 32-band equalizer offering -12 dB to +12 dB gain in 1/3 octave steps from 16 Hz to 20 kHz
A 10-band graphic equalizer emulating the 1967 EQ560 hardware
6-band equalizer with analyzer, part of the pack
The W2395c is a classic Baxandall EQ combined with a powerful and beautiful sounding mid band
Nyquist effects
A is an element of a graphical user interface (), such as a button or slider, which facilitates user interaction. Audacity supplies a number of widget types for Nyquist plugins, which are ultimately derived from the toolkit. Fortunately, Nyquist plugin developers are largely spared from the complexities of WxWidgets, and can simply select which widgets they need by adding the appropriate "header" to the top of the plugin script.
The layout of a Nyquist plugin GUI is a simple list of widgets, one above the other.
Slider widgets are supported in all Audacity Nyquist plugin versions.
Tap lengths can be in time (s/ms) or quarter notes
Feedback, LPF/HPF, resolution reduction per tap
Stereo width per tap
Volume/pan per tap
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
Automatic gain compensation (AGC)
M/S, single channel, up to 8 channels surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.
Sample Rate: from 44100 to 192000 Hz.
Lots of presets
Fast build up time, also with long reverb sounds.
Works on almost every audio material.
Easy to use.
Only stereo channels supported.
Reverb mode editor
Stereo processing
64-bit floating point processing
Preset manager
Undo/redo history
A/B comparisons
Contextual hint messages
All sample rates support
Zero processing latency
User interface color schemes
Resizable user interface
Retina and HighDPI support


Frequency response and phase response display
Display of approximate note+octave for frequencies
Per-band bypass control
Full-view of graph optional for precise editing
Mouse modifiers/mousewheel usable for editing bandwidth of points in graph
Linear-phase equalizing
+/- 12 dB gain range per band
Stereo and multi-channel processing
Internal channel routing
Channel grouping
Mid/side processing
64-bit floating point processing
Preset manager
Undo/redo history
A/B comparisons
Integrated low-cut filter
Adjustable input gain
12 dB of boost/cut per band.
Proportional Q narrows filter Q at extremes.
IN/OUT switch — allows the user to bypass the Graphic Eq for before/after comparisons.
9 filter types for each band with quick adjustment
Powerful spectrum analyzer and sonogram
Unique visualisation engine with classic meters and time graphs
MIDI controllers with MIDI learn
M/S, single channel, up to 8 channelds surround and up to 64 channels ambisonics processing
Extremely fast, optimized for newest AVX2 and AVX512 capable processors
Supports VST, VST3, AU and AAX interfaces on Windows and macOS
See the pack for installation instructions.
The W2395c is a classic Baxandall EQ combined with a powerful and beautiful sounding mid band. As a solitary or complementary equalizer with that special something, its particular tone and slightly interactive bands let your tracks stand out big time. In close cooperation with its creator, analog mastermind Roger Schult, we are delighted to offer this amazing plugin completely for free.
The W2395c excels in controlling the midrange within the context of broad tonal shaping of bass and treble. The high shelf is great for carving out percussive sounds as well as opening or darkening instruments and voices. The partnering low band provides a precise and solid grip on the sub frequencies, while the mids manage the balancing act between natural and beefy with stunning ease.
Operating the W2395c is as straight forward as it gets, and still the few controls provide great flexibility. The low band can be switched from 80 to 110 Hz, the highs from 2 to 5 kHz, and the semi-parametric mids offer 3 different Q factors to choose from. The drive control is a plugin-exclusive extra for adding some nice grit to its supernaturally natural tone character.
With its super intuitive controls and musically interacting curves, the W2395c is a special and unique gem in the world of equalizers. It enhances anything from very dynamic sources like vocals or drums to harsh cymbals or dull sounding guitars and synths – and it does an excellent job on the mix buss as well. A truly exciting EQ experience is waiting for you… right now, all free.


Simulates two tape decks playing identical tapes, but out of synchronization with each other. Written to produce an effect I heard in the late 1970s: I recorded then played identical audio on two mono tape decks. There was an amazing "whooshing" effect as one tape deck "caught up" with and passed what the other tape deck was playing. This plugin allows the "whooshing" to go back and forth. Different effects are made using mono-sounding vs. "true" stereo audio.
The plugin can produce some interesting stereo effects, though note that due to the greater "cross-talk" of speakers, listening in speakers and headphones will sound different. Stereo flanger-like effects can be made by (for example) applying dualtapedecks.ny to audio, applying Stereo Butterfly (static) with a spread value of zero (sounds mono after applying), then applying dualtapedecks.ny a second time with the same settings as the first time. This plugin will work on mono audio as well, but the only effect will be rising and falling changes in pitch and tempo.
Parameters:
LFO frequency: [Hz, 0.001 to 25.000]
Starting phase: [degrees, -180 to +180, default 0]
Phase difference: [degrees, 0 to 360, default 180]
Depth: [0.001 to 2.000] - The larger depth is, the more pronounced the pitch and tempo shift become until there is a noticeable warble.
Unlike a regular flanger (which cycles up and down repeatedly), this plugin creates a single high-frequency flange, and you can set the position of that high-frequency point, anywhere between the start and end of the selection and beyond.
A variable tremolo plugin customized with controls for length and fade in/out speed of each pulse.
Similar to Random Panning, this time playing around with the volume knob.
Randomly modulates the pitch of your audio.
A ring modulator is a tremolo effect, but instead of using an LFO to amplitude modulate audio, an audio signal is used.
This plugin produces a "Tremolo" effect in which the frequency and depth of the tremolo varies from an initial setting to a final setting.
This effect applies vibrato (a regular pulsating change of pitch) to the selected audio.
variable-name : [symbol] A Lisp symbol.
text-left : [string] Text that will appear to the left of the slider.
variable-type : [keyword] A "number" type, either int, float or real*:
int : integer [FIXNUM, an XLISP whole number]
float (or real*) : floating point [FLONUM, an XLISP number supporting decimal places]
text-right : [string] Text that will appear to the right of the slider.
initial-value : [int / float] Variable value [and slider position] at the first start of the plugin.
minimum : [int / float] Numeric variable value when the slider is moved to the left border.
maximum : [int / float] Numeric variable value when the slider is moved to the right border.
The variable value [the slider position] can be referenced by the variable name in the plugin code.
A text input box to the left of the slider allows the user to type in a value via the keyboard. As of Audacity 2.1.1, input values are validated to only allow input between minimum and maximum values.
The "real" keyword is deprecated. New plugins should use "float" as the variable type for floating point input.
The numeric text widget was introduced in Audacity 2.1.2.
variable-name : [symbol] A Lisp symbol.
text-left : [string] Text that will appear to the left of the text box.
variable-type : [keyword] A "number" type, either "int-text" or "float-text":
int-text : Integer [FIXNUM, an XLISP whole number]
float-text : Floating point [FLONUM, an XLISP number supporting decimal places]
text-right : [string] Text that will appear to the right of the text box.
initial-value : [int / float] Variable value at the first start of the plugin.
minimum : [int / float / NIL] Numeric minimum variable value that will pass validation.
maximum : [int / float / NIL] Numeric maximum variable value that will pass validation.
Minimum and maximum may be numeric values or "NIL". The minimum / maximum is not defined when set as "NIL" and is limited only by the numeric limit for the number type. The valid range for numbers depends on the computer platform. Typically the limits for integers are -2147483648 to 2147483647. The limits for floating point numbers are very large.
Examples of undefined minimum / maximum:
The text input widget ("string widget") is supported in plugins version 2 or above.
variable-name : [symbol] A Lisp symbol.
text-left : [string] Text that will appear to the left of the text input field.
variable-type : [keyword] Declares a "string" input type widget.
text-right : [string] Text that will appear to the right of the text input field.
default-string : [string] The string will appear inside the text field.
The text typed in by the user in the text field of the plugin window can be referred as a string variable from within the plugin code. All string characters are valid, though care must be taken with escape characters if the string is to be evaluated.
Examples how to use the text input widget can be found in the source code of the Apropos Plugin.
The multiple choice input widget is supported in plugins version 3 or above.
variable-name : [symbol] A Lisp symbol.
text-left : [string] Text that will appear to the left of the multiple-choice list.
variable-type : [keyword] Declares a "Multiple-Choice" type widget.
string-1,... : [string] For every string an entry in a list to choose from will be produced.
initial-value : the number of the list entry that will be displayed as the default choice at the first start of the plugin.
The list entries string-1, string-2, etc. are comma separated and internally represented by integer numbers. The first, top-most list entry string-1 will be represented by the number 0. The list entry chosen by the user can be determined by the integer value of the variable from within the plugin code.
An example of the 'choice' widget can be found sample-data-export.ny
Introduced in Audacity 2.3.0.
variable-name : [symbol] A Lisp symbol.
text-left : [string] Text that will appear to the left of the time control.
time : [keyword] A "time" widget.
text-right : [string] Text that will appear to the right of the time control.
initial-value : [int / float] Default value. Number (float or integer) in seconds.
minimum : [number] Minimum numeric value (float or integer) in seconds.
maximum : [number] Maximum numeric value (float or integer) in seconds.
Minimum and maximum may be numeric values or "NIL". The minimum / maximum is not defined when set as "NIL" and is limited to a range of 0 and the maximum supported by the current widget view.
This widget is to input durations. The value set is converted to seconds and assigned as the value of the widget variable.
Example taken from the Pluck effect:
In this example:
variable name is "dur",
text-left is "Duration (60s max)",
text-right is "" (empty string).
initial-value is 1 second.
minimum is 0.0 seconds.
maximum is 60 seconds.
The File Button Widget requires Audacity 2.3.0 or later.
variable-name : [symbol] A Lisp symbol.
text-left : [string] Text that will appear to the left of the file button widget.
variable-type : [keyword] Declares a "File-button" type widget.
button text : [string] Text that appears on the button.
default-file-path : [string] The default file path.
wildcard-filters : [string] File types to show in file browser (based on file extensions).
flags : [string] Option flags, based on ).
The text widget was introduced in Audacity 2.3.0. Although not actually a "control", it shares similar syntax to all other Nyquist plugin widgets:
Best practice: While it may seem convenient to add text to an interface to explain how the plugin should be used, this widget should be used sparingly. Text descriptions should not be used as a substitute for good design. Plugin developers should also be aware that it is not currently possible to provide localization (translations) of text in any widgets in third party plugins.

Nyquist-Macros are a special kind of Nyquist plugin that instruct Audacity to perform tasks using Audacity's scripting interface.
To use this feature effectively, it is necessary to use the correct commands and syntax, and also understand that when Nyquist is used in this way, Nyquist is not allowed, or able, to modify the project. Nyquist-Macros may instruct Audacity to modify the project, but unlike ''ordinary'' Nyquist plugins, Nyquist cannot itself modify the project.
Nyquist-Macros are potentially far more powerful than normal in that they may make use of logic, loops and conditionally executing code, rather than only running through a simple list. They can also accept user input via the usual , and most other features of Nyquist plugins.
Nyquist Macros are a fairly advanced topic, so this tutorial is aimed at users with an intermediate to advanced level of experience with Nyquist programming.
;control variable-name "text-left" variable-type "text-right" initial-value minimum maximum ;control variable-name "text-left" variable-type "text-right" initial-value minimum maximum ;control pos "Positive Integer" int-text "text-right" initial-value 0 nil
;control neg "Negative Integer" int-text "text-right" initial-value nil 0
;control num "Any number" float-text "text-right" initial-value nil nil ;control variable-name "text-left" string "text-right" "default-string" ;control variable-name "text-left" choice "string-1,string-2,..." initial-value ;control variable-name "text-left" time "text-right" initial-value minimum maximum ;control dur "Duration (60s max)" time "" 1 0.0 60 ;control variable-name "text-left" file "button-text" "default-file-path" "wildcard-filters" "flags" ;control text "string"Square: The volume jumps abruptly between higher and lower levels.
Final depth: [0 to 100%, default 0%] The amount of pitch variance at the end of the selection.
Mid point position: [0 to 100%, default 30%] How far through the selection that the mid-point depth is reached.






Similar to the Change Speed effect, this effect changes the speed of the selected audio, thus changing both the tempo and pitch. Possible uses include slowing down music to aid transcription, where the amount of pitch change is known.
Parameters:
Semitones change: [-24 to +24 semitones]
Extracts audio from a selected area without using a mouse or cursor keys.
This effect inserts silence at the start of the audio selection.
Splits audio into desired number of segments by inserting silences of specified duration (up to 10.0 seconds).
A speed change effect in which the initial and final speed may be set independently.
Caution: This plugin only works as intended on a sample rate of 44100Hz
This plugin allows you to change tempo making it faster or slower
A plugin for performing the same task as the Time Shift Tool in Audacity, without using a mouse.
This plugin can trim audio from the start and/or end of a track (or track selection), or pad the start and/or end with silence, or any combination of the two.
This plugin is for trimming excess silence from the start and/or end of tracks or audio clips.
Simulates unplugging and plugging in a turntable while it's powered, and related effects such as speeding it up before unplugging it
In this tutorial, we will be reimplementing Audacity's Tone generator as a Nyquist Macro. During the course of the tutorial, many of the abilities and core concepts of Nyquist Macros will be discussed, along with tips and potential pitfalls to watch out for in your own programming.
Nyquist Macros are a powerful extension of Audacity's features. With great power comes great responsibility. Nyquist Macros bypass much of Audacity's built-in validation, so it is relatively easy to pass invalid commands that can cause Audacity to crash. Test your Nyquist Macros thoroughly before using them for important production work.
Audacity provides a rich set of scripting commands, which are documented in the Scripting Reference section of the Audacity manual. These commands may be sent from Nyquist, to tell Audacity what to do, using the function call "AUD-DO". As a very simple example, Nyquist can tell Audacity to start playing by sending the command "Play:"
(aud-do "Play")
Some things to note:
The command "Play:" is a string (text).
The command is case sensitive. It must be capitalized exactly as stated in the Scripting Reference.
The Nyquist function is AUD-DO, which like any other Nyquist function is case insensitive, and usually written in lower case in code.
The function AUD-DO takes exactly one parameter, which is the command string.
As Nyquist cannot modify the project when used to send Macro scripting commands, most Nyquist-Macros will be written as "tool" type plugins.
As described above, the "AUD-DO" function takes exactly one argument (parameter), which is the command that will be sent to Audacity. However, we may sometimes want to send a command that has multiple parameters. For example, to generate a 10 second, 200 Hz, 0.5 amplitude sine tone, the Macro Scripting command is:
Tone: Frequency=200 Amplitude=0.5 Waveform="Sine"
With AUD-DO we can send the command, including it's parameters, as one string:
(aud-do "Tone: Frequency=200 Amplitude=0.5 Waveform=Sine")
Using the above example, the macro command string could be passed as the value of a variable:
(setf command "Tone: Frequency=200 Amplitude=0.5 Waveform=Sine")
(aud-do command)
In this slightly more complex example we use the FORMAT command to construct the command string. This approach is very useful if scripting command parameters are to be generated programmatically or obtained from user input.
If we incorporate this code in an installable Nyquist Macro, we see that we are getting close to re-implementing Audacity's Tone generator as a Nyquist macro.
Here is a simplified implementation of Audacity's Tone Generator:
Some important things to note in this example Nyquist Macro:
The plugin type is "tool". If it were set as a "generate" type, running the plugin without a track would crash because of the duplicate attempt to create a new track (once from the plug-in being a generate type, and again from the Audacity scripting command).
This simplified version does not provide a "Duration" control, so the generated tone will be the length of the selection (if there is a selection), or 30 seconds (default).
In the Scripting command, the Waveform parameter must be quoted because its value may include a space. We therefore use ~S rather than ~A in the FORMAT function.
If you are familiar with Nyquist's LISP syntax, you will have noticed that the syntax described above is not very Lisp-like. The ''magic string'' commands are case sensitive, and constructing the strings is inelegant. However, for many of the scripting commands, a lisp equivalent exists.
Each of these functions have names beginning '''AUD-''', suffixed with the scripting command name. The scripting command parameters are passed as keyword arguments.
In Audacity 2.3.2 and later, the following scripting commands have equivalent LISP functions:
Generate menu effects.
Built-in effects.
Example: The scripting command for Audacity's built-in "Amplify" effect is:
Amplify: Ratio=<number>
The equivalent imported LISP function for Audacity's built-in Amplify effect is:
(aud-amplify :ratio <number>)
In both versions, the ratio is a floating point number representing the gain on a linear scale. If we want to Amplify by -3 dB, we can apply the Amplify effect:
In this next code sample, we reproduce the simple "Tone" generator from above, using the imported AUD-TONE function:
Unlike Nyquist's generator functions, Audacity's built-in generator functions do not have a parameter for the duration of the sound that is generated. Instead, the duration is set by the length of the track selection. If there is no track selection, then the length defaults to 30 seconds.
One limitation of Nyquist plugins that we cannot yet work around, is that the plugin UI is not dynamic and cannot be changed programmatically. Where as Audacity's built-in Tone generator will automatically show the length of the selected audio, this is not yet possible for Nyquist plugins. As a compromise solution, we can:
Add a "Duration" control.
If there is no selection, create a selection of the length specified by the Duration control.
If there is a selection, ignore the Duration control and generate into the selection.
As we want to mimic the behaviour of Audacity's Tone generator, we need to handle cases where:
There is a selection in an audio track.
There is a time selection but no track selection.
There is a track selection but no time selection.
While is is possible to find what is selected using the scripting command GetInfo:, a simpler way is to use the Nyquist global property list *SELECTION*.
In Audacity 2.3.0 and later, there is a "[Nyquist_Plug-ins_Widgets#Time_Widget time widget]", which greatly simplifies handling durations, and is in keeping with Audacity's built-in effects.
;control duration "Duration" time "" 30 0 nil
Then we want to check if an audio track is selected, and if not, add a new track. Note that there isn't a LISP function for adding a new track, so we fall back on AUD-DO instead:
And to handle the time selection:
The completed Nyquist Macro plug-in:
When using built-in effects or "Scriptable" commands, it is recommended to use the optional LISP functions. Not only are they more Lisp-like and convenient to use, they also provide a little more error checking, which can be very helpful when debugging. Note however that there is a small performance penalty when using these LISP syntax commands. For performance critical applications (such as batch processing many small files), it may be preferred to use the AUD-DO versions.
Be flexible in your thinking. Scripting commands are available for many, but not all of Audacity's functions. If you need to do something that appears to be missing from the available commands, consider other ways to achieve the desired result.
If you get stuck, ask for help. As with other aspects of Nyquist programming, support requests may be made on the Nyquist board of the Audacity forum.
See also:




(setq hz 200)
(setq amplitude 0.5)
(setq type "Sine")
(setq command (format nil "Tone: Frequency=~a Amplitude=~a Waveform=~s"
hz
amplitude
type))
(aud-do command);nyquist plug-in
;version 4
;type tool
;name "Nyquist Tone"
;control type "Waveform" choice "Sine,Square,Sawtooth,Square, no alias" 0
;control hz "Frequency" real "Hz" 440 1 10000
;control amplitude "Amplitude" real "0 to 1" 0.8 0 1
(case type
(0 (setf type "Sine"))
(1 (setf type "Square"))
(2 (setf type "Sawtooth"))
(t (setf type "Square, no alias")))
(setq command (format nil "Tone: Frequency=~a Amplitude=~a Waveform=~s"
hz
amplitude
type))
(aud-do command)(setq val (db-to-linear -3.0))
(aud-amplify :ratio val);nyquist plug-in
;version 4
;type tool
;name "Nyquist Tone"
;control type "Waveform" choice "Sine,Square,Sawtooth,Square, no alias" 0
;control hz "Frequency" real "Hz" 440 1 10000
;control amplitude "Amplitude" real "0 to 1" 0.8 0 1
(case type
(0 (setf type "Sine"))
(1 (setf type "Square"))
(2 (setf type "Sawtooth"))
(t (setf type "Square, no alias")))
(aud-tone :frequency hz :amplitude amplitude :waveform type)(get '*selection* 'start) ;start of time selection in seconds
(get '*selection* 'end) ;end of time selection in seconds
(get '*selection* 'tracks) ;list of selected tracks. NIL if no audio tracks selected(unless (get '*selection* 'tracks)
(aud-do "NewMonoTrack:"))(let ((start (get '*selection* 'start))
(end (get '*selection* 'end)))
(unless (> (- end start) 0)
(aud-selecttime :end duration :relativeto "SelectionStart")));nyquist plug-in
;version 4
;type tool
;name "Nyquist Tone"
;control type "Waveform" choice "Sine,Square,Sawtooth,Square, no alias" 0
;control hz "Frequency" real "Hz" 440 1 10000
;control amplitude "Amplitude" real "0 to 1" 0.8 0 1
;control duration "Duration" time "" 30 0 nil
(case type
(0 (setf type "Sine"))
(1 (setf type "Square"))
(2 (setf type "Sawtooth"))
(t (setf type "Square, no alias")))
;; A track is required so that we can make a selection.
(unless (get '*selection* 'tracks)
(aud-do "NewMonoTrack:"))
;; A selection is required to set the length of the generated tone.
;; Use the current selection if there is one, otherwise select user supplied value.
(let ((start (get '*selection* 'start))
(end (get '*selection* 'end)))
(unless (> (- end start) 0)
(aud-selecttime :end duration :relativeto "SelectionStart")))
;; Now generate the tone.
(aud-tone :frequency hz :amplitude amplitude :waveform type)A delay effect is similar to an echo, in that the sound is repeated (after a brief time delay) one or more times after the original sound.
A delay plugin where, like a bouncing ball, the bounces get faster and faster.
Combines the with a panning effect.
Combines the with Tone Shift plugins.
The fastest bounces come first, gradually slowing down - reverse of the effect.
The fastest bounces come first - reverse of the , and each bounce is tone shifted.
Adds random delay to your audio, and randomly changes the pitch of each delay if you specify a note list.
Applies a delay effect based on a specified tempo (beats per minute), with optional panning and filtering of the delayed sound.
Applies a high-pass filter to a delay so that with each subsequent delay, the filter's cut-off frequency is increased.
Applies a low-pass filter to a delay so that with each subsequent delay, the filter's cut-off frequency is reduced.
A delay plugin except, each delay is pitch shifted.
This is a stereo delay effect: with each delay, the stereo channels are flipped from left to right and vice versa.
Similar to pitchshift.ny except you can define in semitones how much each delay is to be pitch shifted.
Gives you the possibility to overdrive an audio track without introducing ugly digital distortion noise.
Similar to Broadcast Limiter II with an added Exciter
The Hyperexp effect is a type of compression.
This effect is designed to mitigate problems in speech recordings where there are very large variations in the loudness / amplitude of the recorded voice or voices.
Use the Limiter effect to pass signals below a specified input level unaffected or gently reduced, while preventing the peaks of stronger signals from exceeding this threshold. Mastering engineers often use limiting combined with make-up gain to increase the perceived loudness of an audio recording during the audio mastering process.
This limiter effect provides two basic types of effect; "limiting" and "clipping". The "limiting" effect is a special kind of that responds very rapidly to peaks in the waveform. The "clipping" effect is a kind of that changes the shape of the waves by "clipping" off the high and low peaks.
A "lookahead" dynamic range limiter to compress peaks that extend beyond the set threshold value.
The same as except that the make up gain control is a multi-choice selection rather than a slider.
Noise Gates may be used to cut the level of noise between sections of a recording.
The effect is like an "upside-down" . Whereas a attenuates sounds that are below a specified threshold level, Pop Mute attenuates sounds that are above a specified threshold level.
Provides an alternative to the "Envelope Tool" that is accessible for visually impaired and other users that do not use pointing devices
Delay time [seconds]:
Number of bounces [times]:
Pan spread movement [move]: - defines the extent to which each bounce will be increasingly far from center
Note: The latest available delay plugin in Audacity includes bouncing ball delay and pitch shifting, but not panning.
Delay time [seconds]:
Number of bounces [times]:
Tone shift (whole) [semitones]:
Tone shift (cents) [cents]:
Notes:
The value for the decay amount (in dB) for an increasing pitch can be left at the default 0. However, with decreasing pitch, the lengths of the delays increase over time, overlapping with each other. In this case, clipping can occur if the decay value is left at 0.
Note: The latest available delay plugin in Audacity includes bouncing ball delay and pitch shifting.
Delay time: [0.01 - 1.00 seconds, default 0.05]
Number of bounces: [1 - 100, default 15]
Delay time: [0.01 - 1.00 seconds, default 0.02]
Number of bounces: [1 - 100, default 15]
Tone shift (whole): [-24 - +24 semitones, default -1]
Tone shift (cents): [-100 - +100, default 0]
If you delete this note list, a list of notes will be generated between a lower and upper number. The default values of these two numbers are -12 semitones (decrease of 1 octave) and +24 semitones (increase of 2 octaves) respectively.
If your audio is stereo, each random delay with random volume and pitch change will also be randomly panned anywhere between left and right. (It is best that your audio is first panned to center before applying Chimes Delay.)
Tips:
Adding a bit of regular delay and/or other effects before applying Chimes Delay results in a richer sound.
If you want a particular note (from the note list) to be repeated more often, you can enter it more than once in the list.
If you simply want your audio randomly delayed with no multiple pitch changes, either enter just one number into the note list, or enter the same number into the minimum and maximum notes fields.
It is possible that total length of your resulting audio will be maximum delay time *plus* the duration of your original audio. This may be still longer if the final delay(s) is/are decreased in pitch (resulting in a reduced tempo).
Warning: If your original audio is non-musical, Chimes Delay will not make it musical!
Parameters:
Chimes note list: [default list: -24 -12 -5 0 4 7 12 14 19]
Minimum note: [semitones from -12 to +48]
Maximum note: [semitones from -12 to +48]
Maximum delay time: [seconds from 0.5 to 120] - the maximum delay of the random delays
Minimum volume: [percentage] - the minimum random volume that each random delay can have. If you want no random amplitude changes, set this field to 100 percent.
Number of chime delays: [from 1 to 100] - how many delays within the maximum delay time.
Acknowledgement due to Steven Jones whose "Harmonic Noise" generator plugin is the source for Nyquist code to handle a string-input note list (David Sky's original version only).
Tempo: [1 - 500 bpm, default 120 bpm] - Specifies the tempo for the delay.
Note values: [Choice: "Half note" to "Sixty-fourth note", default "Eighth note"] - Acts as a tempo multiplier. The default "Eighth note" produces echoes at "double tempo", whereas "Sixteenth Note" would produce echoes at 4x the tempo setting.
Number of echoes": [1 - 100, default 5]
Pan spread": [-1 to +1, default 0] - the amount of side to side panning of the echoes. When positive, the echo is initially panned to the right. When negative, the echo is initially panned to the left. Subsequent echoes pan side to side. When zero, the echo is mono at the center of the stereo mix.
Optional filters: [Choice: None, High pass, Low pass, Band pass. Default: None]
Filter frequency: [10 - 10000 Hz, default 1000 Hz] - The filter frequency (if enabled).
Filter width (bandpass only): [0 - 10000 Hz, default 1500 Hz] - If the optional "Band Pass" filter is selected, the "Filter frequency" is the center frequency of the filter, and this control sets the width (in Hz).
Wet level: [-24 - 0 dB, default 0 dB] - Reduces the level of each echo.
Note that this effect does not extend the selected audio. If you require space for echoes after the end of the track, the selection must be made long enough to accommodate the final echoes.
Delay time: [0 - 5 seconds, default 0.5]
Number of echoes: [1 - 30, default 10]
Start cut-off frequency: [100 - 5000, default 1000] - the high-pass cut-off frequency at the start of the delay.
Cut-off increase: [octaves, 0.1 - 5.0, default 0.5] - how much to increase the filter cut-off point with each delay.
Delay time: [0 - 5 seconds, default 0.5]
Number of echoes: [1 - 30, default 10]
Start cut-off frequency: [100 - 20000, default 1000] - the low-pass cut-off frequency at the start of the delay.
Cut-off reduction: [octaves, 0.1 - 5.0, default 0.5] - how much to reduce the filter cut-off point with each delay.
Normalization level: [0 - 1.0, default 0.95]
Delay time: [0 - 5 seconds, default 0.5]
Number of echoes: [1 - 30, default 10]
Pitch change factor: [1.001 - 3.0, default 1.1]
Pitch: increase or decrease: [default = increase] - whether each delay is increased or decreased in pitch
Normalization level: [0.0 - 1.0, default 0.95]
Delay time: [0 - 5 seconds]
number of delays: [1 - 100]
Normalization level: [0 - 1, default 0.95]
Threshold: sets the 'cutting edge' in a linear volume number from 0.0 to 1.0
The plugin has no memory limits, it can process audio tracks of several hours in length without problems.\
Leveling Amount (%): (0 to 100% default 50%) Higher values produce a stronger effect.
Hard Limit makes no change to the audio until the peaks reach the "Limit to (dB)" threshold. Where the input level (after applying optional input gain) exceeds the threshold, an equal amount of negative gain is applied so that the peaks never exceed the threshold.
Hard Clipping is the simplest method for reducing peaks. It just chops off the peaks at the "Limit to" threshold. Note that clipping causes distortion. Hard clipping may be useful for purposefully introducing distortion on high peaks, for example to add high harmonics to percussive sounds. Excessive use of hard clipping creates a harsh distortion that is usually unpleasant. For heavier use of distortion the "Soft Clipping" option may be preferable. Hard clipping may also be useful for producing synthetic signals for scientific purposes.
Soft Clipping works in much the same way as "Hard Clipping", but is less fierce in that it "squashes" the peaks rather than cutting them off flat. Soft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded. When applied heavily, the effect is similar to a "Fuzz Box" effect.
The difference between "Hard" and "Soft" clipping is that "Hard" clipping cuts off the peaks flat, whereas "Soft" clipping rounds the corners where the waveform has been clipped, resulting in a softer sounding distortion.
Amplifies the audio before applying the limiter.
As the limiter acts on audio peaks that exceed the Limit to (dB) threshold, it will clearly have little or no effect on audio tracks in which all of the audio is below the threshold level. In such cases, the audio should be amplified before limiting so that the limiter can work properly. Amplification could be applied using Audacity's Amplify effect, or more conveniently using the "Input Gain" controls.
For mono tracks, only the "mono/Left" gain control has any affect. For stereo tracks the left and right channel gains may be adjusted independently of each other.
Limits the amplitude (after optional amplifying) to this level.
Whichever type is selected, the limiter prevents the waveform from exceeding this level. (Note that makeup gain, if used, is applied to the waveform after it has been limited.)
This applies only to the "Hard Limiter" and "Soft Limiter" settings. It has no effect when using either of the "Clip" settings.
In order to catch even the most sudden peak, the limiter "looks ahead" to see when the next peak is coming, and begins to reduce the gain just a little in advance of the peak. The gain level is then held at the reduced level for a short while before being released back to the normal level. Looking ahead and holding the gain level allows the gain to adjust more smoothly and reduces the amount of distortion. The shorter the "Hold" duration, the faster the limiter responds to changes in input level. It is generally desirable for the limiter to respond very rapidly, but responding too rapidly will produce distortion, especial when processing low frequency sounds such as a double bass.
Normally this control can be left at the default (10 ms) setting.
Amplifies the output (post limiter) close to 0 dB (usually just a little below 0 dB). This is useful when using the limiter to maximize loudness.
Basically, a limiter reduces the gain (negative amplification) when the audio exceeds the "threshold" ("Limit to") level. The "Hold" time is how long (in milliseconds) the gain remains at the reduced level before returning back to normal. Usually you would want the gain to return back to normal pretty quickly after the peak has passed because you normally only want to limit the peaks and then return back to normal as quickly as possible. However, there is a problem if the limiter responds too quickly, and this is most noticeable when processing bass instruments.
If there is a very low note, say below 100 Hz, then the time from one peak to the next may be longer than the "hold" time. Thus the gain will start to reduce as the peak level rises, then will start to "release" (return to normal gain) between one peak and the next. This rapid "fluttering" of the gain level distorts the waveform, which is usually undesirable. The solution to the problem is simple - just hold the gain at the reduced level for a little while so that the limiter is responding to the overall shape of the note and not the individual waveform peaks.
Hold (ms): (1 to 50 ms Default = 10 ms) Holds the gain at the reduced level after a peak is detected so as to prevent the gain from "riding the waveform" which would cause harmonic distortion.
Make-up Gain (0=No, 1=Yes): (Default = 1) When enabled (set to 1) the output is amplified by an amount equal to the "Limit" level. If the input audio has a peak level of 0 dB, the peak output level will also be 0 dB. When disabled the peaks are limited only.
Shorter Hold times allow the peaks to be tracked more accurately and the limiter will respond faster to the dynamics. If there are high levels of very low bass it will be necessary to increase the Hold time to avoid distortion. The default 10 ms hold time is sufficient for frequencies down to 100 Hz without distortion. To cleanly limit high amplitude, very low frequency bass (down to 50 Hz) the Hold should be increased to 20 ms. Setting the hold to 50 ms is sufficient right down to 20 Hz but the delay before the gain level "recovers" is likely to be too slow for most material.
Additional notes:
Threshold level: The Limit to (dB) control has a range of -10 dB to 0 dB. The effect is not designed to work beyond this range. When set to 0 dB there will be no change to the audio (though any over 0 dB audio will be clipped). If set below -10 dB the knee will be so soft that all of the audio will be compressed, not just the peaks.
Stereo Tracks: As is normal for this type of effect, the left/right channels of a stereo track are processed independently.
Lookahead: The limiter looks ahead for peaks and will begin to change the gain just before the peak occurs. This ensures that all peaks, no matter how fast they occur, will be caught. The lookahead time is roughly a quarter of the hold time.
Knee: The "hardness" of the knee depends on the threshold (Limit To) level. When the threshold is close to zero a hard knee is used but as the threshold is lowered the knee becomes softer so as to provide a smooth transition in gain level even with a very fast attack time. A typical threshold level of around -3 dB will have a relatively "soft knee" so as to avoid unnecessary distortion. That is, the amount of compression (compression ratio) progressively increases as the input gets louder. At the "Limit to" level the compression ratio is infinite (brick wall) which ensures that peaks will not exceed the limit.
Creative use: The limiter can be used on its own, or can be used to limit peaks after running a compressor that does not use lookahead (such as the SC4 LADSPA compressor). This can produce "crisper" compression than using a lookahead compressor such as the standard Audacity compressor or Chris's dynamics compressor.
Over 0 dB input: The input waveform should not exceed 0 dB. Over 0 dB input signals are treated as illegal and will be hard clipped to 0 dB before processing with the limiter. If necessary, the Amplify or Normalize effects should be run before applying this limiter to ensure that the input does not exceed 0 dB.
Hold (ms): (1 ms to 50 ms Default = 10 ms)
Apply Make-up Gain: [No, Yes (default)]
Stereo Linking: [Link Stereo Tracks (gate audio when both channels fall below the gate threshold)| Don't Link Stereo (gate channels independently)]
Apply Low-Cut filter: [No (Do not apply filter) | 10Hz 6dB/octave | 20Hz 6dB/octave] Removes sub-sonic frequencies including DC offset.
Gate frequencies above: [0 kHz to 10 kHz] Applies the gate only to frequencies above the set level which may be useful for reducing tape hiss, but will also introduce some 'phase shift'. Setting this below 0.1 kHz will switch this feature off.
Level reduction: [-100 dB to 0 dB] How much the gated sections are reduced in volume. Values below -96 dB 'shut' the gate to produce absolute silence.
Gate threshold: [-96 dB to -6 dB] When the audio level drops below this threshold the gate will 'close' and the output level will be reduced. When the audio level rises above this threshold the gate will 'open' and the output will return to the same level as the input.
Attack/Decay: [10 to 1000 milliseconds] How quickly the gate opens and closes. At the minimum (10 ms) the gate will fully open and close almost instantly as the audio level crosses the threshold. At the maximum (1000 ms), the gate will begin to slowly open (fade-in) 1 second before the sound level exceeds the Threshold, and will gradually close (fade-out) after the sound level drops below the Threshold over a period of 1 second.
For more detailed information and usage tips, read the help file included in this ZIP package, or the help screens included in the plugin.
Parameters:
View Help: [No | Yes] (default "No") View the built-in help screen.
Threshold: [-24 dB to 0 dB] (default -6 dB) This is the level above which sounds are acted on (reduced in level)
Mute Level: [-100 dB to 0 dB] (default -24 dB) How much to reduce the peak level by.
Look ahead: [1 to 100 milliseconds] (default 10 millisecond) How far to look ahead for the next "pop" or "crackle".
Release time: [1 to 1000 milliseconds] (default 10 millisecond) How rapidly to "release" the effect and return to normal volume after the pop has passed.
Time Units: [choices: milliseconds, seconds, minutes, percent. Default = seconds]
Amplification Units: [choices: dB or Percent. Default = dB]
Initial Amplification [Numeric input. Default = none]
Final Amplification [Numeric input. Default = none]
Intermediate Control Points as pairs of time and amplification [Pairs of numbers. Default = none]
Note: Decimal values must use a dot as the decimal separator.

If you have a stereo track and want to amplify or attenuate one channel only without using the mouse, this plugin will do it.
Parameters:
Channel 0=left channel, 1=right channel (default 0).
Volume [dB]: amplify or attenuate the channel (default 0 dB, no change in volume).
Frequency-selective filter to crossfeed (mix) bass frequencies to center (mono). Requires stereo tracks
Removes center-panned content in stereo tracks by inverting and making mono
A multi-purpose tool that can perform almost any type of channel mixing task on an unsplit stereo track.
Cross Fade In applies a "curved" fade that is different from the linear Fade in that will result in equal RMS volume throughout the faded section when used in conjunction with the Cross Fade Out effect to perform a crossfade.
Cross Fade Out applies a "curved" fade that is different from the linear Fade Out. The curve used is one that will result in equal RMS (average) volume throughout the faded section when used in conjunction with the Cross Fade In effect, to perform a crossfade.
Define the length of fade-in and fade-out selections without using a mouse or cursor keys.
This plugin will statically pan your stereo audio anywhere between left and right channels.
Panning is controlled by a low frequency oscillator
Randomly pans stereo audio from one side of the stereo field to the other
Creates an artificial stereo effect that can be useful for giving some "depth" to mono recordings.
Evenly pan your stereo audio, starting at one point in the stereo field and ending at another.
For repairing damage to one channel of a stereo track by overwriting the damaged region with audio from the other channel
The original Stereo Butterfly plugin which can be spread wide (1, full stereo), closed (0, sounding mono), or somewhere in-between
Second in the Stereo Butterfly series. It takes stereo audio and makes it sound like the left and right channels are switching back and forth with each other.
Third in the series of Stereo Butterfly plugins. As with the previous two, 0 setting sounds like mono, +1 is regular stereo, -1 is left and right channels flipped with each other.
Gives the illusion of widening stereo audio. The effect produces different results depending on whether you are listening to the audio through speakers or headphones, and the distance stereo speakers are apart.
Narrow Stereo: Reduces the stereo width (requires that the original track is true stereo).
Wide Stereo: Expands the stereo width (requires that the original track is true stereo).
Extra Wide: Same as 'Wide Stereo' but more extreme.
Centre to Left: Moves sounds from the middle of the stereo stage to the Left.
Centre to Right: Moves sounds from the middle of the stereo stage to the Right.
Swap Left/Right: What it says on the tin.
Vocal Remover (L/R invert): Removes sound from the center of the stereo mix and inverts the right channel.
Vocal Remover (mono): Removes sound from the center of the stereo mix.
Invert Left: Inverts the Left channel.
Invert Right: Inverts the Right channel.
Mid-Side Decode: A simple Mid-Side decoder.


This page offers a detailed look at the structure and syntax of Nyquist Plugins. It is intended for people who wish to write their own plugins.
If you are looking for extra Nyquist plugins to use, see Nyquist Plugins.
If you are especially interested in Nyquist in Audacity, we highly recommend subscribing to our Audacity forum, which has a section specifically for matters relating to Nyquist.
Nyquist is a superset of the XLISP programming language, (a dialect of LISP and supports both a LISP syntax and an alternative syntax called SAL. A general introduction to Nyquist is given on the main Nyquist page.
The Audacity Nyquist Interface is implemented in the following files in the Audacity source code:
audacity/src/effects/nyquist/Nyquist.cpp
audacity/lib-src/libnyquist/nyx.c
Nyquist is in many ways a separate program from Audacity (and is also available as a ). Nyquist is embedded in Audacity as a software that may be called from the main Audacity application to provide additional functionality, most notably as "plugins".
When a Nyquist plugin is selected from one of Audacity's menus, Audacity locates the plugin script (the ".NY" file), starts a Nyquist session and passes the Nyquist code to be interpreted by the Nyquist library. Nyquist then attempts to run the program. The result of running the Nyquist script is returned to Audacity.
In this example (derived from the effect), the first four lines make up the essential headers that are required in all Nyquist plugins.
;nyquist plug-in
This header tells Audacity that this file is a Nyquist plugin.
;version 4
This header specifies that this is a "4th generation" plugin.
;type process
This header defines the plugin as a "process" (Effect) type.
The other headers enable various options and properties, including the plugin's controls.
Nyquist plugins support a range of "widgets", which are control elements for a graphical user interface (GUI). These elements are unique to Nyquist in Audacity.
The GUI is created by Audacity when a plugin contains one or more widget header commands.
As with other plugin headers, they begin with a semicolon (;) and are ignored by Nyquist, except that the variable name of the widget is initialized with a value and made available to Nyquist. This means that Nyquist can access the value that has been set in the widget as the value of the variable specified in the widget header.
Each widget begins with ";control", and is followed by a number of parameters, one of which defines the type of widget. There are currently nine widget types, though not all of them are available for old versions of Audacity.
When a plugin is launched, Audacity searches the plugin .NY file for valid headers. Every ";control" line that is found gets parsed by Audacity into several tokens, where each token is separated by spaces. If the tokens match one of the defined patterns, then Audacity adds the widget to the GUI, otherwise they are ignored.
Italic words in the table denote data types. Because tokens are separated by whitepace, strings containing whitespace must be written within quotation marks.
The following code may be run in the of Audacity 2.3.1 or later, and produces the GUI shown above:
The detailed syntax for each widget type is described on the Nyquist Plugins Widgets page.
Audacity passes information about the current Audacity session to the Nyquist interpreter, along with the Nyquist code. Typically, when the code runs, it acts on data that has been passed from Audacity, which often includes the selected audio data, and returns data back to Audacity. Here we shall look at the ways that audio data is passed from Audacity to Nyquist, and from Nyquist back to Audacity.
For process and analyze type plugins, Nyquist runs the plugin code on each selected track in turn. The audio data is passed from Audacity to Nyquist as a variable called *TRACK* (the asterisks are part of the name).
For mono tracks, the value of *TRACK* is a "sound" (which is a Nyquist ).
For stereo tracks, the value of *TRACK* is an "array". An array is a special kind of ordered list. The array has two elements, both of which are "sounds". The first element holds audio data from the left channel, and the second element hold data from the right channel.
The selected audio is only available to "process" and "analyze" type plugins (including the compound types "tool process" and "tool analyze").
The way that time and durations are handled depends on the type of plugin.
For process and analyze type plugins, the start time of the selection is seen as "time = 0", and the length of the selection is seen as one unit of time. The absolute length of the sound in seconds can be computed one of the following ways:
In 'generate' effects, this does not happen, so the length specified by the effect is the length that is produced. For example, if you write (OSC C4 3.5), a generate type effect will produce a tone of duration 3.5 seconds.
For generate type plugins, the length of the selection (if there is a selection) is usually ignored by Nyquist. However, if for some reason the length of the selection needs to be known, then *SELECTION* START and END properties may be used (version 4 plugins or later).
When generating sounds with a 'generate' type plugin, durations in Nyquist represent seconds. For example, to generate a 2.5 second sine tone, you could write:
but if the same code is used in a 'process' type plugin, the generated tone will be 2.5 x the duration of the track selection:
If a duration in seconds is required in a 'process' type plugin, this may be done using the command:
The above examples may be run in the .
In addition to the standard global variables defined in the , Nyquist in Audacity also has global variables that relate specifically to Audacity. Listed here are a few common standard Nyquist globals, and global variables that are relevant to Nyquist in Audacity.
: [float] The sample frequency of the control signals (such as those created by . By default 1/20 of the sample rate of the track.
*DECIMAL-SEPARATOR* : [char] A comma character (#\') or dot character (#\.) depending on the language selected in .
*FILE-SEPARATOR* : [char] The character that separates directories in a path, e.g. "/" (#\/) for Unix, ":" (#\:) for Mac, and "\" (#\\) for Win32.
Other global variables provided by Nyquist can be found in the .
Property lists are defined for the global variables *AUDACITY*, *PROJECT*, *SELECTION*, *SYSTEM-DIR*, *SYSTEM-TIME*, and *TRACK*.
For examples using property lists, see the .
This property list was added in Audacity version 2.1.0
Value: Unbound (not defined).
LANGUAGE : [string] The country code for the language set in .
Example - when Audacity's locale setting is for English, (print (get '*audacity* 'language))will print en.
VERSION : [integer list] A list in the form (Audacity_version Audacity_release Audacity_revision)
Example: Print the full Audacity version for Audacity 2.1.3
(let ((version-list (get '*audacity*' version)))
(format nil "Audacity version ~a.~a.~a" (first version-list)(second version-list)(third version-list)))
Prints: Audacity version 2.1.3
Value: Unbound (not defined).
LABELTRACKS : [integer] The number of label tracks in the project.
MIDITRACKS : [integer] The number of note tracks in the project.
NAME : [string] The name of the current project. A project that has not been named (not yet saved) returns an empty string.
Value: Unbound (not defined).
BANDWIDTH : [float] The bandwidth of the frequency selection in octaves (Spectrogram or Spectrogram (log f) track view).
CENTER-HZ : [float] The centre frequency selection in Hz (Spectrogram or Spectrogram (log f) track view).
CHANNELS : [integer] The number of selected audio channels.
Value: Unbound (not defined).
BASE : [string] The Audacity installation directory.
DATA : [string] The Audacity data directory. This is where the audacity.cfg, pluginregistry.cfg and EQCurves.xml files are located.
DOCUMENTS [string] The system default documents directory.
This property list was added in Audacity version 2.1.1.
Value: A list in the form '(year, day, hours, minutes, seconds), where each list item is an integer.
Example: 5 minutes past 2pm January 1st 2022 would be the list: 2022, 1, 14, 5, 0.
This is the time that the Nyquist code is parsed, NOT the time it is executed. It cannot therefore be used for timing events that occur while the code is running. Possible uses for *SYSTEM-TIME* could include automatic naming of files written to disk, or for "" random processes.
DATE : [string] The date formatted according to the current locale. Example: "dd/mm/yy".
DAY : [integer] Day of the month.
DAY-NAME : [string] The name of the day (Example: "Monday").
Value: The sound from a selected mono audio track, or an array of two sounds from a selected stereo track (see the Nyquist Stereo Track Tutorial).
Properties of *TRACK* all relate to the track that is being processed. Currently Nyquist only processes audio tracks. When multiple tracks are selected, Nyquist processes each audio track in turn (top to bottom).
CHANNELS : [integer] The number of channels in the track (mono = 1, stereo = 2).
CLIPS : [list or array] For mono tracks, a list of start and end time of each audio clip. For stereo tracks, an array containing a list of clips for each channel. Due to a limitation in Nyquist, the "clips" property can hold a maximum of 1000 start / end times. If an audio channel contains more than 1000 clips, the first 1000 will be listed, and the 1001th item will be NIL. See for an alternative way to get clip times that will work with 1000's of clips.
END-TIME : [float] The track end time.
The VIEW property may change in future versions of Audacity, so is not recommended for public release plugins. During Preview, audio tracks are copied to temporary tracks which are not visible, so the returned "VIEW" value is NIL.
Nyquist supports many "data types", including "numbers" (integer or floating-point), "characters" (such as the letter "A", the number "4", or any other ), "strings" (text), "" (a list of data), "" (special kind of indexed list), and "sounds" (a sound / digital signal).
The result of the last computation within the plugin code will be given back from Nyquist to Audacity. According to the data type of the returned value one of the following actions will be invoked in Audacity:
If a "sound" is returned, the sound will be re-inserted into the selected part of the Audacity track, (or a new track for "generate" type plugins). If the returned sound is shorter or longer than the original sound, the selection will be reduced or augmented. If a mono sound is returned to a stereo track, the same mono sound will be inserted into both channels of the stereo track.
Nyquist handles multi-channel sounds as an array of sounds. The first element of the array is the left channel, and the second element is the right channel. Audacity currently supports a maximum of two channels in a track (stereo).
Returning an array of sounds to a mono track is an error.To return a stereo sound without error, a stereo track must be selected before running the Nyquist code.
For more information about stereo tracks, see the .
When the return value is a character or string, a dialog window will appear with the data displayed as text.
A dialog window will appear with the number displayed as text.
If an appropriately formatted list is returned to Audacity, a label track will be created below the audio track(s).
For point labels the format is:
((number ``"string") (number ``"string") ... )
The list to create a label track must contain one or more lists, each of which must have:
number - (an integer or float) is the time in seconds from the beginning of the Audacity selection, where the label will appear.
"string" - a string to be displayed in the label's text field.
For region labels, each label list must contain two int-or-float elements, one for the start and one for the end of the label region.
((number````number ``"string") (number````number ``"string") ... )
Audacity will always place returned audio or labels relative to the start of the and not the start of the .
An empty string may be used as a "null return", which means that the plugin returns nothing, and no error. An example use would be if you wish to process only the first selected track.
When using the or (most) Nyquist plugins that have a , if the plugin returns a sound, it may be previewed using the Preview button. In addition to this, it is also possible to play sounds directly from Nyquist, using the function. The PLAY function will be executed when the plugin code runs.
Note that the Nyquist PLAY command does not use Audacity's . Nyquist uses the system default device for playback, and has a default buffer of 100 ms. The buffer setting may be changed with the command. The actual latency values are dependent on the computer sound system and may differ from those requested by Nyquist.
To see the list of available devices when Nyquist plays, set *snd-list-device* to "true" before the play command, then use Debug button to see the output.
(setf *snd-list-devices* t)
(play *track*)
To select a specific output device, set *snd-device* to the index number of the device you wish to use (not all devices are valid). For example, if ALSA hw(0,0) is device 0, select it with:
(setf *snd-device* 0)
(setf *snd-list-devices* t)
(play *track*)
It is not possible to interrupt Nyquist playback. The sound will continue playing until it reaches the end, and other Audacity functions are disabled until Nyquist playback has finished.
To limit the amount of audio that will play, the length of the sound must be defined before starting playback. For example, to play the first 1 second of a selection, you could write (LISP syntax):
Note also that if a plugin uses Nyquist PLAY command, using Previewwill cause an error on some machines because Audacity may not be able to access the audio device while it is being used by Nyquist. For "own use" plugins, if you have more than one sound card, a possible workaround to enable Preview and Nyquist PLAY simultaneously, is to set the Nyquist playback device to a different device to that which Audacity uses. For public release plugins the Preview button should normally be disabled if Nyquist PLAY is used.
Nyquist plugins provide two mechanisms for translation into the language specified in Audacity's preferences.
One method is exclusively for plugins that are shipped by default with Audacity and requires compiling Audacity from source, plus several other steps involving . Unfortunately this method is not documented, so only a brief description is provided here.
The other method may be used by plugin developers for their "third party" plugins, but can be used only for returned strings and not for the main plugin interface.
Header comments in translated plugins begin with a dollar "$" character rather than the usual semicolon ";" character. The strings to be translated are then wrapped in a function that has a one character name "_" (underscore).
Example: In the effect, the header is changed from:
;name "Adjustable Fade"
to:
$name (_ "Adjustable Fade")
;control lines become $control. As with other translated headers, the $ symbol replaces the normal semicolon. The line is ignored by Nyquist as a comment, but is visible to Audacity for translation and for creating a .
The options in Multiple-choice widgets may be translated. For example:
;control var (_ "Translated left text") choice ((_ "Yes") (_ "No")) 0
The above example is not safe to use. See the "Limitations" section below.
Macros and portability: To allow portability of settings and macros, choices may include a non-translated form of each choice. The non-translated form is used by Macros but is not normally visible to users.
;control var (_ "Translated left text") choice (("Label1" (_ "Translated Label 1")) ("Label2" (_ "Translated Label 2"))) 0
Other user visible strings: Other strings that are visible to users are marked for translation using the "underscore" function. An example from the Adjustable Fade plugin:
(format nil (_ "~aPercentage values cannot be negative.") err)
Control characters like (new line), (tab) are not supported. The workaround is to use Lisp format directives instead:
Bad (does not work correctly):
(print (_ "Line one.\nLine two."))
Good:
(print (format nil (_ "Line one.~%Line two.")))
Note that translations may contain Unicode characters that are not supported by Nyquist. It is therefore important that any translated strings that need to be machine readable (such as Multiple-Choice widget options) should also have a non-translated form.
;control var (_ "Translated left text") choice (("Label1" (_ "Translated Label 1")) ("Label2" (_ "Translated Label 2"))) 0
It is not currently possible to provide translations for a third party plugin's main interface, unless the name is the same as a translated Nyquist plugin that is already shipped with Audacity. It is highly recommended to NOT reuse the same name as a shipped plugin for a third party plugin.
Translations may be provided for return value messages and debug messages. To do this, the string must be marked for translation by wrapping it in the "underscore" function. The translation must also be provided in a specially formatted list variable *locale*.
The format for the *locale* list is: (LIST (language-list) [(language-list) ...])
where "language-list" is a list in the form: (LIST country-code (translations))
and the "translations" are list in the form: (LIST (List "string" "translation") [(List "string" "translation")...])
The *locale* list may contain any number of "language-list" elements, where each language-list is a list of two strings.
The first element of each "language-list" is the country code (for example "en" or "fr"),
The second item of each "language-list" is a list of translation pairs.
A "translation pair" is a list containing the default string (usually in English) and the translated string (in the language specified by the country code).
A working example may be found in the .
in the Audacity manual
Nyquist and
;name "High-Pass Filter"
This header tells Audacity the name of the plugin.
integer
integer
;control
symbol
string
float (real)
string
float
float
float
;control
symbol
string
int-text
string
integer
integer / NIL
integer / NIL
;control
symbol
string
float-text
string
float
float / NIL
float / NIL
;control
symbol
string
string
string
string
-
-
;control
symbol
string
choice
string
integer
-
-
;control
symbol
string
time
string
float
float / NIL
float / NIL
;control
symbol
string
file
string
string
string
string
;control
-
-
text
string
-
-
-
LEN : [int] The number of samples contained in the selected Audacity sound.
*LOCALE* : [list] This is variable name is reserved for translation strings.
*PREVIEWP* : [bool] True when previewing an effect, otherwise false.
*RUNTIME-PATH* : [string] Path to Nyquist .lsp files.
*PROJECT* : A variable with a list of properties relating to the current Audacity project.
S (obsolete) : [sound or array of two sounds] Prior to version 4 plugins, in process and analyze type plugins this was the Audacity sound [the selected part of the Audacity audio track]. In generate type plugins "S" is the Adagio notation for a quarter note (float value 0.25).
S : Adagio notation. [float] A quarter note (float value 0.25).
*SCRATCH* : [any] a symbol whose value and property list are preserved from one effect invocation to the next.
*SELECTION* : A variable with a list of properties relating to the current selection.
*SOUND-SRATE* : [float] The sample frequency of the selected track audio.
*SYSTEM-DIR* : A variable with a list of properties relating to the file system.
*SYSTEM-TIME* : A variable with a list of properties relating to the system time/date.
*TRACK* : [sound or array of sounds] The Audacity sound [the selected part of the Audacity audio track]. The *TRACK* variable also has a list of "properties" that pass additional information to Nyquist.
*WARP* : information that communicates start-time and duration to Nyquist functions. In Audacity, the start-time is always considered to be zero (regardless of the actual start time of the selection) and the duration indicates the duration of the selection. *warp* should not normally be accessed directly.
PROJECTS : [integer] The number of open projects.
RATE : [integer] The project rate in the project.
TIMETRACKS : [integer] The number of time tracks in the project.
TRACKS : [integer] The number of tracks in the project.
WAVETRACKS : [integer] The number of audio tracks in the project.
HIGH-HZ : [float] The high frequency selection Hz (Spectrogram or Spectrogram (log f) track view).
LOW-HZ : [float] The low frequency selection Hz (Spectrogram or Spectrogram (log f) track view).
RMS : [float or array] For mono tracks, the RMS amplitude (linear scale). For stereo tracks, an array containing the RMS for each channel.
PEAK : [float or array] For mono tracks, the absolute peak level (linear scale). For stereo tracks, an array containing the absolute peak level for each channel. Returns 'NIL' if peak level is infinite or NaN.
PEAK-LEVEL : [float] The absolute peak level (linear scale). Returns 'NIL' if peak level is infinite or NaN.
START : [float] The start of the selection in seconds.
TRACKS : [integer list] A list of track numbers of selected audio tracks.
HOME : [string] The current user's "home" directory.
PLUG-IN : [string list] The Nyquist plugin search path. This includes the directories where Audacity looks for Nyquist plugins, and other Nyquist related files. Not all directories are currently used and some are for legacy support only.
SYS-TEMP : [string] The system temp directory.
TEMP : [string] The Audacity temp directory. This is where unsaved project data is temporarily stored.
USER-PLUG-IN : [string] The default path for user plugins.
ISO-TIME : [string] The time represented in the ISO 8601 format "HH:MM:SS".
MONTH : [integer] The month (as an integer).
MONTH-NAME : [string] The name of the month (Example: "January").
TIME : [string] The time formatted according to the current locale. Example: "hh:mm:ss".
YEAR : [integer] The year (as an integer).
FORMAT : [integer or float] The track sample format. One of (Integer) 16, (Integer) 24, or (float) 32.
GAIN : [float] The value of the track Gain slider.
INDEX : [integer] A counter that increments for each track processed. On processing the first track, the value is "1".
NAME : [string] The name of the track.
PAN : [float] The value of the track Pan slider.
RATE : [float] The track sample rate.
SPECTRAL-EDIT-ENABLED : [bool] Returns 'T' (true) if spectral editing is enabled, otherwise 'NIL'. Note that this is irrespective of the track view and will return 'T' if the spectral editing option for the track is enabled even if the track is not displaying a spectrogram.
START-TIME : [float] The track start time (note that this will often be different from the selection start time.)
TYPE : [string] The type of track. One of: "wave", "midi", "label", "time". Currently only "wave" (audio tracks) are processed by Nyquist plugins.
VIEW : [string or list] The track view. Only applies to audio tracks. * A single track view returns one of "Waveform", "Spectrogram" or NIL. Multi-View returns a list of strings or NIL. * Multi-view returns the upper view as the first element, and the lower view as the second (either "Waveform" or "Spectrogram"). Both normal "Waveform" and "Waveform (dB)" return the string "Waveform". * Prior to Audacity 2.4.x : [string] One of: "Waveform", "Waveform (dB)", "Spectrogram" or NIL.
;control
symbol
string
int
string

integer
;nyquist plug-in
;version 4
;type process
;name "High-Pass Filter"
;preview linear
;manpage "High-Pass_Filter"
;debugbutton disabled
;action "Performing High-Pass Filter..."
;author "Dominic Mazzoni"
;release 3.0.2
;copyright "Released under terms of the GNU General Public License version 2 or later."
;control frequency "Frequency (Hz)" float-text "" 1000 0 nil;version 4
;name "Plugin Widgets"
;control filename "File Button widget" file "" "" "" "open"
;control number-sw "Slider widget" float "(float)" 50 0 100
;control integer-sw "Slider widget" int "(integer)" 50 0 100
;control number-nt "Numeric Text widget" float-text "(float)" 50 0 100
;control integer-nt "Numeric Text widget" int-text "(integer)" 50 0 100
;control string-var "String widget" string "text right" "default string"
;control text "Text widget [string]"
;control duration "Time widget" time "text right" 30 nil nil
(format nil
"File Selected: ~s~%~
Floating point slider: ~s~%~
Integer slider: ~s~%~
Floating point text: ~s~%~
Integer text: ~s~%~
String: ~s~%~
(Text widget does not return a value)~%~
Duration: ~s (seconds)"
filename
number-sw
integer-sw
number-nt
integer-nt
string-var
duration);Lisp
(/ len *sound-srate*)
(get-duration 1)
;SAL
len / *sound-srate*
get-duration(1);type generate
(osc 60 2.5);type process
(osc 60 2.5);type process
(abs-env (osc 60 2.5));; Example: Apply a function "process" to
;; the first selected track only.
(if (= (get '*track* 'index) 1)
(process *track*)
"")(play (extract-abs 0 1 *track*))This tutorial provides a description and examples of how to create and use a File-Button Widget in Nyquist Plugins.
The File-Button Widget provides a means to select one or more files via a graphical file browser.
For some plugins it is necessary to read from or write to files. In order to do this, it is necessary to define precisely which file is required, where the file is located, and whether it is required for read access or write access (for read access, the file must exist, whereas for write access this is not always a requirement).
Prior to the availability of the File-Button Widget, file names could be hard coded into the Nyquist script, or a text box could be provided for the user to enter the name of the file. Hard coded file paths lack flexibility, are platform specific (a path starting with "C:\" does not work on Mac or Linux), and may point to locations that do not exist on some machines. While a text box may provide a better solution than hard coding a file path, it remains inconvenient and prone to user error, especially for long file paths. The File-Button Widget was introduced in Audacity 2.3.0 to solve these problems, by providing access to a graphical "file browser window" similar to using
The File-Button Widget, as shown above, has an editable text input field that allows a file path to be typed (or pasted). After the text input field is a button that launches a file browser. Below is an example of the familiar file browser window on Windows 10.
The syntax for creating a File-Button Widget is similar to all other Nyquist Plugin widgets.
;control : Start of header statement. The leading semicolon ";" (or dollar character "$") tells Nyquist to treat this line as a comment and ignore it. The keyword "control" tells Audacity to create a GUI widget to be used by the Nyquist script.
variable-name : [symbol] The variable name that will be set.
text-left : [string] Text on the left side of the widget.
file : [keyword] Declares a "file" type widget.
button-text : [string] Text on the button. Normally this would be two double quotes (an empty string), which gives the default text: "Select a file"
default-file-path : [string] Default file path for the file browser. This supports keywords to aid cross-platform support.
wildcard-filters : [string] This is a magic "wildcard" string that follows the same syntax as . The string comprises pairs of "description", pipe symbol ("|"), "file extension(s)". Multiple file extensions may be listed, separated by semi-colons (";").
flags : [string] This is a "magic" string that sets options for the file browser, following the same syntax as .
The final three arguments, default-file-path, wildcard-filters, and flags, use special keywords that define the behavior of the File-Button Widget and the associated File Browser.
Note that unlike Nyquist symbols, these keywords are case sensitive.
The "Windows", "macOS" and "Linux" examples below refer to standard file paths for modern operating systems, though may be different on some machines.
"<username>" is the name of the computer user's account (log-in name).
"default file path" supports the keywords:
*home*" : The current user's "home" directory.
Windows: C:\Users\<username>\
macOS: /Users/<username>/
Linux: /home/<username>/
~ : An alias for *home*.
*default* : The default "Documents" path.
Windows: C:\Users\<username>\Documents\Audacity
macOS: /Users/<username>/Documents/
*export* The default "Export" path.
Windows: C:\Users\<username>\Desktop\
macOS: /Users/<username>/Documents/
*save* The default "Save" path.
Windows: C:\Users\<username>\Desktop\
macOS: /Users/<username>/Documents/
*config* The default configuration file directory.
Windows: C:\Users\<username>\AppData\Roaming\audacity\
macOS: /Users/<username>/Library/Application Support/audacity/
These keywords may be combined with a file name to specify which file to open. For example, if you want the default file to be called "sample-data.txt", and you want the default location to be the default "Documents" path, you could write the default file path parameter as: "*default*/sample-data.txt".
File paths should be quoted with double quotes, otherwise spaces in file name will fail. If no file path is provided, the default is "default". If no file name is provided, the default file name is "untitled". The default file extension is taken from the wildcard-filters.
The "wildcard-filters" determine which file types are visible in the file browser. An empty string will default to all files types.
This "magic string" follows the same syntax as wxFileDialog. The string comprises pairs of "description" and "file extension(s)", separated by a pipe character ("|"). Multiple file extensions may be listed, separated by semi-colons (";").
Example:
"Text file|*.txt;*.TXT|All files|*.*;*"
In this example we have two pairs:
Text file|*.txt;*.TXT: Description: "Text file" File extension "*.txt" matches: "anything.txt" File extension "*.TXT" matches: "anything.TXT"
All files|*.*;*: Description: "All files" File extension "*.*" matches: "anything.anything" File extension "*" matches: "anything"
The magic "flags" string is similar to the "Styles" options in wxFileDialog. Flags may be an empty string, a single keyword, or a comma separated list of keywords.
Available keywords are:
open : This is a "file open" dialog. Usually this means that the default button's label of the dialog is "Open". Cannot be combined with "save"
save : This is a "file save" dialog. Usually this means that the default button's label of the dialog is "Save". Cannot be combined with "open".
overwrite : For save dialog only: prompt for a confirmation if a file will be overwritten.
exists : For open dialog only: the user may only select files that actually exist
multiple : For open dialog only: allows selecting multiple files.
Example: Open file dialog for one or more files that must exist.
"open,exists,multiple"
Example: Save file dialog with overwrite prompt if file exists.
"save,overwrite"
The File-Button widget attempts to create a valid file path as a string, and assign it to the "variable-name" symbol.
If a single file is selected using the file browser, then the widget text box is updated to show the full path to the selected file.
If multiple files are selected using the file browser (requires "multiple" flag to be set), each file path is enclosed in double quotes. Note: The list of file paths is NOT a LISP list. It is still a string. See example below for how to deal with multiple file paths.
If the file path text box is empty, then the widget variable symbol is set to the default path.
If the file path text box contains only a file name (or any string that is not a path), then it is prepended with the default path and assigned as the value of the widget variable.
In the event of programming or user errors, the File-Button Widget may return an error message. Understanding these messages can be a great help when debugging a new plug-in.
<Path>is not a valid file path.
****This error occurs if the returned file path is invalid, for example, if the directory does not exist. : This error is most likely to be due to the user manually editing the file path text box with an invalid file path.
Mismatched quotes in <string>
****When the "multiple" flag is set, the file browser returns a list of quoted strings for each path. This error is thrown if the opening quotes do not have matching closing quotes. : This error is most likely to be due to the user manually editing the file path text box and missing one or more quote characters.
Invalid wildcard string in 'path' control. Using empty string instead. ****This error occurs if the 'wildcard' magic string is malformed. : This is a programming error. Check the syntax of your string.
Simple "Open File" Example
;control var "Select file to open" file "" "" "" ""
In this example. only the variable ("var") and the "text-left" ("Select file to open") are explicitly set. Empty strings are passed to the other parameters, so they will all take default values.
In reverse order: the default "flag" is "open", the default wildcard filter is "All files", the default file path is "*default*", the default file name is "untitled", and the default button text is "Select a file".
Simple "Save File" Example
;control var "Select file to save" file "" "" "" "save"
Very much like the simple "open file" example above, except this one is selecting a file for writing.
Advanced "Open File" Example
;control filename "Select file" file "" "*default*/sample-data.txt" "Text file|*.txt;*.TXT|All files|*.*;*" "open,exists"
Unlike the previous examples, all parameters are explicitly defined. The default file name is "sample-data.txt", and by default the file browser filters the file list to show Text files only (ending in ".txt" or ".TXT"). The file browser also has an option to show all files.
Note that the file browser is created by the underlying operating system, so there are subtle differences across platforms. The "exists" flag is only relevant for file browsers that allow you to type the file name. For a purely graphical browser it is not possible to select a file that does not exist.
Note also that the "exists" flag only affects the file browser - it does not prevent the user typing a non-existent file name in the file path text field. If the plugin requires the file to exist, then the plugin code should run a test to ensure that it does. A simple test for the existence of a file, is to try and open it, for example:
Advanced "Save File" Example
;control filename "Export data to" file "Select a file" "*default*/sample-data.txt" "Text file|*.txt;*.TXT|CSV files|*.csv;*.CSV|HTML files|*.html;*.HTML;*.htm;*.HTM|All files|*.*;*" "save,overwrite"
In this example, all parameters are explicitly defined:
variable-name: filename
text-left: "Export data to"
button-text: "Select a file"
default-file-path: "*default*/sample-data.txt"
wildcard-filters: ****Text file|*.txt;*.TXT| CSV files|*.csv;*.CSV| HTML files|*.html;*.HTML;*.htm;*.HTM| All files|*.*;*"
flags : "save,overwrite"
The wildcard filters provide options in the file browser to show either text files (.txt or .TXT), which is the default, or CSV files (.csv pr .CSV), or HTML files (.html, or .HTML, or .htm, or .HTM), or "All files" (any file name).
Note that on Windows, file extensions are not case sensitive, but Linux, and some Mac computers are case sensitive, so for cross-platform portability it is recommended to use both upper and lower case file name extensions.
Open Multiple Files
;control var "Select one or more files" file "Select" "*default*" "Text file|*.txt;*.TXT|All files|*.*;*" "open,multiple"
In this example, the variable that will be set is var, the default directory is *default*, and the default file type filter is for text files (with an option to show all files). Unlike the previous versions, the file browser may be used to select multiple files (requires Audacity 2.3.1 or later).
To extract all of the the paths from the returned string, we first need to convert it to a more useful form, such as a LISP list:
(setf path-string
(format nil "(list ~s )" (string-trim "\"" var)))
Here we have stripped the outer double quotes (if present), and then formatted it into a string that describes a LISP list. So, for example, if the selected files were: "C:\first.txt" and "C:\second.txt", then the value of varwould be ""C:\first.txt""C:\second.txt"", and the value of path-string would be "(list "C:\first.txt" "C:\second.text")".
Important: Note that this is still only a string value, not a LISP list.
To convert this string into a LISP list, we need to evaluate the string as if it were code. Fortunately in Audacity 2.3.1 and later, there is an easy way to do this with the EVAL-STRING function:
(setf paths (eval-string path-string))
paths is now a valid LISP list of strings, which we can iterate through like this:
(dolist (p paths)
(print p))
The complete example that can run in the Nyquist Prompt:
These example applications may be run in the Nyquist Prompt, or could be converted to plugins by adding full plugin headers.
In this example, we use a File-Button widget to specify a file that will be written to. It is important to note that selecting the file does NOT write to the file, it only captures the file path and file name, which we then write to later in the script. The plugin will get some information about the selected audio, and write (append) it to a file.
First we start with a couple of headers to set the syntax version and plugin type.
;version 4
;type analyze
Next is our File-Button widget. Note that it has the "save" flag because we are selecting a file to write to.
;control filename "Export to" file "" "data.txt" "Text file|*.txt;*.TXT|All files|*.*;*" "save"
The next three code lines gather the raw information that we will be writing to the file.
When we write to a file with Nyquist, the file is overwritten by the data that we are writing. As we want to append the new data to the file rather than overwriting it, we must first read the existing text from the file and store it in a variable. We can then write the old data, plus the new data back to the file. Here is a function that will read the contents of the file if it exists, and returns the data to the function caller.
As this code is designed to work with text files, we can check that the file name ends with ".txt".
The file name extension is NOT a reliable way to test the file type. In any situation where security is a concern, the file extension must not be relied as an indicator of the file type.
First we assign an empty string as the value of the variable ext.
If the file name is at least 4 characters long, we extract the last 4 characters and assign it as the value of ext.
We can then apply a case insensitive string comparison. If ext is equal to .txt, then we assume it is a plain text file.
So now we can run our main program, which is within a program prog block.
The program block begins by binding a local variable {{inlineCode|data}}{=mediawiki} to the data returned by the {{inlineCode|read-file}}{=mediawiki} function (defined above).
Then we open the file for writing.
And then the data can be written to the open file.
After reading or writing to a file, the file should be closed again.
Finally we return an acknowledgment message.
If the file did not end with .txt, we return an error message.
The Complete Code:
This is an advanced example that uses the File-Button widget to read data from one or more text files. Text handling is not one of Nyquist's strengths (Nyquist is primarily designed for handling audio), hence parsing the text file data is quite complex.
In this example, we will import (read) labels from one or more text files.
For this plug-in, we will specify that the label data file has one label definition per line, and each label definition has a start time (in seconds), and end time (in seconds) and optional label text. The numbers and optional label text may be separated by spaces or tabs. The data should be saved as plain text, with a ".txt" file extension.
Example Data:
The Complete Code:
Plugin Headers are specially formatted placed at the top of a Nyquist plugin script.
Any line beginning with a semi-colon (";") is entirely ignored by Nyquist, but properly formatted "header" comments provide instructions that tell Audacity how to create the plugin.
Plugin headers are written as:
where keyword is the header command, and args is a list of values. For most header commands there must be the correct number of arguments.
;control variable-name "text-left" file "button-text" "default-file-path" "wildcard-filters" "flags"(defun test ()
(if (setf f (open filename))
(close f)
(throw 'error "File does not exist"))
(print "All good"))
(catch 'error (test));version 4
;type tool
;debugflags trace
;control var "Select one or more files" file "Select" "*default*" "Text file|*.txt;*.TXT|All files|*.*;*" "open,multiple"
(setf path-string (format nil "(list ~s )"
(string-trim "\"" var)))
(setf paths (eval-string path-string))
(dolist (p paths "")
(print p));; Get data:
(setf tname (get '*track* 'name))
(setf peak (get '*selection* 'peak))
(setf rms (get '*selection* 'rms))(defun read-file(fname)
;;; If file exists, copy its contents.
;;; Return the data, or empty string.
(setf data "")
(setf fp (open fname))
(when fp
(do ((line (read-line fp) (read-line fp)))
((not line))
(setf data (format nil "~a~a~%" data line)))
(close fp))
data);; Check file extension.
(setf ext "")
(when (>= (length filename) 4)
(setf ext (subseq filename (- (length filename) 4))))
(if (string-equal ext ".txt")
...;; It looks like a text file, so let's do it...
(prog ((data (read-file filename)))
;; Open the file for writing.
(setf fp (open filename :direction :output))
;; Use the 'format' command to write to the file pointer 'fp'.
(format fp "~aTrack ~s: Peak level: ~a RMS level: ~a~%"
data tname peak rms)
;; Close the file.
(close fp)
(format nil "Data exported to:~%~s" filename));; It doesn't look like a text file, so throw an error.
"Error.\nUnsupported file type.");version 4
;type analyze
;control filename "Export to" file "" "data.txt" "Text file|*.txt;*.TXT|All files|*.*;*" "save"
;; Get data:
(setf tname (get '*track* 'name))
(setf peak (get '*selection* 'peak))
(setf rms (get '*selection* 'rms))
(defun read-file(fname)
;;; If file exists, copy its contents.
;;; Return the data, or empty string.
(setf data "")
(setf fp (open fname))
(when fp
(do ((line (read-line fp) (read-line fp)))
((not line))
(setf data (format nil "~a~a~%" data line)))
(close fp))
data)
;; Check file extension.
(setf ext "")
(when (>= (length filename) 3)
(setf ext (subseq filename (- (length filename) 4))))
(if (string-equal ext ".txt")
;; It looks like a text file, so let's do it...
(prog ((data (read-file filename)))
;; Open the file for writing.
(setf fp (open filename :direction :output))
;; Use the 'format' command to write to the file pointer 'fp'.
(format fp "~aTrack ~s: Peak level: ~a RMS level: ~a~%"
data tname peak rms)
;; Close the file.
(close fp)
(format nil "Data exported to:~%~s" filename))
;; It doesn't look like a text file, so throw an error.
"Error.\nUnsupported file type.")12.427844 12.427844 Hello
39.320883 52.495756 World
63.769100 63.769100
79.524618 79.524618 Hi there;version 4
;type analyze
;control filepaths "Select one or more files" file "Select" "*default*/Label Track.txt" "Text file|*.txt;*.TXT|All files|*.*;*" "open,multiple"
(defun get-files(txt)
;;; Convert string of file paths to LISP list.
;;; Return list.
(let* ((txt (string-trim "\"" txt))
(txt (format nil "(list ~s )" txt)))
(eval-string txt)))
(defun label-from-text(txt)
;;; 'txt' is a line read from the file. It must be formated as:
;;; "number number string"
;;; Each label needs to be a LISP list in the form:
;;; (LIST number number [string])
;;; Return a properly formatted label from a line of text.
(let ((newtxt "")
(labeltext nil)
(isnumber nil)
(index 0))
;; Label text must be double quoted.
(dotimes (i (length txt))
(setf ch (char txt i))
(cond
(labeltext
;we are in the label text region, so just add the character.
(setf newtxt (format nil "~a~a" newtxt ch)))
((and (< index 2) ;two numbers expected.
(or (char= ch #\.)
(digit-char-p ch)))
(setf isnumber t)
(setf newtxt (format nil "~a~a" newtxt ch)))
;; Elements may be delimited by spaces or tabs.
((or (char= ch #\space)
(char= ch #\tab))
(when isnumber ;previous character was numeric.
(incf index)
(setf isnumber nil))
(setf newtxt (strcat newtxt " ")))
;; Non-space character after the two numbers is
;; the start of the label text.
(t (setf labeltext t)
(setf newtxt (format nil "~a\"~a" newtxt ch)))))
;; If label text exists, close the double quotes,
;; else add an empty string.
(if labeltext
(setf txt (strcat newtxt "\""))
(setf txt (strcat newtxt "\"\""))))
; Convert txt to a list.
(setf data (eval-string (format nil "(list ~a)" txt)))
;; Sanity check the data.
(cond
((/= (length data) 3)
(throw 'err "Error.\nFile must contain one label per line."))
((or (not (numberp (first data)))
(not (numberp (second data))))
(throw 'err "Error.\nMalformed label file.")))
; Return single label.
data)
(defun openfile(filename)
;;; Open file with error checking.
;;; Return file pointer (fp).
(setf fp (open filename))
(when (not fp)
(throw 'err (format nil "Error.~%~s could not be opened." filename)))
fp)
(defun process-file (fp)
;;; Reads data from file pointer and create one label from each line.
;;; Return a list of labels.
(let ((labels ()))
(do ((txt (read-line fp) (read-line fp)))
((not txt) labels)
(push (label-from-text txt) labels))))
(defun process()
;;; 'Main' function.
;;; Process each file path in turn and concatenate the lists of labels.
;;; Return all labels.
(let ((file-list (get-files filepaths))
(labels ()))
(dolist (path file-list labels)
(setf fp (openfile path))
(setf labels (append labels (process-file fp)))
(close fp))))
; Call the 'main' function, and catch any errors.
(catch 'err (process))Linux: /home/<username>/Documents/
Linux: /home/<username>/Documents/
Linux: /home/<username>/Documents/
Linux: /home/<username>/.audacity-data/


Nyquist plugin headers normally begin with one single semicolon at the beginning of each line.
Headers must be all lower-case except for quoted text (for example: "name") which may include upper-case characters.
Malformed plugin headers are ignored (treated as normal code comments).
Audacity 2.3.0 adds a new style of header for plugins that are shipped with Audacity which provides multi-language translation support.
Translated headers begin with a dollar character ("$") rather than a semi-colon. The string to be translated is double quoted, and appears between (_ and ).
Example:
All plugin headers have the syntax: ;keyword args, where args are the parameters ("arguments") for the header command.
Required plugin headers:
These headers are required in all Nyquist plugins.
****
Defines the text file as a Nyquist plugin.
"name"
Sets the name of the plugin.
"type"
Specifies the type of plugin.
version
Specifies the Nyquist plugin version.
Tells Audacity "this is a Nyquist plugin". This should normally be the first line as it defines the contents of the file.
Name of the plugin as it will appear in the Audacity menu:
Note that for plugins to be used in Chains, the colon character ":" cannot be used (as it is a special character in the Chain text file).
If the plugin has an interface, the name should end with three dots so as to indicate that additional user action is required before the plugin is applied. Plugins that act immediately without additional user action should not have dots at the end of the name.
Only one ";type" line should be used.
A plugin cannot appear in several Audacity menus at the same time, but it is possible to write several plugins with the same name and different ";type" lines. Each plugin will then appear in the appropriate menu. Using the same name for more than one plugin is not recommended and should generally be avoided.
;type analyze
Plugin appears in the Audacity Analyze menu.
Analyzing selected track audio.
Durations are relative to the selection length.
Code iterates through each selected track.
;type generate
Plugin appears in the Audacity Generate menu.
Generating audio.
Durations are absolute (1 "unit" of time = 1 second).
Code runs once only regardless of number of tracks.
;type process
Plugin appears in the Audacity Effect menu.
Processing selected track audio.
Durations are relative to the selection length.
Code iterates through each selected track.
Tool type plugins are typically Nyquist Macros or plugins that don't fit well in any of the first three roles. They may also be combined with one of the other types:
;type tool analyze
Appears in the Audacity Tools menu and behaves like an Analyze type.
;type tool generate
Appears in the Audacity Tools menu and behaves like a Generate type.
;type tool process
Appears in the Audacity Tools menu and behaves like a Process type.
Use only one ";version" line.
All new plugins should use the most recent version number so that all current features are available. The version line is required to allow Audacity to run the plugin correctly and prevents plugins with new features from being loaded in an old Audacity program that is missing required features.
;version 1
Slider Widget
;version 2
Text input widget added
;version 3
multiple-Choice widget added
;version 4
Additional global variables to pass additional information from Audacity to Nyquist.
New optional plugin headers:
Name of the plugin Author. If this line is added, its text will appear in the Audacity Effect Menu when sorted or grouped by "Publisher". The author name string must be quoted.
A short statement of the copyright/license terms. For plugins shipped with Audacity, this must be compatible with Audacity's GPL v2 license. The copyright string must be quoted.
Recommended text for GPL v2 license:
;copyright "Released under terms of the GNU General Public License version 2 or later"
Additional copyright details may be included in the plugin code comments, but must not conflict with the terms declared in the copyright header.
Displays a release version number for the plugin in the Manage > About menu.
Plugins that are shipped with Audacity have a release version number equivalent to the Audacity version at the time that the plugin was last updated.
Plugin authors may choose whichever versioning scheme they prefer, but should ensure that later versions of the plugin always have a later version number. If the version number has spaces, it must be enclosed in double quotes.
Any one of the following are valid (though there should be only ONE release header in a plugin):
release 1 release 0.0.1 release "1.0" release "3.5 beta"
Declaration of code syntax. May be either lisp or sal (lower case).
For LISP syntax plugins this is usually omitted, but it should always be included for SAL syntax plugins.
If the code type is not declared in the Nyquist Prompt effect, Audacity attempts to deduce the correct syntax from the code.
The code type can only be Lisp syntax or SAL. It cannot be a mix of both.
Show or hide the Debug button. The default is to show the button, but for plugins that are shipped with Audacity, or other plugins that are believed to be bug free, the Debug button may be hidden by setting this to "false" or "disabled"
or
;debugflags trace
Sets (LISP) or sal-traceback (SAL) and displays debug window if there is anything to show.
This may be useful when showing debug info is integral to what the plugin does, or when debugging a script.
;debugflags notrace
Disables tracenable (LISP) / sal-traceback (SAL). This prevents the debug window from opening on error, unless the Debug button has been pressed.
If the Debug button has not been pressed and there is an error, the error message will be sent to Audacity's . Note that disabling tracenable limits the debug output to only the error message with little or no additional debugging information.
;debugflags compiler
Set sal-compiler-debug to 'true'.
Output from the SAL compiler is printed to the debug output. This may be viewed in the Debug window if enabled (for example, by clicking the Debug button), otherwise in the .
;debugflags nocompiler
Set sal-compiler-debug to 'false'.
Disables compiler messages from SAL. Only debug and error messages are printed to the debug output.
These flags may be used in conjunction with the debugbutton header to provide a variety of behaviors.
debugbutton true, debugflags trace: Debug window opens if debug button pressed or if Nyquist printed to the debug window.
debugbutton false, debugflags trace: Debug button disabled, but debug window opens if Nyquist printed to the debug window.
debugbutton true, debugflags notrace: Debug window opens only when Debug button is pressed. If Debug button has NOT been pressed, any error messages that arise are routed to the Audacity log.
debugflags compiler, debugflags trace: (When using SAL syntax) The Debug window always opens to display the output from the SAL compiler.
debugflags compiler, debugflags notrace: (When using SAL syntax) The Debug window only opens to display the output from the SAL compiler if Debug button is clicked, otherwise it is printed to the Audacity log.
debugflags nocompiler, debugflags trace: (When using SAL syntax) The Debug window always opens to display debug and/or error messages. Output from the SAL compiler is suppressed.
A Help button may be added to the plugin GUI by giving the relative path and name of a help file. As the button can only be created if the plugin has a GUI, this header should not be used in plugins that do not have a GUI.
The file path is relative to the plugin search path. Normally the help file would be placed in the same location as the plugin when it is installed. To support HTML files with images and/or media, the help file and its resources may be in a folder, and the folder included in the file path. For example, if the help file is called "my_effect.html" and it includes images, then the html file and images may be placed in a folder called "my_effect_help", and the helpfile header would be:
This is primarily intended for use by plugins that are shipped with Audacity. It is similar to the helpfile header, except that it looks for the help file in the search path for Audacity's manual. As with ";helpfile" it should only be used in plugins that have a GUI. For more information, see Location of Manual
Specifies the maximum number of samples to be processed in "process" or "analyze" type plugins. This can help the progress bar if length that will be processed is determined by the plugin rather than by the length of selection. It could also be used as a fail-safe for plugins that are specifically designed for short selections. This example limits the number of samples to 1 million:
When the MAXLEN header is used, the Nyquist global variable LEN is the maximum of "length of selection in samples" and "value set by MAXLEN".
Allows Nyquist plugins to override Audacity's default "clip merge" behaviour. By default, when effects (including generator effects) are applied across one or more clip boundaries and the returned audio is a different length from the original selection, Audacity will add "split lines" at the ends of the returned audio. In all other cases, the returned audio is "merged" into the current audio.
This option only applies when the plugin is applied across clip boundaries (including across "split lines").
-1 Automatic clip merge behaviour (default)
0 Don't merge clips. Effects that are applied across clip boundaries will not be merged into the existing audio (there will be split lines at the ends of the returned audio) whether the returned audio is the same length as the original selection or not.
1 Always merge clips. The returned audio will always be merged into the existing audio (no split lines added).
See also "restoresplits".
Provides options for previewing the effect. Multiple preview options may be defined to achieve the desired behaviour.
Preview Options
enabled (default). Preview is enabled.
true Same as "enabled".
disabled Preview is disabled. If Audacity is unable to provide a meaningful preview, then preview should be disabled. This may be required for effects that affect specific time regions within the selection.
false Same as "disabled".
linear Provides an optimisation for previewing multiple tracks by mixing the selected tracks before applying the Nyquist code. This optimisation is disabled by default.
selection When previewing, the Nyquist code is applied to the entire selection (not just the length that will be previewed). Audacity's "Preview" then plays the first few seconds of the processed audio. This may be required for effects that vary over the duration of the selection.
Allows Nyquist plugins to override Audacity's default "split restore" behaviour. By default, when effects (including generator effects) are applied across one or more clip boundaries, Audacity will restore "split lines" at the position of the original clip boundaries.
This option only applies when the plugin is applied across clip boundaries (including across "split lines").
Restore Splits Options
1 Splits at clip boundaries are restored (default)
0 Splits at clip boundaries are not restored (clips are joined).
Note: Nyquist plugins are not currently able to distinguish between silence and "empty space" within the selection, so gaps between audio clips will be treated as if the empty space is an additional "silent" audio clip.
See also "mergeclips".
These headers are obsolete and no longer used by Audacity. They should not be used in new plugins.
They may still be found in some old plugins, but are now treated by Audacity as ordinary "comments" and simply disregarded.
Description shown in progress window.
Specifies an LV2 category for the plugin.
A single line of text to be displayed at the top border of the plugin window. For multiple lines of text, a two-character sequence "\n" may be used within "text" to create a line break.
If the plugin includes at least one properly formed "Control" header, Audacity will launch the plugin with a GUI.
Each valid "Control" header adds a widget to the GUI. If there are no "Control" headers, Audacity will attempt to run the effect without a GUI.
There can be several "control" lines in the plugin header. Add one for each widget to appear in the dialog box. The ;control headers should normally be the final headers as they define variables used by the Nyquist code.
;keyword args$name (_ "Name of Effect") ;nyquist plug-in ;name "name" ;author "Name of Plugin Author(s)" ;copyright "copyright text" ;codetype type ;debugbutton false ;debugbutton disabled ;helpfile path to file ;helpfile "my_effect_help/my_effect.html" ;manpage URL ;maxlen 1000000;maxlen 1000000
(defun isok ()
;; Return true if selection is less than "maxlen".
(let ((start (get '*selection* 'start))
(end (get '*selection* 'end)))
(<= (truncate (* *sound-srate* (- end start))) len))) ;mergeclips -1 ;mergeclips 0 ;mergeclips 1 ;preview enabled ;preview true ;preview disabled ;preview false ;preview linear ;preview selection ;restoresplits 1 ;restoresplits 0 ;action "text" ;categories "text" ;info "text" ;control parametersDisplay Headers:
Display additional information about the plugin. These headers are optional.
;author "text"
Name of plugin developer. Shown in the "About" section of Manage. Also used when effects are sorted by "Publisher".
;copyright "text"
Copyright / license notice. Shown in the "About" section of Manage.
;release version
Version / release number of the plugin. Shown in the "About" section of Manage.
Functional Headers:
These headers may be used to provide additional functionality.
;codetype type
Specifies if the Nyquist code uses SAL or LISP syntax.
;debugbutton option
Specifies if the Debug button is visible.
;debugflags flags
Sets the debug message behavior.
;helpfile "path to file"
Displays a Help button that links to a plugin Help file.
;manpage "URL"
Displays a Help button that links to the plugin Help page in the Audacity manual.
;maxlen integer
Sets the maximum number of samples to be processed.
;mergeclips integer
Specifies the clip merge behavior.
;preview option
Specifies the plugin Preview options.
;restoresplits integer
Specifies the clip split behavior.
Obsolete Headers:
These headers are no longer used by current versions of Audacity and are ignored.
;action "text"
Ignored.
;categories "text"
Ignored.
;info "text"
Ignored.
These headers define the plugin GUI.
;control <args>
The parameters (<args>) specify the type of widget and the widget's required arguments. See also: Nyquist Plugins Widgets
;type tool
Plugin appears in the Audacity Tools menu.
Nyquist Macros / Other.
Nyquist cannot directly modify the project.
A band-rejection filter that passes most frequencies unaltered, but stops those in a specific range.
Type I Chebyshev filters can provide a steeper than but at the expense of more in the .
An Equalizer (EQ) that can modify more than one band at a time.
The name 'comb' filter comes from how it acts on the audio spectrum it's applied to: it looks like a comb with the teeth pointing up.
Customizable single-band equalizer.
This equalizer is modelled on the EQ section of the Allen & Heath GL series mixing desk.
A high pass filter with Q, or resonance.
A high pass filter with a low frequency oscillator (LFO).
A filter for removing the sound of from recordings.
A low pass filter with a low frequency oscillator (LFO).
A low pass filter with Q, or resonance.
A multiband equalizer.
Loosely based on the Mutron stomp box from the late 70's. Basically it is a filter controlled by an envelope follower.
A notch filter cuts out a "notch" in the spectrum of your audio.
A parametric equalizer is a variable equalizer effect which provides control of three parameters: amplitude, center frequency and bandwidth.
Like someone is playing around with the cut-off frequency knob of your low pass filter.
A filter with low pass, high pass and band pass options with a "resonance" control.
A shelf filter with options for high shelf, low shelf or mid-band.
An Equalizer (EQ) that can modify one band at a time.
Warning: This effect can cause data loss on macOS. See for details.
This is the vocal reduction and isolation effect that was included in Audacity prior version 3.5.
Order: [choice 2 to 30 in steps of 2] (default 6) The higher the "order" number, the steeper the cut-off transition from the passband to stop band.
Cut-off Frequency: [1 to 48000 Hz] (default 1000 Hz). The actual filter frequency is limited to half of the track sample rate (the Nyquist frequency). For example, if the track sample rate is 44100 Hz, then setting the Cut-off frequency to any value greater than 22050 will produce the same result as setting the frequency to 22050 Hz.
Ripple: [0.0 to 3.0 dB] (default 0.05) Lower values will produce less ripple in the passband at the expense of a less steep cut-off. Higher values will produce a steeper cut-off but with more ripple in the passband. The difference in ripple and cut-off slope is likely to be most noticeable with low order filters and may be noticed as a slight boost or ringing in the passband just before the cut-off frequency.
When Ripple is set to zero, the passband response is essentially flat and the filter has the characteristics of a Butterworth filter.
The high-pass and low-pass filters may be used one after the other to produce a "flat topped" band-pass effect, in which the lower cut-off is provided by the high-pass filter and the upper cut-off provided by the low pass filter. The passband is the frequency band that passes between these two cut-off frequencies.
Comb frequency: [Hz, 20 - 5000, default 440]
Comb decay: [0 - 0.1, default 0.025]
Normalization level: [0.0 - 1.0, default 0.95]
Gain: [dB, -48.0 - +48.0, default 0.0]
Apply normalization? [Default = "no"]
Normalization level: [0.0 - 1.0, default 0.95]
100 Hz HPF: (+/- 15 dB) attenuates frequencies below 100 Hz by 12 dB per octave. It may be used to reduce low frequency noise such as microphone popping, stage noise and tape transport rumble.
HF Gain: sets the gain of the high frequency shelf filter which boosts or cuts high frequencies. Positive values will tend to make the sound "brighter". Negative values will tend to make the sound less bright.
High-Mid Frequency: (500 Hz to 15 kHz) sets the center frequency of the high-mid band filter.
High-Mid Gain: (+/- 15 dB) sets the gain of the high-mid band filter.
Low-Mid Frequency: (35 Hz to 1 kHz) sets the center frequency of the low-mid band filter.
Low-Mid Gain: (+/- 15 dB) sets the gain of the low-mid band filter.
LF Gain: (+/- 15 dB) sets the gain of the low frequency shelf filter. Positive values will tend to give the sound more bass and negative values will reduce the bass.
Filter Q (resonance): [0 - 5, default 1]
Lower cut-off frequency: [20 - 20000 Hz, default 160]
Upper cut-off frequency: [20 - 20000 Hz, default 2560]
LFO starting phase: [-180 to + 180 degrees, default 0]
LFO frequency: [0.0 to 20.0, default 0.2]
LFO starting phase: [-180 to + 180 degrees, default 0]
Parameters:
Select Region: [Europe (50Hz) or USA (60Hz), default 50Hz] - Sets the fundamental hum frequency.
Number of odd Harmonics: [0 to 200, default 1] - The first harmonic is 50 or 60 Hz depending on the region selected.
Number of even Harmonics: [0 to 200, default 0] - The number of even harmonics to filter.
Hum Threshold Level (0 to 100%): [0 to 100, default 10] - The signal level, as a percentage of 'full scale' below which the filters are applied.
Lower cut-off frequency: [20 - 20000 Hz, default 160]
Upper cut-off frequency: [20 - 20000 Hz, default 2560]
LFO starting phase: [-180 to + 180 degrees, default 0]
LFO frequency: [0.0 to 20.0, default 0.2]
LFO starting phase: [-180 to + 180 degrees, default 0]
Filter q (resonance): [0 - 5, default 1]
Depth: [-10000 - +10000 Hz, default 5000] - sets the negative or positive filter modulation depth
Band Width: [50 - 400 Hz, default 100] - controls the resonance, lower values being more resonant
Mode: [0="Low" 1="High" 2="Notch" 3="Band" (default)] - sets the filter mode: 0 = "Low pass", 1 = High pass, 2 = Band Reject (cut a notch at the filter frequency), 3 = Band Pass
Frequency: [0 - 10000 Hz, default 60 Hz]
Q: [0.1 - 20.00, default 1.00] - determines the width of the notch. Below 1 creates a wider notch, above 1 creates a narrower notch.
Width: [0 to 10, default 5] - determines the width of the affected frequency band. Greater width settings affect a broader range of frequencies. Smaller width affects a narrower band of frequencies. Numerically the width setting is approximately the half gain width in half octaves, thus the default setting of 5 has a half gain width of approximately 2.5 octaves.
Gain (dB): [-15 to +15 dB, default 0 dB (no effect)] - how much the filter center frequency is boosted or attenuated.
Filter depth factor: [1 - 300, default 20] - how extreme the random filter cut-off changes are
Maximum cut-off frequency: [20 - 5000 H, default 2000] - the filter's maximum cut-off frequency
Resonance (Q): [0.1 to 100] (default: 10) - The amount of resonance. Higher values will produce a more pronounced and narrower peak at the corner frequency. Lower values will produce a less prominant peak with values below 0.7 showing no peak at all.
Filter type: [choice: Low Pass, High Pass, Band Pass] (default: Low Pass) - Low pass allows frequencies below the corner frequency to pass through the filter and reduces frequencies above the corner. High Pass allows frequencies above the corner to pass and reduces frequencies below the corner. Band Pass reduces frequencies that are below the corner and reduces frequencies that are above the corner, allowing only a band of frequencies around the corner frequency to pass.
Output Gain: [-60 to 0 dB] (default -12 dB) - Because the resonance accentuates frequencies around the corner frequency it is often necessary to reduce the output level of this effect. Lower (more negative) values reduce the level more.
Low frequency cut-off: [1 to 10000 Hz] - The corner frequency for the low shelf filter, or the lower corner frequency for the mid-band filter.
High frequency cut-off: [0.1 to 20 kHz] - The corner frequency for the high shelf filter, or the upper corner frequency for the mid-band filter. The high frequency cut-off must be less than half the track sample rate.
Filter gain: [+/- 30 dB] - how much to boost or cut the filtered audio. Positive values boot and negative values reduce the level.
If you apply an effect to a selection within a time-stretched clip then Audacity will split the original clip so that the selection can be rendered as part of applying the effect.
WARNING: The Low Cut and High Cut sliders affect these actions.
Remove Vocals: to mono: (default). If the audio is center-panned, removes the vocal range defined by the Low Cut and High Cut sliders, and returns it as a dual-channel mono track. Audio is said to be "center-panned" if it is common to both left and right channels. Cancellation of center panned audio is achieved by the well known "invert and mix" method.
NOTE: This option is usually much quicker than the other actions because the processing is much simpler.
This setting is identical to the "Vocal Remover > Remove frequency band" effect in previous versions of Audacity.
The Strength slider is not used when "Remove Vocals: to mono:" is selected.
Remove Vocals: If the audio is center-panned, removes the vocal range defined by the Low Cut and High Cut sliders, and returns it as a stereo track.
Isolate Vocals: If the audio is center-panned, extracts the slider-defined vocal range and returns it as a (dual) mono track.
Isolate Vocals and Invert: If the audio is center-panned, extracts the slider-defined vocal range and returns it as an inverted (dual) mono track.
HINT: Inverting a waveform is the action of flipping the audio samples upside-down, reversing their polarity. The positive samples (above the horizontal zero line in the Audacity Waveform) are moved below the zero line (so becoming negative), and negative samples are made positive.
This option is equivalent to applying the Isolate Vocals option and then inverting.
The "and Invert" options may be useful when processing using duplicated tracks. See the examples below.
WARNING: The Low Cut and High Cut sliders have no effect with these actions.
Remove Center: to mono: Removes all audio (the whole frequency spectrum) that is common to both left and right channels and returns a (dual) mono track. Cancellation of center panned audio is achieved by the well known "invert and mix" method.
NOTE: This option is usually much quicker than the other actions because the processing is much simpler.
This setting is identical to the "Vocal Remover > entire spectrum" effect in previous versions of Audacity.
None of the sliders are used when "Remove Center: to mono" is selected.
Remove Center: Removes all audio (the whole frequency spectrum) that is common to both left and right channels and returns a true stereo track.
Isolate Center: If the audio is center-panned, extracts the whole frequency spectrum and returns it as a (dual) mono track.
Isolate Center and Invert: If the audio is center-panned, extracts the whole frequency spectrum from and returns it as an inverted (dual) mono track.
INFO: This option is equivalent to applying the Isolate Center option and then inverting.
Analyze: Tells you how great the chances are of a successful vocal reduction or isolation. It returns also the average Pan position for the selected audio. See below for an in-depth explanation.
NOTE: This option only analyzes the audio. The selected audio is not modified by the effect.
The shape of the center is not a thin band but rather like a tent with a pole in the middle. This means that there will always audio from other pan positions included. The Strength slider modifies the shape of the center. Higher values increase the degree of reduction or isolation. Zero is off (no reduction or isolation). This slider has no effect with the "Remove Center Classic: (Mono)" choice.
Less than 1.0: Produces a notch with a V shape like a ship's keel, but also with a sharp point. Use this setting to preserve some amount of the center.
1.0 - the default: Produces a notch with a V shape. The power distribution is preserved. This is the ideal setting for most cases.
Greater than 1.0: Produces a notch with a U shape. This removes some audio adjacent to the center, as well as the center. Note that this will not remove stereo reverberation since it is distributed over the entire pan width.
Less than 1.0: Produces a peak like a U shape upside down, similar to an arch. Only extreme left and right are eliminated.
1.0 - the default: Produces a peak like a ''V'' shape upside down. The power distribution is preserved. You might want a higher value when a lot of side audio leaks in. This is also the recommended setting when working with two tracks (options with ...and Invert).
Greater than 1.0: Produces a peak with an A shape like the Eiffel Tower (with a sharp point). This will attenuate most of the side energy but might produce artifacts or musical noise. Normalize the audio after using Isolate with a high strength setting.
All actions with Vocals in the name use this value. The frequencies below will either not be removed or not be included in the isolated audio. It is useful to exclude bass and kick drum. The default value of 120 Hz is good for most lead vocals, or even low male voices. You can enter a higher value around 170 Hz for female voices and about 230 Hz for those of children. NOTE: This control only affects "Actions" that contain the word Vocals in their name.
All actions with Vocals in the name use this value. The frequencies above will either not be removed or not be included in the isolated audio. It is useful to exclude high sounds like bells, cymbals or Hi-hat. Note that human sounds like S or Z can also be very high in frequency - 5000 to 8000 Hz, so listen carefully to the preview. NOTE: This control only affects "Actions" that contain the word Vocals in their name.
It is recommended to analyze the audio prior to actual processing of the effect. Analysis is very fast compared to the time needed for processing.
The two important values are:
Pan Position: This gives the average pan position for the whole selected audio. The value of the track pan slider is not included in this calculation.
Correlation: This is a measure for the similarity of the two channels. Values of +/-100 mean that the channels are exactly the same, even if one is inverted. A value of 0 means no relationship. It is fruitless to attempt removal or isolation in these cases. The ideal value is normally around +50. Values below 0 are rare and indicate that the stereo width is more than 100%. Inverting one channel makes the correlation positive.
NOTE Sometimes the lead vocals are not exactly in the middle. In this case, select a short portion of audio where only the voice is audible and no other instrument. Choose Analyze.
The correlation should be fairly high (around 100) which would indicate that there is indeed only the voice.
Copy the value for the Pan Position. Double-click in the Pan slider to open the adjustment dialog then paste in the value with reversed sign (that is, put a minus sign in front of a positive value and a positive sign in front of a negative value).
Mix and render the track. The voice will now be exactly centered and you can remove or isolate it.
Do not forget to readjust the selection.
The input must be a true stereo track and not mere (dual) mono.
Stereo Reverberation will not be fully removed because it is independently distributed over the whole stereo image.
Naturally the plug-in does not know what kind of audio is in the center. All is removed or isolated equally, whether vocals, bass or solo instruments.
This effect is quite slow, except for the "Remove Center Classic: (Mono)" and "Analyze" actions.
WARNING: The whole processing is done in memory. Long selections (over half an hour) might therefore cause Audacity to crash.
This effect can be used in a variety of ways:
Creating a Karaoke version from an original song Choose Remove Vocals if you want to keep some bass and drum beat.
Creating an acapella version from an original song Choose Isolate Vocals with a high Strength value. The result will probably still have some music in it. It is therefore better suited for a remix with a different accompaniment. Pure vocal versions have to be post-processed with other tools.
Alternative to "Auto Duck" with podcasts Duplicate the track and choose Isolate Center and Invert on the second track. Record your voice. Silence the second track where you do not speak and the original music should be heard. On the same track, make fades at the boundaries (where the speech starts or stops).
Removing excessive stereo reverb from a vocal or instrument track. Use Isolate to make a single vocal or instrument track "dry" again.
Removing random system noise from a two channel recording of a mono source. use Isolate to remove random noise produced by the audio interface, the cables or the computer itself.
Removing single words or phrases You can remove offending content from a song or movie dialog by selecting it and choosing Remove Vocals. Mask it with other sounds, if necessary.
Amplifying dialogs in a movie. Duplicate the track, isolate the vocals and adjust the gain.
Converting stereo files into 3.1, 5.1 and other multi-channel formats. Duplicate the track and choose "Isolate Center and Invert" on the second track. Render all to a new track. Delete the first track, invert the second track and split the third track. Rearrange the tracks accordingly. Thus you end up with "Front Left", "Center" and "Front Right" eventually.
Extracting instrument solos Isolate the center if the solo is there, otherwise remove the center, split to mono and delete the superfluous track.
Blending between original, karaoke version and vocals only Duplicate the track and choose Isolate Vocals and Invert on the second track. Choose the envelope tool or fade effects to gradually change from one mode to the other. Silencing the first track results in the vocals being isolated. Silencing the second track produces the original audio. Playing both tracks together removes the vocals.
Correcting the pan position Analyze the whole track and copy the value for the pan position. Paste the value into the pan dialog and reverse the sign, that is, set a minus sign in front of positive values and vice versa.
Measuring similarity between two mono tracks Make the two tracks stereo and choose Analyze. The correlation value is the measure for the similarity in percent.
Applying a brick wall filter to mono tracks Duplicate a mono track, make it stereo and choose Isolate Vocals for band pass and Remove Vocals for band stop filtering. Adjust the frequencies accordingly.
This page lists scripting commands.
Yes these are the same commands as in the menus, same as in "Commands and Shortcuts" too, just presented differently.
Presented in a format useful to people using:
Macros or
Python Scripting or
AUD-DO.
Most of this page is automatically generated.
A few commands are intentionally omitted from the Macro Manager (such as "Close:") because they are unsuitable for use in Macros.
The File Menu provides commands for creating, opening and saving Audacity projects and importing and exporting audio files
Various ways to save a project.
For exporting audio files
For importing audio files or label files into your project
The Edit Menu provides standard edit commands (Undo, Redo, Cut, Copy, Paste and Delete) plus many other commands specific to editing audio or labels
For more "advanced" removal of audio
Create or remove separate clips in the audio track. A clip inside an audio track is a separate section of that track which has been split so that it can be manipulated somewhat independently of the other clips in the track.
These commands are to add and edit labels.
Labeled Audio commands apply standard Edit Menu commands to the audio of one or more regions that are labeled. The labels themselves are not affected.
Select Menu has commands that enable you make selections of tracks or parts of the tracks in your project.
Tracks
For modifying, saving and restoring a selection.
For making a selection of a frequency range.
For modifying a selection, taking account of clips.
View Menu has commands that determine the amount of detail you see in all the tracks in the project window. It also lets you show or hide Toolbars and some additional windows such as Undo History.
Zoom in/out on the horizontal axis. Show more detail or show a longer length of time.
Controls the sizes of tracks.
Move forward/backwards through the audio
Toolbars can be used to determine which of the Audacity toolbars are displayed. By default all toolbars are shown except Spectral Selection and Scrub
Transport Menu commands let you play or stop, loop play, scrub play or record (including timed and sound activated recordings).
These commands control playback in Audacity. You can Start, Stop or Pause playback of the audio in your project.
These commands control recording in Audacity. You can Start, Stop or Pause recording in your project. You can either start a recording on your existing track or on a new track.
Scrubbing is the action of moving the mouse pointer right or left so as to adjust the position, speed or direction of playback, listening to the audio at the same time - a convenient way to quickly navigate the waveform to find a particular event of interest. Speed changes are made by rotating the mouse wheel while scrubbing.
These commands let you move the cursor to the start or end of the selection, track or any adjacent Clip that you may have
This submenu lets you manage and set various options for transport (playing and recording) in Audacity
Tracks Menu provides commands for creating and removing tracks, applying operations to selected tracks such as mixing, resampling or converting from stereo to mono, and lets you add or edit labels.
Adds a new track
Mixes down selected tracks to mono or stereo tracks
Mutes or unmutes audio tracks in the project
Pans left right or center audio tracks in the project
Commands that provide an automatic way of aligning selected tracks with the cursor, the selection, or with the start of the project.
Sorts all tracks in the project from top to bottom in the project window, by Start Time or by Name.
Generate Menu lets you create audio containing tones, noise or silence.
Shows the list of available Audacity built-in effects but only if the user has effects "Grouped by Type" in Effects Preferences.
Shows the list of available Nyquist effects but only if the user has effects "Grouped by Type" in Effects Preferences.
Audacity includes many built-in effects and also lets you use a wide range of plugin effects.
No special notes for Built-in
No special notes for Nyquist
The Analyze Menu contains tools for finding out about the characteristics of your audio, or labeling key feature.
No special notes for Nyquist
The Tools Menu contains customisable tools.
Displays a menu with list of all your Macros. Selecting any of these Macros by clicking on it will cause that Macro to be applied to the current project.
The Extra menu provides access to additional Commands that are not available in the normal default Audacity menus.
Extra commands related to play and record
Extra commands to select the tool, for example time-shift, envelopes, multi-tool.
Extra commands related to volume
Extra commands related to editing
Extra commands related to play at speed
Extra commands related to seeking
Extra commands related to selecting a device
Extra commands related to selecting.
Extra commands to set focus, usually focus on one track
Extra commands to move the cursor
Extra commands to operate on a track that has focus
These commands were originally written for scripting Audacity, e.g via a Python script that uses mod-script-pipe. The commands though are also present in the menu, available from macros, and available from within Nyquist using (AUD-DO "command")
Like Scriptables I, but these ones are less commonly used from the menu.
The Help Menu lets you find out more about the Audacity application and how to use it. It also includes some diagnostic tools.
A set of diagnostic tools
These are additional commands that do not appear in any menu
none
Closes the current project window, prompting you to save your work if you have not saved.
SaveProject:
Save Project
none
Various ways to save a project.
CompactProject:
Compact Project
none
Compact your project to save disk space.
PageSetup:
Page Setup...
none
Opens the standard Page Setup dialog box prior to printing
Print:
Print...
none
Prints all the waveforms in the current project window (and the contents of Label Tracks or other tracks), with the Timeline above. Everything is printed to one page.
Exit:
Exit
none
Closes all project windows and exits Audacity. If there are any unsaved changes to your project, Audacity will ask if you want to save them.
none
Saves the current Audacity project .AUP3 file.
SaveCompressed:
Save Compressed Copy of Project...
none
Saves in the audacity .aup3 project file format, but compressed (Suitable for mailing)
none
Exports to an OGG file
Export:
Export Audio...
none
Exports to an audio file.
ExportSel:
Export Selected Audio...
none
Exports selected audio to a file.
ExportLabels:
Export Labels...
none
Exports audio at one or more labels to file(s).
ExportMultiple:
Export Multiple...
none
Exports multiple audio files in one process, one file for each track if there are multiple audio tracks, or labels can be added which then define the length of each exported file.
ExportMIDI:
Export MIDI...
none
Exports MIDI (note tracks) to a MIDI file.
none
Imports a MIDI (MIDI or MID extension) or Allegro (GRO) file to a Note Track where simple cut-and-paste edits can be performed. The result can be exported with the File > Export> > Export MIDI command. Note: Currently, MIDI and Allegro files cannot be played.
ImportRaw:
Raw Data...
none
Attempts to import an uncompressed audio file that might be "raw" data without any headers to define its format, might have incorrect headers or be otherwise partially corrupted, or might be in a format that Audacity is unable to recognize. Raw data in textual format cannot be imported.
none
Removes the selected audio data and/or labels and places these on the Audacity clipboard. By default, any audio or labels to right of the selection are shifted to the left.
Delete:
Delete
none
Removes the selected audio data and/or labels without copying these to the Audacity clipboard. By default, any audio or labels to right of the selection are shifted to the left.
Copy:
Copy
none
Copies the selected audio data to the Audacity clipboard without removing it from the project.
Paste:
Paste
none
Inserts whatever is on the Audacity clipboard at the position of the selection cursor in the project, replacing whatever audio data is currently selected, if any.
Duplicate:
Duplicate
none
Creates a new track containing only the current selection as a new clip.
EditMetaData:
Metadata...
none
The Metadata Editor modifies information about a track, such as the artist and genre. Typically used with MP3 files.
Preferences:
Preferences...
none
Preferences let you change most of the default behaviors and settings of Audacity. On Mac, Preferences are in the Audacity Menu and the default shortcut is ⌘ + ,.
none
Replaces the currently selected audio with absolute silence. Does not affect label tracks.
Trim:
Trim Audio
none
Deletes all audio but the selection. If there are other separate clips in the same track these are not removed or shifted unless trimming the entire length of a clip or clips. Does not affect label tracks.
none
If you select an area that overlaps one or more clips, they are all joined into one large clip. Regions in-between clips become silence.
Disjoin:
Detach at Silences
none
In a selection region that includes absolute silences, creates individual non-silent clips between the regions of silence. The silence becomes blank space between the clips.
none
Creates a new, empty label at the current playback or recording position.
PasteNewLabel:
Paste Text to New Label
none
Pastes the text on the Audacity clipboard at the cursor position in the currently selected label track. If there is no selection in the label track a point label is created. If a region is selected in the label track a region label is created. If no label track is selected one is created, and a new label is created.
TypeToCreateLabel:
Type to Create a Label (on/off)
none
When a label track has the yellow focus border, if this option is on, just type to create a label. Otherwise you must create a label first.
none
Same as the Split Cut command, but operates on labeled audio regions.
SplitDeleteLabels:
Split Delete
none
Same as the Split Delete command, but operates on labeled audio regions.
SilenceLabels:
Silence Audio
none
Same as the Silence Audio command, but operates on labeled audio regions.
CopyLabels:
Copy
none
Same as the Copy command, but operates on labeled audio regions.
SplitLabels:
Split
none
Same as the Split command, but operates on labeled audio regions or points.
JoinLabels:
Join
none
Same as the Join command, but operates on labeled audio regions or points. You may need to select the audio and use Edit > Clip Boundaries > Join, to join all regions or points.
DisjoinLabels:
Detach at Silences
none
Same as the Detach at Silences command, but operates on labeled audio regions.
none
Selects from the position of the cursor to the previously stored cursor position
StoreCursorPosition:
Store Cursor Position
none
Stores the current cursor position for use in a later selection
ZeroCross:
At Zero Crossings
none
Moves the edges of a selection region (or the cursor position) slightly so they are at a rising zero crossing point.
none
Selects a region in the selected track(s) from the start of the track to the cursor position.
SelCursorToTrackEnd:
Cursor to Track End
none
Selects a region in the selected track(s) from the cursor position to the end of the track.
SelTrackStartToEnd:
Track Start to End
none
Selects a region in the selected track(s) from the start of the track to the end of the track.
SelSave:
Store Selection
none
Stores the end points of a selection for later reuse.
SelRestore:
Retrieve Selection
none
Retrieves the end points of a previously stored selection.
none
When in Spectrogram views snaps the center frequency to the next lower frequency peak, moving the spectral selection downwards.
none
Moves the selection to the previous clip.
SelNextClip:
Next Clip
none
Moves the selection to the next clip.
none
Mixer Board is an alternative view to the audio tracks in the main tracks window. Analogous to a hardware mixer board, each audio track is displayed in a Track Strip.
ShowExtraMenus:
Extra Menus (on/off)
none
Shows extra menus with many extra less-used commands.
ShowClipping:
Show Clipping (on/off)
none
Option to show or not show audio that is too loud (in red) on the wave form.
none
Zooms out displaying less detail over a greater length of time.
ZoomSel:
Zoom to Selection
none
Zooms in or out so that the selected audio fills the width of the window.
ZoomToggle:
Zoom Toggle
none
Changes the zoom back and forth between two preset levels.
AdvancedVZoom:
Advanced Vertical Zooming
none
Enable for left-click gestures in the vertical scale to control zooming.
none
Collapses all tracks to take up the minimum amount of space.
ExpandAllTracks:
Expand Collapsed Tracks
none
Expands all collapsed tracks to their original size before the last collapse.
none
Chooses various tools for selection, volume adjustment, zooming and time-shifting of audio
ShowRecordMeterTB:
Recording Meter Toolbar
none
Displays recording levels and toggles input monitoring when not recording
ShowPlayMeterTB:
Playback Meter Toolbar
none
Displays playback levels
ShowMixerTB:
Mixer Toolbar
none
Adjusts the recording and playback volumes of the devices currently selected in Device Toolbar
ShowEditTB:
Edit Toolbar
none
Cut, copy, paste, trim audio, silence audio, undo, redo, zoom tools
ShowTranscriptionTB:
Play-at-Speed Toolbar
none
Plays audio at a slower or faster speed than normal, affecting pitch
ShowScrubbingTB:
Scrub Toolbar
none
Controls playback and recording and skips to start or end of project when neither playing or recording
ShowDeviceTB:
Device Toolbar
none
Selects audio host, recording device, number of recording channels and playback device
ShowSelectionTB:
Selection Toolbar
none
Controls the sample rate of the project, snapping to the selection format and adjusts cursor and region position by keyboard input
ShowSpectralSelectionTB:
Spectral Selection Toolbar
none
Displays and lets you adjust the current spectral (frequency) selection without having to be in Spectrogram view
none
Temporarily pauses playing or recording without losing your place.
none
Brings up the Timer Record dialog.
PunchAndRoll:
Punch and Roll Record
none
Re-record over audio, with a pre-roll of audio that comes before.
Pause:
Pause
none
Temporarily pauses playing or recording without losing your place.
none
Shows (or hides) the scrub ruler, which is just below the timeline.
none
Moves the cursor to the start of the selected track.
CursTrackEnd:
Track End
none
Moves the cursor to the end of the selected track.
CursPrevClipBoundary:
Previous Clip Boundary
none
Moves the cursor position back to the right-hand edge of the previous clip
CursNextClipBoundary:
Next Clip Boundary
none
Moves the cursor position forward to the left-hand edge of the next clip
CursProjectStart:
Project Start
none
Moves the cursor to the beginning of the project.
CursProjectEnd:
Project End
none
Moves the cursor to the end of the project.
none
You can change Audacity to play and record with a fixed head pinned to the Timeline. You can adjust the position of the fixed head by dragging it
Overdub:
Overdub (on/off)
none
Toggles on and off the Overdub option.
SWPlaythrough:
Software Playthrough (on/off)
none
Toggles on and off the Software Playthrough option.
none
Ensures that length changes occurring anywhere in a defined group of tracks also take place in all audio or label tracks in that group.
none
Adds an empty label track to the project
NewTimeTrack:
Time Track
none
Adds an empty time track to the project. Time tracks are used to speed up and slow down audio.
none
Same as Tracks > Mix and Render except that the original tracks are preserved rather than being replaced by the resulting "Mix" track.
none
Mutes the selected tracks.
UnmuteTracks:
Unmute Tracks
none
Unmutes the selected tracks.
none
Pan selected audio to right speaker.
none
Aligns the start of selected tracks with the start of the project.
Align_StartToSelStart:
Start to Cursor/Selection Start
none
Aligns the start of selected tracks with the current cursor position or with the start of the current selection.
Align_StartToSelEnd:
Start to Selection End
none
Aligns the start of selected tracks with the end of the current selection.
Align_EndToSelStart:
End to Cursor/Selection Start
none
Aligns the end of selected tracks with the current cursor position or with the start of the current selection.
Align_EndToSelEnd:
End to Selection End
none
Aligns the end of selected tracks with the end of the current selection.
MoveSelectionWithTracks:
Move Selection with Tracks (on/off)
none
Toggles on/off the selection moving with the realigned tracks, or staying put.
none
Shows the list of available Nyquist effects but only if the user has effects "Grouped by Type" in Effects Preferences.
enum Type, (default:White)
White
Pink
Brownian
double Amplitude, (default:0.8)
Generates 'white', 'pink' or 'brown' noise.
Tone:
Tone...
double Frequency, (default:440)
double Amplitude, (default:0.8) enum Waveform, (default:Sine)
Sine
Square
Sawtooth
Generates one of four different tone waveforms: Sine, Square, Sawtooth or Square (no alias), and a frequency between 1 Hz and half the current project rate.
double freq, (default:0)
double decay, (default:0) double cf, (default:0) double bw, (default:0) double noise, (default:0) double gain, (default:0)
Produces a realistic drum sound.
none
Shows the list of available LADSPA effects but only if the user has effects "Grouped by Type" in Effects Preferences.
double Bass, (default:0)
double Treble, (default:0) double Gain, (default:0) bool Link Sliders, (default:False)
Increases or decreases the lower frequencies and higher frequencies of your audio independently; behaves just like the bass and treble controls on a stereo system.
ChangePitch:
Change Pitch...
double Percentage, (default:0)
bool SBSMS, (default:False)
Change the pitch of a selection without changing its tempo.
ChangeSpeed:
Change Speed...
double Percentage, (default:0)
Change the speed of a selection, also changing its pitch.
ChangeTempo:
Change Tempo...
double Percentage, (default:0)
bool SBSMS, (default:False)
Change the tempo and length (duration) of a selection without changing its pitch.
ClickRemoval:
Click Removal...
int Threshold, (default:200)
int Width, (default:20)
Click Removal is designed to remove clicks on audio tracks and is especially suited to declicking recordings made from vinyl records.
Compressor:
Compressor...
double Threshold, (default:-12)
double NoiseFloor, (default:-40) double Ratio, (default:2) double AttackTime, (default:0.2) double ReleaseTime, (default:1) bool Normalize, (default:True) bool UsePeak, (default:False)
Compresses the dynamic range by two alternative methods. The default "RMS" method makes the louder parts softer, but leaves the quieter audio alone. The alternative "peaks" method makes the entire audio louder, but amplifies the louder parts less than the quieter parts. Make-up gain can be applied to either method, making the result as loud as possible without clipping, but not changing the dynamic range further.
Distortion:
Distortion...
enum Type, (default:Hard Clipping)
Hard Clipping
Soft Clipping
Soft Overdrive
Use the Distortion effect to make the audio sound distorted. By distorting the waveform the frequency content is changed, which will often make the sound "crunchy" or "abrasive". Technically this effect is a . The result of waveshaping is equivalent to applying non-linear amplification to the audio waveform. Preset shaping functions are provided, each of which produces a different type of distortion.
Echo:
Echo...
float Delay, (default:1)
float Decay, (default:0.5)
Repeats the selected audio again and again, normally softer each time and normally not blended into the original sound until some time after it starts. The delay time between each repeat is fixed, with no pause in between each repeat. For a more configurable echo effect with a variable delay time and pitch-changed echoes, see Delay.
FadeIn:
Fade In
none
Applies a linear fade-in to the selected audio - the rapidity of the fade-in depends entirely on the length of the selection it is applied to. For a more customizable logarithmic fade, use the Envelope Tool on the Tools Toolbar.
FadeOut:
Fade Out
none
Applies a linear fade-out to the selected audio - the rapidity of the fade-out depends entirely on the length of the selection it is applied to. For a more customizable logarithmic fade, use the Envelope Tool on the Tools Toolbar.
FilterCurve:
Filter Curve...
size_t FilterLength, (default:8191)
bool InterpolateLin, (default:False) enum InterpolationMethod, (default:B-spline)
B-spline
Cosine
Cubic
Adjusts the volume levels of particular frequencies
GraphicEq:
Graphic EQ...
size_t FilterLength, (default:8191)
bool InterpolateLin, (default:False) enum InterpolationMethod, (default:B-spline)
B-spline
Cosine
Cubic
Adjusts the volume levels of particular frequencies
Invert:
Invert
none
This effect flips the audio samples upside-down. This normally does not affect the sound of the audio at all. It is occasionally useful for vocal removal.
LoudnessNormalization:
Loudness Normalization...
bool StereoIndependent, (default:False)
double LUFSLevel, (default:-23) double RMSLevel, (default:-20) bool DualMono, (default:True) int NormalizeTo, (default:0)
Changes the perceived loudness of the audio.
NoiseReduction:
Noise Reduction...
none
This effect is ideal for reducing constant background noise such as fans, tape noise, or hums. It will not work very well for removing talking or music in the background. More details here
This effect is not currently available from scripting.
Normalize:
Normalize...
double PeakLevel, (default:-1)
bool ApplyGain, (default:True) bool RemoveDcOffset, (default:True) bool StereoIndependent, (default:False)
Use the Normalize effect to set the maximum amplitude of a track, equalize the amplitudes of the left and right channels of a stereo track and optionally remove any DC offset from the track
Paulstretch:
Paulstretch...
float Stretch Factor, (default:10)
float Time Resolution, (default:0.25)
Use Paulstretch only for an extreme time-stretch or "stasis" effect, This may be useful for synthesizer pad sounds, identifying performance glitches or just creating interesting aural textures. Use Change Tempo or Sliding Time Scale rather than Paulstretch for tasks like slowing down a song to a "practice" tempo.
Phaser:
Phaser...
int Stages, (default:2)
int DryWet, (default:128) double Freq, (default:0.4) double Phase, (default:0) int Depth, (default:100) int Feedback, (default:0) double Gain, (default:-6)
The name "Phaser" comes from "Phase Shifter", because it works by combining phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a Low Frequency Oscillator (LFO).
Repair:
Repair
none
Fix one particular short click, pop or other glitch no more than 128 samples long.
Repeat:
Repeat...
int Count, (default:1)
Repeats the selection the specified number of times.
Reverb:
Reverb...
double RoomSize, (default:75)
double Delay, (default:10) double Reverberance, (default:50) double HfDamping, (default:50) double ToneLow, (default:100) double ToneHigh, (default:100) double WetGain, (default:-1) double DryGain, (default:-1) double StereoWidth, (default:100) bool WetOnly, (default:False)
A configurable stereo reverberation effect with built-in and user-added presets. It can be used to add ambience (an impression of the space in which a sound occurs) to a mono sound. Also use it to increase reverberation in stereo audio that sounds too "dry" or "close".
Reverse:
Reverse
none
Reverses the selected audio; after the effect the end of the audio will be heard first and the beginning last.
SlidingStretch:
Sliding Stretch...
double RatePercentChangeStart, (default:0)
double RatePercentChangeEnd, (default:0) double PitchHalfStepsStart, (default:0) double PitchHalfStepsEnd, (default:0) double PitchPercentChangeStart, (default:0) double PitchPercentChangeEnd, (default:0)
This effect allows you to make a continuous change to the tempo and/or pitch of a selection by choosing initial and/or final change values.
TruncateSilence:
Truncate Silence...
double Threshold, (default:-20)
enum Action, (default:Truncate Detected Silence)
Truncate Detected Silence
Compress Excess Silence
double Minimum, (default:0.5) double Truncate, (default:0.5) double Compress, (default:50) bool Independent, (default:False)
Automatically try to find and eliminate audible silences. Do not use this with faded audio.
Wahwah:
Wahwah...
double Freq, (default:1.5)
double Phase, (default:0) int Depth, (default:70) double Resonance, (default:2.5) int Offset, (default:30) double Gain, (default:-6)
Rapid tone quality variations, like that guitar sound so popular in the 1970's.
Use Crossfade Clips to apply a simple crossfade to a selected pair of clips in a single audio track.
CrossfadeTracks:
Crossfade Tracks...
enum type, (default:ConstantGain)
ConstantGain
ConstantPower1
ConstantPower2
Use Crossfade Tracks to make a smooth transition between two overlapping tracks one above the other. Place the track to be faded out above the track to be faded in then select the overlapping region in both tracks and apply the effect.
Delay:
Delay...
enum delay-type, (default:Regular)
Regular
BouncingBall
ReverseBouncingBall
double dgain, (default:0) double delay, (default:0) enum pitch-type, (default:PitchTempo)
A configurable delay effect with variable delay time and pitch shifting of the delays.
High-passFilter:
High-Pass Filter...
double frequency, (default:0)
enum rolloff, (default:dB6)
dB6
dB12
dB24
Passes frequencies above its cutoff frequency and attenuates frequencies below its cutoff frequency.
Limiter:
Limiter...
enum type, (default:SoftLimit)
SoftLimit
HardLimit
SoftClip
Limiter passes signals below a specified input level unaffected or gently reduced, while preventing the peaks of stronger signals from exceeding this threshold. Mastering engineers often use this type of dynamic range compression combined with make-up gain to increase the perceived loudness of an audio recording during the audio mastering process.
Low-passFilter:
Low-Pass Filter...
double frequency, (default:0)
enum rolloff, (default:dB6)
dB6
dB12
dB24
Passes frequencies below its cutoff frequency and attenuates frequencies above its cutoff frequency.
NotchFilter:
Notch Filter...
double frequency, (default:0)
double q, (default:0)
Greatly attenuate ("notch out"), a narrow frequency band. This is a good way to remove mains hum or a whistle confined to a specific frequency with minimal damage to the remainder of the audio.
SpectralEditMultiTool:
Spectral edit multi tool
When the selected track is in spectrogram or spectrogram log(f) view, applies a notch filter, high pass filter or low pass filter according to the spectral selection made. This effect can also be used to change the audio quality as an alternative to using Equalization.
SpectralEditParametricEq:
Spectral edit parametric EQ...
double control-gain, (default:0)
When the selected track is in spectrogram or spectrogram log(f) view and the spectral selection has a center frequency and an upper and lower boundary, performs the specified band cut or band boost. This can be used as an alternative to Equalization or may also be useful to repair damaged audio by reducing frequency spikes or boosting other frequencies to mask spikes.
SpectralEditShelves:
Spectral edit shelves...
double control-gain, (default:0)
When the selected track is in spectrogram or spectrogram log(f) view, applies either a low- or high-frequency shelving filter or both filters, according to the spectral selection made. This can be used as an alternative to Equalization or may also be useful to repair damaged audio by reducing frequency spikes or boosting other frequencies to mask spikes.
StudioFadeOut:
Studio Fade Out
Applies a more musical fade out to the selected audio, giving a more pleasing sounding result.
Tremolo:
Tremolo...
enum wave, (default:Sine)
Sine
Triangle
Sawtooth
Modulates the volume of the selection at the depth and rate selected in the dialog. The same as the tremolo effect familiar to guitar and keyboard players.
VocalReductionAndIsolation:
Vocal Reduction and Isolation...
enum action, (default:RemoveToMono)
RemoveToMono
Remove
Isolate
Attempts to remove or isolate center-panned audio from a stereo track. Most "Remove" options in this effect preserve the stereo image.
Vocoder:
Vocoder...
double dst, (default:0)
enum mst, (default:BothChannels)
BothChannels
RightOnly
int bands, (default:0) double track-vl, (default:0) double noise-vl, (default:0) double radar-vl, (default:0) double radar-f, (default:0)
Synthesizes audio (usually a voice) in the left channel of a stereo track with a carrier wave (typically white noise) in the right channel to produce a modified version of the left channel. Vocoding a normal voice with white noise will produce a robot-like voice for special effects.
none
Takes the selected audio (which is a set of sound pressure values at points in time) and converts it to a graph of frequencies against amplitudes.
FindClipping:
Find Clipping...
int Duty Cycle Start, (default:3)
int Duty Cycle End, (default:3)
Displays runs of clipped samples in a Label Track, as a screen-reader accessible alternative to View > Show Clipping. A run must include at least one clipped sample, but may include unclipped samples too.
none
Displays a menu with list of all your Macros. Selecting any of these Macros by clicking on it will cause that Macro to be applied to the current project.
Screenshot:
Screenshot...
string Path, (default:)
enum CaptureWhat, (default:Window)
Window
FullWindow
WindowPlus
A tool, mainly used in documentation, to capture screenshots of Audacity.
Benchmark:
Run Benchmark...
none
A tool for measuring the performance of one part of Audacity.
NyquistPrompt:
Nyquist Prompt...
string Command, (default:)
int Version, (default:3)
Brings up a dialog where you can enter Nyquist commands. Nyquist is a programming language for generating, processing and analyzing audio. For more information see .
NyquistPlug-inInstaller:
Nyquist Plug-in Installer...
string files, (default:)
enum overwrite, (default:Disallow)
Disallow
Allow
A Nyquist plugin that simplifies the installation of other Nyquist plugins.
RegularIntervalLabels:
Regular Interval Labels...
enum mode, (default:Both)
Both
Number
Interval
int totalnum, (default:0) double interval, (default:0) double region, (default:0) enum adjust, (default:No)
Places labels in a long track so as to divide it into smaller, equally sized segments.
SampleDataExport:
Sample Data Export...
int number, (default:0)
enum units, (default:dB)
dB
Linear
string filename, (default:) enum fileformat, (default:None)
Reads the values of successive samples from the selected audio and prints this data to a plain text, CSV or HTML file.
SampleDataImport:
Sample Data Import...
string filename, (default:)
enum bad-data, (default:ThrowError)
ThrowError
ReadAsZero
Reads numeric values from a plain ASCII text file and creates a PCM sample for each numeric value read.
none
Converts MP3.
none
Plays for one second centered on the current mouse pointer position (not from the current cursor position). See this page for an example.
PlayToSelection:
Play to Selection
none
Plays to or from the current mouse pointer position to or from the start or end of the selection, depending on the pointer position. See this page for more details.
PlayBeforeSelectionStart:
Play Before Selection Start
none
Plays a short period before the start of the selected audio, the period before shares the setting of the cut preview.
PlayAfterSelectionStart:
Play After Selection Start
none
Plays a short period after the start of the selected audio, the period after shares the setting of the cut preview.
PlayBeforeSelectionEnd:
Play Before Selection End
none
Plays a short period before the end of the selected audio, the period before shares the setting of the cut preview.
PlayAfterSelectionEnd:
Play After Selection End
none
Plays a short period after the end of the selected audio, the period after shares the setting of the cut preview.
PlayBeforeAndAfterSelectionStart:
Play Before and After Selection Start
none
Plays a short period before and after the start of the selected audio, the periods before and after share the setting of the cut preview.
PlayBeforeAndAfterSelectionEnd:
Play Before and After Selection End
none
Plays a short period before and after the end of the selected audio, the periods before and after share the setting of the cut preview.
PlayCutPreview:
Play Cut Preview
none
Plays audio excluding the selection
none
Chooses Draw tool.
ZoomTool:
Zoom Tool
none
Chooses Zoom tool.
MultiTool:
Multi Tool
none
Chooses the Multi-Tool
PrevTool:
Previous Tool
none
Cycles backwards through the tools, starting from the currently selected tool: starting from Selection, it would navigate to Multi-tool to Time Shift to Zoom to Draw to Envelope to Selection.
NextTool:
Next Tool
none
Cycles forwards through the tools, starting from the currently selected tool: starting from Selection, it would navigate to Envelope to Draw to Zoom to Time Shift to Multi-tool to Selection.
none
Each key press will decrease the playback volume by 0.1.
InputGain:
Adjust Recording Volume...
none
Displays the Recording Volume dialog. You can type a new value for the recording volume (between 0 and 1), or press Tab, then use the left and right arrow keys to adjust the slider.
InputGainInc:
Increase Recording Volume
none
Each key press will increase the recording volume by 0.1.
InputGainDec:
Decrease Recording Volume
none
Each key press will decrease the recording volume by 0.1.
none
Combines cut preview and play at speed
SetPlaySpeed:
Adjust Playback Speed...
none
Displays the Playback Speed dialog. You can type a new value for the playback volume (between 0 and 1), or press Tab, then use the left and right arrow keys to adjust the slider.
PlaySpeedInc:
Increase Playback Speed
none
Each key press will increase the playback speed by 0.1.
PlaySpeedDec:
Decrease Playback Speed
none
Each key press will decrease the playback speed by 0.1.
MoveToPrevLabel:
Move to Previous Label
none
Moves selection to the previous label
MoveToNextLabel:
Move to Next Label
none
Moves selection to the next label
none
Skips the playback cursor back 15 seconds by default.
SeekRightLong:
Long Seek Right During Playback
none
Skips the playback cursor forward 15 seconds by default.
none
Displays the Select Audio Host dialog for choosing the particular interface with which Audacity communicates with your chosen playback and recording devices.
InputChannels:
Change Recording Channels...
none
Displays the Select Recording Channels dialog for choosing the number of channels to be recorded by the chosen recording device.
none
Equivalent to setting the Snap To control in Selection Toolbar to "Prior".
SelStart:
Selection to Start
none
Select from cursor to start of track
SelEnd:
Selection to End
none
Select from cursor to end of track
SelExtLeft:
Selection Extend Left
none
Increases the size of the selection by extending it to the left. The amount of increase is dependent on the zoom level. If there is no selection one is created starting at the cursor position.
SelExtRight:
Selection Extend Right
none
Increases the size of the selection by extending it to the right. The amount of increase is dependent on the zoom level. If there is no selection one is created starting at the cursor position.
SelSetExtLeft:
Set (or Extend) Left Selection
none
Extend selection left a little (is this a duplicate?)
SelSetExtRight:
Set (or Extend) Right Selection
none
Extend selection right a litlle (is this a duplicate?)
SelCntrLeft:
Selection Contract Left
none
Decreases the size of the selection by contracting it from the right. The amount of decrease is dependent on the zoom level. If there is no selection no action is taken.
SelCntrRight:
Selection Contract Right
none
Decreases the size of the selection by contracting it from the left. The amount of decrease is dependent on the zoom level. If there is no selection no action is taken.
none
Focus one track up
NextTrack:
Move Focus to Next Track
none
Focus one track down
FirstTrack:
Move Focus to First Track
none
Focus on first track
LastTrack:
Move Focus to Last Track
none
Focus on last track
ShiftUp:
Move Focus to Previous and Select
none
Focus one track up and select it
ShiftDown:
Move Focus to Next and Select
none
Focus one track down and select it
Toggle:
Toggle Focused Track
none
Toggle focus on current track
ToggleAlt:
Toggle Focused Track
none
Toggle focus on current track
none
When not playing audio, moves the editing cursor one second left by default. When playing audio, moves the playback cursor one second left by default. The default value can be changed by adjusting the "Short Period" under "Seek Time when playing" in Playback Preferences.
CursorShortJumpRight:
Cursor Short Jump Right
none
When not playing audio, moves the editing cursor one second right by default. When playing audio, moves the playback cursor one second right by default. The default value can be changed by adjusting the "Short Period" under "Seek Time when playing" in Playback Preferences.
CursorLongJumpLeft:
Cursor Long Jump Left
none
When not playing audio, moves the editing cursor 15 seconds left by default. When playing audio, moves the playback cursor 15 seconds left by default. The default value can be changed by adjusting the "Long Period" under "Seek Time when playing" in Playback Preferences.
CursorLongJumpRight:
Cursor Long Jump Right
none
When not playing audio, moves the editing cursor 15 seconds right by default. When playing audio, moves the playback cursor 15 seconds right by default. The default value can be changed by adjusting the "Long Period" under "Seek Time when playing" in Playback Preferences.
ClipLeft:
Clip Left
none
Moves the currently focused audio track (or a separate clip in that track which contains the editing cursor or selection region) one screen pixel to left.
ClipRight:
Clip Right
none
Moves the currently focused audio track (or a separate clip in that track which contains the editing cursor or selection region) one screen pixel to right.
none
Controls the pan slider on the focused track. Each keypress changes the pan value by 10% right.
TrackGain:
Change Gain on Focused Track...
none
Brings up the Gain dialog for the focused track where you can enter a gain value, or use the slider for finer control of gain than is available when using the track pan slider.
TrackGainInc:
Increase Gain on Focused Track
none
Controls the gain slider on the focused track. Each keypress increases the gain value by 1 dB.
TrackGainDec:
Decrease Gain on Focused Track
none
Controls the gain slider on the focused track. Each keypress decreases the gain value by 1 dB.
TrackMenu:
Open Menu on Focused Track...
none
Opens the Audio Track Dropdown Menu on the focused audio track or other track type. In the audio track dropdown, use Up, and Down, arrow keys to navigate the menu and Enter, to select a menu item. Use Right, arrow to open the "Set Sample Format" and "Set Rate" choices or Left, arrow to leave those choices.
TrackMute:
Mute/Unmute Focused Track
none
Toggles the Mute button on the focused track.
TrackSolo:
Solo/Unsolo Focused Track
none
Toggles the Solo button on the focused track.
TrackClose:
Close Focused Track
none
Close (remove) the focused track only.
TrackMoveUp:
Move Focused Track Up
none
Moves the focused track up by one track and moves the focus there.
TrackMoveDown:
Move Focused Track Down
none
Moves the focused track down by one track and moves the focus there.
TrackMoveTop:
Move Focused Track to Top
none
Moves the focused track up to the top of the track table and moves the focus there.
TrackMoveBottom:
Move Focused Track to Bottom
none
Moves the focused track down to the bottom of the track table and moves the focus there.
double Track, (default:unchanged)
double TrackCount, (default:unchanged) enum Mode, (default:unchanged)
Set
Add
Remove
Modifies which tracks are selected. First and Last are track numbers. High and Low are for spectral selection. The Mode parameter allows complex selections, e.g adding or removing tracks from the current selection.
SetTrackStatus:
Set Track Status...
string Name, (default:unchanged)
bool Selected, (default:unchanged) bool Focused, (default:unchanged)
Sets properties for a track or channel (or both).Name is used to set the name. It is not used in choosing the track.
SetTrackAudio:
Set Track Audio...
bool Mute, (default:unchanged)
bool Solo, (default:unchanged) double Gain, (default:unchanged) double Pan, (default:unchanged)
Sets properties for a track or channel (or both). Can set pan, gain, mute and solo.
SetTrackVisuals:
Set Track Visuals...
int Height, (default:unchanged)
enum Display, (default:unchanged)
Waveform
Spectrogram
Multi-view
Sets visual properties for a track or channel (or both). SpectralPrefs=1 sets the track to use general preferences, SpectralPrefs=1 per track prefs. When using general preferences, SetPreferences can be used to change a preference and so affect display of the track.
GetPreference:
Get Preference...
string Name, (default:)
Gets a single preference setting.
SetPreference:
Set Preference...
string Name, (default:)
string Value, (default:) bool Reload, (default:False)
Sets a single preference setting. Some settings such as them changes require a reload (use Reload=1), but this takes time and slows down a script.
SetClip:
Set Clip...
double At, (default:unchanged)
enum Color, (default:unchanged)
Color0
Color1
Color2
Modify a clip by stating the track or channel a time within it. Color and start position can be set. Try to avoid overlapping clips, as Audacity will allow it, but does not like them.
SetEnvelope:
Set Envelope...
double Time, (default:unchanged)
double Value, (default:unchanged) bool Delete, (default:unchanged)
Modify an envelope by specifying a track or channel and a time within it. You cannot yet delete individual envelope points, but can delete the whole envelope using Delete=1.
SetLabel:
Set Label...
int Label, (default:0)
string Text, (default:unchanged) double Start, (default:unchanged) double End, (default:unchanged) bool Selected, (default:unchanged)
Modifies an existing label. You must give it the label number.
SetProject:
Set Project...
string Name, (default:unchanged)
double Rate, (default:unchanged) int X, (default:unchanged) int Y, (default:unchanged) int Width, (default:unchanged) int Height, (default:unchanged)
Sets the project window to a particular location and size. Can also change the caption - but that is cosmetic and may be overwritten again later by Audacity.
enum Type, (default:Commands)
Commands
Menus
Preferences
Gets information in a list in one of three formats.
Message:
Message...
string Text, (default:Some message)
Used in testing. Sends the Text string back to you.
Help:
Help...
string Command, (default:Help)
enum Format, (default:JSON)
JSON
LISP
Brief
This is an extract from GetInfo Commands, with just one command.
Import2:
Import...
string Filename, (default:)
Imports from a file. The automation command uses a text box to get the file name rather than a normal file-open dialog.
Export2:
Export...
string Filename, (default:exported.wav)
int NumChannels, (default:1)
Exports selected audio to a named file. This version of export has the full set of export options. However, a current limitation is that the detailed option settings are always stored to and taken from saved preferences. The net effect is that for a given format, the most recently used options for that format will be used. In the current implementation, NumChannels should be 1 (mono) or 2 (stereo).
OpenProject2:
Open Project...
string Filename, (default:test.aup3)
bool AddToHistory, (default:false)
Opens a project.
SaveProject2:
Save Project...
string Filename, (default:name.aup3)
bool AddToHistory, (default:False) bool Compress, (default:False)
Saves a project.
Drag:
Move Mouse...
int Id, (default:unchanged)
string Window, (default:unchanged) double FromX, (default:unchanged) double FromY, (default:unchanged) double ToX, (default:unchanged) double ToY, (default:unchanged) enum RelativeTo, (default:unchanged)
Panel
App
Experimental command (called Drag in scripting) that moves the mouse. An Id can be used to move the mouse into a button to get the hover effect. Window names can be used instead. If To is specified, the command does a drag, otherwise just a hover.
CompareAudio:
Compare Audio...
float Threshold, (default:0)
Compares selected range on two tracks. Reports on the differences and similarities.
Screenshot:
Screenshot (short format)...
none
A version of Tools -> Screenshot with a more minimal GUI. One of the most useful options is All_Tracks. The _Plus suffix includes the timeline.
none
Checks online to see if this is the latest version of Audacity.
About:
About Audacity...
none
Brings a dialog with information about Audacity, such as who wrote it, what features are enabled and the GNU GPL v2 license.
none
Launches the "Audacity Log" window, the log is largely a debugging aid, having timestamps for each entry
CrashReport:
Generate Support Data...
none
Selecting this will generate a Debug report which could be useful in aiding the developers to identify bugs in Audacity or in third-party plugins
CheckDeps:
Check Dependencies...
none
Lists any WAV or AIFF audio files that your project depends on, and allows you to copy these files into the project
New:
New
none
Creates a new empty project window, to start working on new or imported tracks.
Open:
Open...
none
Presents a standard dialog box where you can select either audio files, a list of files (.LOF) or an Audacity Project file to open.
Close:
Save:
Save Project
none
Saves the current Audacity project .AUP3 file.
SaveAs:
Save Project As...
none
Same as "Save Project" above, but allows you to save a copy of an open project to a different name or location
SaveCopy:
ExportMp3:
Export as MP3
none
Exports to an MP3 file
ExportWav:
Export as WAV
none
Exports to a WAV file
ExportOgg:
ImportAudio:
Audio...
none
Similar to 'Open', except that the file is added as a new track to your existing project.
ImportLabels:
Labels...
none
Launches a file selection window where you can choose to import a single text file into the project containing point or region labels. For more information about the syntax for labels files, see Importing and Exporting Labels.
ImportMIDI:
Undo:
Undo
none
Undoes the most recent editing action.
Redo:
Redo
none
Redoes the most recently undone editing action.
Cut:
SplitCut:
Split Cut
none
Same as Cut, but none of the audio data or labels to right of the selection are shifted.
SplitDelete:
Split Delete
none
Same as Delete, but none of the audio data or labels to right of the selection are shifted.
Silence:
Split:
Split
none
Splits the current clip into two clips at the cursor point, or into three clips at the selection boundaries.
SplitNew:
Split New
none
Does a Split Cut on the current selection in the current track, then creates a new track and pastes the selection into the new track.
Join:
EditLabels:
Edit Labels...
none
Brings up a dialog box showing all of your labels in a keyboard-accessible tabular view. Handy buttons in the dialog let you insert or delete a label, or import and export labels to a file. See Labels Editor for more details.
AddLabel:
Add Label at Selection
none
Creates a new, empty label at the cursor or at the selection region.
AddLabelPlaying:
CutLabels:
Cut
none
Same as the Cut command, but operates on labeled audio regions.
DeleteLabels:
Delete
none
Same as the Delete command, but operates on labeled audio regions.
SplitCutLabels:
SelectAll:
All
none
Selects all of the audio in all of the tracks.
SelectNone:
None
none
Deselects all of the audio in all of the tracks.
SelCursorStoredCursor:
SelAllTracks:
In All Tracks
none
Extends the current selection up and/or down into all tracks in the project.
SelSyncLockTracks:
In All Sync-Locked Tracks
none
Extends the current selection up and/or down into all sync-locked tracks in the currently selected track group.
SetLeftSelection:
Left at Playback Position
none
When Audacity is playing, recording or paused, sets the left boundary of a potential selection by moving the cursor to the current position of the green playback cursor (or red recording cursor).
Otherwise, opens the "Set Left Selection Boundary" dialog for adjusting the time position of the left-hand selection boundary. If there is no selection, moving the time digits backwards creates a selection ending at the former cursor position, and moving the time digits forwards provides a way to move the cursor forwards to an exact point.
SetRightSelection:
Right at Playback Position
none
When Audacity is playing, recording or paused, sets the right boundary of the selection, thus drawing the selection from the cursor position to the current position of the green playback cursor (or red recording cursor).
Otherwise, opens the "Set Right Selection Boundary" dialog for adjusting the time position of the right-hand selection boundary. If there is no selection, moving the time digits forwards creates a selection starting at the former cursor position, and moving the time digits backwards provides a way to move the cursor backwards to an exact point.
SelTrackStartToCursor:
ToggleSpectralSelection:
Toggle Spectral Selection
none
Changes between selecting a time range and selecting the last selected spectral selection in that time range. This command toggles the spectral selection even if not in Spectrogram view, but you must be in Spectrogram view to use the spectral selection in one of the Spectral edit effects.
NextHigherPeakFrequency:
Next Higher Peak Frequency
none
When in Spectrogram view, snaps the center frequency to the next higher frequency peak, moving the spectral selection upwards.
NextLowerPeakFrequency:
SelPrevClipBoundaryToCursor:
Previous Clip Boundary to Cursor
none
Selects from the current cursor position back to the right-hand edge of the previous clip.
SelCursorToNextClipBoundary:
Cursor to Next Clip Boundary
none
Selects from the current cursor position forward to the left-hand edge of the next clip.
SelPrevClip:
UndoHistory:
History...
none
Brings up the History window which can then be left open while using Audacity normally. History lists all undoable actions performed in the current project, including importing.
Karaoke:
Karaoke...
none
Brings up the Karaoke window, which displays the labels in a "bouncing ball" scrolling display
MixerBoard:
ZoomIn:
Zoom In
none
Zooms in on the horizontal axis of the audio displaying more detail over a shorter length of time.
ZoomNormal:
Zoom Normal
none
Zooms to the default view which displays about one inch per second.
ZoomOut:
FitInWindow:
Fit to Width
none
Zooms out until the entire project just fits in the window.
FitV:
Fit to Height
none
Adjusts the height of all the tracks until they fit in the project window.
CollapseAllTracks:
SkipSelStart:
Selection Start
none
When there is a selection, moves the cursor to the start of the selection and removes the selection.
SkipSelEnd:
Selection End
none
When there is a selection, moves the cursor to the end of the selection and removes the selection.
ResetToolbars:
Reset Toolbars
none
Using this command positions all toolbars in default location and size as they were when Audacity was first installed
ShowTransportTB:
Transport Toolbar
none
Controls playback and recording and skips to start or end of project when neither playing or recording
ShowToolsTB:
RescanDevices:
Rescan Audio Devices
none
Rescan for audio devices connected to your computer, and update the playback and recording dropdown menus in Device Toolbar
PlayStop:
Play/Stop
none
Starts and stops playback or stops a recording (stopping does not change the restart position). Therefore using any play or record command after stopping with "Play/Stop" will start playback or recording from the same Timeline position it last started from. You can also assign separate shortcuts for Play and Stop.
PlayStopSelect:
Play/Stop and Set Cursor
none
Starts playback like "Play/Stop", but stopping playback sets the restart position to the stop point. When stopped, this command is the same as "Play/Stop". When playing, this command stops playback and moves the cursor (or the start of the selection) to the position where playback stopped.
Pause:
Record1stChoice:
Record
none
Starts recording at the end of the currently selected track(s).
Record2ndChoice:
Record New Track
none
Recording begins on a new track at either the current cursor location or at the beginning of the current selection.
TimerRecord:
Scrub:
Scrub
none
Scrubbing is the action of moving the mouse pointer right or left so as to adjust the position, speed or direction of playback, listening to the audio at the same time.
Seek:
Seek
none
Seeking is similar to Scrubbing except that it is playback with skips, similar to using the seek button on a CD player.
ToggleScrubRuler:
CursSelStart:
Selection Start
none
Moves the left edge of the current selection to the center of the screen, without changing the zoom level.
CursSelEnd:
Selection End
none
Moves the right edge of the current selection to the center of the screen, without changing the zoom level.
CursTrackStart:
SoundActivationLevel:
Sound Activation Level...
none
Sets the activation level above which Sound Activated Recording will record.
SoundActivation:
Sound Activated Recording (on/off)
none
Toggles on and off the Sound Activated Recording option.
PinnedHead:
Resample:
Resample...
none
Allows you to resample the selected track(s) to a new sample rate for use in the project
RemoveTracks:
Remove Tracks
none
Removes the selected track(s) from the project. Even if only part of a track is selected, the entire track is removed.
SyncLock:
NewMonoTrack:
Mono Track
none
Creates a new empty mono audio track.
NewStereoTrack:
Stereo Track
none
Adds an empty stereo track to the project
NewLabelTrack:
Stereo to Mono:
Mix Stereo Down to Mono
none
Converts the selected stereo track(s) into the same number of mono tracks, combining left and right channels equally by averaging the volume of both channels.
MixAndRender:
Mix and Render
none
Mixes down all selected tracks to a single mono or stereo track, rendering to the waveform all real-time transformations that had been applied (such as track gain, panning, amplitude envelopes or a change in project rate).
MixAndRenderToNewTrack:
MuteAllTracks:
Mute All Tracks
none
Mutes all the audio tracks in the project as if you had used the mute buttons from the Track Control Panel on each track.
UnmuteAllTracks:
Unmute All Tracks
none
Unmutes all the audio tracks in the project as if you had released the mute buttons from the Track Control Panel on each track.
MuteTracks:
PanLeft:
Left
none
Pan selected audio to left speaker
PanRight:
Right
none
Pan selected audio centrally.
PanCenter:
Align_EndToEnd:
Align End to End
none
Aligns the selected tracks one after the other, based on their top-to-bottom order in the project window.
Align_Together:
Align Together
none
Align the selected tracks so that they start at the same (averaged) start time.
Align_StartToZero:
SortByTime:
By Start Time
none
Sort tracks in order of start time.
SortByName:
By Name
none
Sort tracks in order by name.
ManageGenerators:
Plugin Manager
none
Selecting this option from the Effect Menu (or the Generate Menu or Analyze Menu) takes you to a dialog where you can enable or disable particular Effects, Generators and Analyzers in Audacity. Even if you do not add any third-party plugins, you can use this to make the Effect menu shorter or longer as required. For details see Plugin Manager.
Built-in:
Built-in
none
Shows the list of available Audacity built-in effects but only if the user has effects "Grouped by Type" in Effects Preferences.
Nyquist:
Chirp:
Chirp...
double StartFreq, (default:440)
double EndFreq, (default:1320) double StartAmp, (default:0.8) double EndAmp, (default:0.1) enum Waveform, (default:Sine)
Sine
Square
Sawtooth
Square, no alias
enum Interpolation, (default:Linear)
Linear
Logarithmic
Generates four different types of tone waveforms like the Tone Generator, but additionally allows setting of the starting and ending amplitude and frequency.
DtmfTones:
DTMF Tones...
string Sequence, (default:audacity)
double Duty Cycle, (default:55) double Amplitude, (default:0.8)
Generates dual-tone multi-frequency (DTMF) tones like those produced by the keypad on telephones.
Noise:
Pluck:
Pluck...
int pitch, (default:0)
enum fade, (default:Abrupt)
Abrupt
Gradual
double dur, (default:0)
A synthesized pluck tone with abrupt or gradual fade-out, and selectable pitch corresponding to a MIDI note.
RhythmTrack:
Rhythm Track...
double tempo, (default:0)
int timesig, (default:0) double swing, (default:0) int bars, (default:0) double click-track-dur, (default:0) double offset, (default:0) enum click-type, (default:Metronome)
Metronome
Ping (short)
Ping (long)
Cowbell
ResonantNoise
NoiseClick
Drip (short)
Drip (long)
int high, (default:0) int low, (default:0)
Generates a track with regularly spaced sounds at a specified tempo and number of beats per measure (bar).
RissetDrum:
ManageEffects:
Plugin Manager
none
Selecting this option from the Effect Menu (or the Generate Menu or Analyze Menu) takes you to a dialog where you can enable or disable particular Effects, Generators and Analyzers in Audacity. Even if you do not add any third-party plugins, you can use this to make the Effect menu shorter or longer as required. For details see Plugin Manager.
RepeatLastEffect:
Repeat Last Effect
none
Repeats the last used effect at its last used settings and without displaying any dialog.
LADSPA:
Amplify:
Amplify...
float Ratio, (default:0.9)
bool AllowClipping, (default:False)
Increases or decreases the volume of the audio you have selected.
AutoDuck:
Auto Duck...
double DuckAmountDb, (default:-12)
double InnerFadeDownLen, (default:0) double InnerFadeUpLen, (default:0) double OuterFadeDownLen, (default:0.5) double OuterFadeUpLen, (default:0.5) double ThresholdDb, (default:-30) double MaximumPause, (default:1)
Reduces (ducks) the volume of one or more tracks whenever the volume of a specified "control" track reaches a particular level. Typically used to make a music track softer whenever speech in a commentary track is heard.
BassAndTreble:
AdjustableFade:
Adjustable Fade...
enum type, (default:Up)
Up
Down
SCurveUp
SCurveDown
double curve, (default:0) enum units, (default:Percent)
Percent
dB
double gain0, (default:0) double gain1, (default:0) enum preset, (default:None)
None
LinearIn
LinearOut
ExponentialIn
enables you to control the shape of the fade (non-linear fading) to be applied by adjusting various parameters; allows partial (that is not from or to zero) fades up or down.
ClipFix:
Clip Fix...
double threshold, (default:0)
double gain, (default:0)
Clip Fix attempts to reconstruct clipped regions by interpolating the lost signal.
CrossfadeClips:
ManageAnalyzers:
Plugin Manager
none
Selecting this option from the Effect Menu (or the Generate Menu or Analyze Menu) takes you to a dialog where you can enable or disable particular Effects, Generators and Analyzers in Audacity. Even if you do not add any third-party plugins, you can use this to make the Effect menu shorter or longer as required. For details see Plugin Manager.
ContrastAnalyser:
Contrast...
none
Analyzes a single mono or stereo speech track to determine the average RMS difference in volume (contrast) between foreground speech and background music, audience noise or similar. The purpose is to determine if the speech will be intelligible to the hard of hearing.
PlotSpectrum:
BeatFinder:
Beat Finder...
int thresval, (default:0)
Attempts to place labels at beats which are much louder than the surrounding audio. It's a fairly rough and ready tool, and will not necessarily work well on a typical modern pop music track with compressed dynamic range. If you do not get enough beats detected, try reducing the "Threshold Percentage" setting.
LabelSounds:
Label Sounds...
double threshold, (default:0)
enum measurement, (default:peak)
peak
avg
rms
double sil-dur, (default:0) double snd-dur, (default:0) enum type, (default:before)
before
after
around
between
double pre-offset, (default:0) double post-offset, (default:0) string text, (default:"")
Divides up a track by placing labels for areas of sound that are separated by silence.
ManageTools:
Plugin Manager
none
Selecting this option from the Effect Menu (or the Generate Menu or Analyze Menu) takes you to a dialog where you can enable or disable particular Effects, Generators and Analyzers in Audacity. Even if you do not add any third-party plugins, you can use this to make the Effect menu shorter or longer as required. For details see Plugin Manager.
ManageMacros:
Macros...
none
Creates a new macro or edits an existing macro.
Apply Macro:
ApplyMacrosPalette:
Palette...
none
Displays a menu with list of all your Macros which can be applied to the current project or to audio files..
Macro_FadeEnds:
Fade Ends
none
Fades in the first second and fades out the last second of a track.
Macro_MP3Conversion:
PlayAtSpeed:
Play-at-Speed
none
Extra commands related to play at speed
FullScreenOnOff:
Full Screen (on/off)
none
Toggle full screen mode with no title bar
Play:
Play
none
Play (or stop) audio
Stop:
Stop
none
Stop audio
PlayOneSec:
SelectTool:
Selection Tool
none
Chooses Selection tool.
EnvelopeTool:
Envelope Tool
none
Chooses Envelope tool.
DrawTool:
OutputGain:
Adjust Playback Volume...
none
Displays the Playback Volume dialog. You can type a new value for the playback volume (between 0 and 1), or press Tab, then use the left and right arrow keys to adjust the slider.
OutputGainInc:
Increase Playback Volume
none
Each key press will increase the playback volume by 0.1.
OutputGainDec:
DeleteKey:
Delete Key
none
Deletes the selection. When focus is in Selection Toolbar, BACKSPACE is not a shortcut but navigates back to the previous digit and sets it to zero.
DeleteKey2:
Delete Key2
none
Deletes the selection.
PlayAtSpeed:
Normal Play-at-Speed
none
Play audio at a faster or slower speed
PlayAtSpeedLooped:
Loop Play-at-Speed
none
Combines looped play and play at speed
PlayAtSpeedCutPreview:
SeekLeftShort:
Short Seek Left During Playback
none
Skips the playback cursor back one second by default.
SeekRightShort:
Short Seek Right During Playback
none
Skips the playback cursor forward one second by default.
SeekLeftLong:
InputDevice:
Change Recording Device...
none
Displays the Select recording Device dialog for choosing the recording device, but only if the "Recording Device" dropdown menu in Device Toolbar has entries for devices. Otherwise, an recording error message will be displayed.
OutputDevice:
Change Playback Device...
none
Displays the Select Playback Device dialog for choosing the playback device, but only if the "Playback Device" dropdown menu in Device Toolbar has entries for devices. Otherwise, an error message will be displayed.
AudioHost:
SnapToOff:
Snap-To Off
none
Equivalent to setting the Snap To control in Selection Toolbar to "Off".
SnapToNearest:
Snap-To Nearest
none
Equivalent to setting the Snap To control in Selection Toolbar to "Nearest".
SnapToPrior:
PrevFrame:
Move Backward from Toolbars to Tracks
none
Move backward through currently focused toolbar in Upper Toolbar dock area, Track View and currently focused toolbar in Lower Toolbar dock area. Each use moves the keyboard focus as indicated.
NextFrame:
Move Forward from Toolbars to Tracks
none
Move forward through currently focused toolbar in Upper Toolbar dock area, Track View and currently focused toolbar in Lower Toolbar dock area. Each use moves the keyboard focus as indicated.
PrevTrack:
CursorLeft:
Cursor Left
none
When not playing audio, moves the editing cursor one screen pixel to left. When a Snap To option is chosen, moves the cursor to the preceding unit of time as determined by the current selection format. If the key is held down, the cursor speed depends on the length of the tracks. When playing audio, moves the playback cursor as described at "Cursor Short Jump Left"
CursorRight:
Cursor Right
none
When not playing audio, moves the editing cursor one screen pixel to right. When a Snap To option is chosen, moves the cursor to the following unit of time as determined by the current selection format. If the key is held down, the cursor speed depends on the length of the tracks. When playing audio, moves the playback cursor as described at "Cursor Short Jump Right"
CursorShortJumpLeft:
TrackPan:
Change Pan on Focused Track...
none
Brings up the Pan dialog for the focused track where you can enter a pan value, or use the slider for finer control of panning than is available when using the track pan slider.
TrackPanLeft:
Pan Left on Focused Track
none
Controls the pan slider on the focused track. Each keypress changes the pan value by 10% left.
TrackPanRight:
SelectTime:
Select Time...
double Start, (default:unchanged)
double End, (default:unchanged) enum RelativeTo, (default:unchanged)
ProjectStart
Project
ProjectEnd
SelectionStart
Selection
SelectionEnd
Modifies the temporal selection. Start and End are time. FromEnd allows selection from the end, which is handy to fade in and fade out a track.
SelectFrequencies:
Select Frequencies...
double High, (default:unchanged)
double Low, (default:unchanged)
Modifies what frequencies are selected. High and Low are for spectral selection.
SelectTracks:
Select:
Select...
double Start, (default:unchanged)
double End, (default:unchanged) enum RelativeTo, (default:unchanged)
ProjectStart
Project
ProjectEnd
SelectionStart
Selection
SelectionEnd
double High, (default:unchanged) double Low, (default:unchanged) double Track, (default:unchanged) double TrackCount, (default:unchanged) enum Mode, (default:unchanged)
Set
Add
Remove
Selects audio. Start and End are time. First and Last are track numbers. High and Low are for spectral selection. FromEnd allows selection from the end, which is handy to fade in and fade out a track. The Mode parameter allows complex selections, e.g adding or removing tracks from the current selection.
SetTrack:
Set Track...
string Name, (default:unchanged)
bool Selected, (default:unchanged) bool Focused, (default:unchanged) bool Mute, (default:unchanged) bool Solo, (default:unchanged) double Gain, (default:unchanged) double Pan, (default:unchanged) int Height, (default:unchanged) enum Display, (default:unchanged)
Waveform
Spectrogram
enum Scale, (default:unchanged)
Linear
dB
enum Color, (default:unchanged)
Color0
Color1
Color2
Color3
enum VZoom, (default:unchanged)
Reset
Times2
HalfWave
double VZoomHigh, (default:unchanged) double VZoomLow, (default:unchanged) bool SpecPrefs, (default:unchanged) bool SpectralSel, (default:unchanged) bool GrayScale, (default:unchanged)
Sets properties for a track or channel (or both). Setting one channel of a stereo track can lead to interesting results. That's most used when setting relative sizing of the two channels. SpectralPrefs=1 sets the track to use general preferences, SpectralPrefs=1 per track prefs. When using general preferences, SetPreferences can be used to change a preference and so affect display of the track. Name is used to set the name. It is not used in choosing the track.
GetInfo:
QuickHelp:
Quick Help...
none
A brief version of help with some of the most essential information.
Manual:
Manual...
none
Opens the manual in the default browser.
Updates:
DeviceInfo:
Audio Device Info...
none
Shows technical information about your detected audio device(s).
MidiDeviceInfo:
MIDI Device Info...
none
Shows technical information about your detected MIDI device(s).
Log:
PrevWindow:
Previous Window
none
Navigates to the previous window.
NextWindow:
Next Window
none
Navigates to the next window.
Close
Save Lossless Copy of Project...
Export as OGG
MIDI...
Cut
Silence Audio
Join
Add Label at Playback Position
Split Cut
Cursor to Stored Cursor Position
Track Start to Cursor
Next Lower Peak Frequency
Previous Clip
Mixer Board...
Zoom Out
Collapse All Tracks
Tools Toolbar
Pause
Timer Record...
Scrub Ruler
Track Start
Pinned Play/Record Head (on/off)
Sync-Lock Tracks (on/off)
Label Track
Mix and Render to New Track
Mute Tracks
Center
Start to Zero
Nyquist
Noise...
Risset Drum...
LADSPA
Bass and Treble...
Crossfade Clips
Plot Spectrum...
Apply Macro
MP3 Conversion
Play One Second
Draw Tool
Decrease Playback Volume
Play Cut Preview-at-Speed
Long Seek Left During Playback
Change Audio Host...
Snap-To Prior
Move Focus to Previous Track
Cursor Short Jump Left
Pan Right on Focused Track
Select Tracks...
Get Info...
Check for Updates...
Show Log...
ExponentialOut
LogarithmicIn
LogarithmicOut
RoundedIn
RoundedOut
CosineIn
CosineOut
SCurveIn
SCurveOut
Square, no alias
enum Interpolation, (default:Linear)
Linear
Logarithmic
Hard Overdrive
Cubic Curve (odd harmonics)
Even Harmonics
Expand and Compress
Leveller
Rectifier Distortion
Hard Limiter 1413
bool DC Block, (default:False) double Threshold dB, (default:-6) double Noise Floor, (default:-70) double Parameter 1, (default:50) double Parameter 2, (default:50) int Repeats, (default:1)
double curve, (default:0) enum direction, (default:Automatic)
Automatic
OutIn
InOut
PitchTempo
LQPitchShift
double shift, (default:0) int number, (default:0) enum constrain, (default:Yes)
Yes
No
dB36
dB48
double gain-L, (default:0) double gain-R, (default:0) double thresh, (default:0) double hold, (default:0) enum makeup, (default:No)
No
Yes
dB36
dB48
Square
int phase, (default:0) int wet, (default:0) double lfo, (default:0)
RemoveCenterToMono
RemoveCenter
IsolateCenter
IsolateCenterInvert
Analyze
double strength, (default:0) double low-transition, (default:0) double high-transition, (default:0)
Fullscreen
Toolbars
Effects
Scriptables
Preferences
Selectionbar
SpectralSelection
Timer
Tools
Transport
Mixer
Meter
PlayMeter
RecordMeter
Edit
Device
Scrub
Play-at-Speed
Trackpanel
Ruler
Tracks
FirstTrack
FirstTwoTracks
FirstThreeTracks
FirstFourTracks
SecondTrack
TracksPlus
FirstTrackPlus
AllTracks
AllTracksPlus
enum Background, (default:None)
Blue
White
None
bool ToTop, (default:True)
No
Yes
string labeltext, (default:) enum zeros, (default:TextOnly)
TextOnly
OneBefore
TwoBefore
ThreeBefore
OneAfter
TwoAfter
ThreeAfter
int firstnum, (default:0) enum verbose, (default:Details)
Details
Warnings
None
None
Count
Time
enum header, (default:None)
None
Minimal
Standard
All
string optext, (default:) enum channel-layout, (default:SameLine)
SameLine
Alternate
LFirst
enum messages, (default:Yes)
Yes
Errors
None
Linear
dB
enum Color, (default:unchanged)
Color0
Color1
Color2
Color3
enum VZoom, (default:unchanged)
Reset
Times2
HalfWave
double VZoomHigh, (default:unchanged) double VZoomLow, (default:unchanged) bool SpecPrefs, (default:unchanged) bool SpectralSel, (default:unchanged) enum Scheme, (default:unchanged)
Color (default)
Color (classic)
Grayscale
Inverse Grayscale
Color3
double Start, (default:unchanged)
Clips
Envelopes
Labels
Boxes
enum Format, (default:JSON)
JSON
LISP
Brief
Track0
Track1
The audio on almost every phonograph record is not the same as that originally performed. For technical reasons the signal's frequencies need to be modified when cutting the disc. Playback equalization (EQ or de-emphasis) is necessary to restore the signal's original frequencies. Only thus can music lovers enjoy the original sound of the music performed long ago from their rare discs.
The most relevant EQ curves are presented as Table 1:
You can download some of them from the section of this page, and import them into Audacity using or
You can generate any curve yourself with the plugin
You can set the sliders of any digital or analog graphic equalizer manually
You can determine appropriate settings for any adjustable analog pre-amplifier.
Which EQ curve will be needed for a specific record label is answered:
for 78 rpm shellacs in
for early LPs in
Once , you can import the curve in the Filter Curve EQ or Graphic EQ effects, by clicking Presets & settings -> Import....
When phonograph records are made, the sound being recorded is deliberately distorted by reducing the volume of the low frequencies and increasing the volume of the high frequencies. This process, known as 'pre-emphasis', allows the low frequencies to be accommodated in the limitations of the record groove and reduces the effect of high frequency surface noise. If pre-emphasis was not carried out, the bass notes in the music would create a groove in the record that oscillated so wildly that the stylus could jump out of it on playback, and the treble notes would be drowned out by the surface noise of the stylus in the groove.
On playback, the pre-emphasis must be reversed in order to restore the original sound. This is known as 'de-emphasis' or equalization (EQ).
Modern vinyl records use a method of pre-emphasis and de-emphasis adopted by the Recording Industry Association of America (RIAA) in the 1950's, and the EQ curve used is known as the RIAA curve. However, before the RIAA curve was adopted, each record label used its own EQ curve for recording and, for these records (78rpm and early vinyl), the correct EQ curve must be used for playback.
Each EQ curve is a combination of two filter characteristics; a bass boost curve, defined by a 'Bass Turnover' (or 3dB) frequency, and a treble cut curve, defined by a '10 kHz Gain Roll-off' parameter, i.e. a defined level of treble cut at 10 kHz.
As an example, Figure 1 below shows the characteristic of the bass boost curve defined by a 500Hz Bass Turnover, and Figure 2 shows the characteristic of the treble cut curve defined by a 10 kHz Gain Roll-off of -13.7dB. These two curves, when combined, give the characteristic shown in Figure 3.\
The EQ curve may also include a Low Frequency Shelving filter, (although it is absent from the definition of most 78 rpm EQ curves). This addition reduces the effect of the bass boost at very low frequencies (typically 50 or 100 Hz) in order to attenuate low-frequency noise such as turntable rumble. Figure 4 shows the effect of a 50 Hz LF shelving filter being added to the curve in Figure 3. This is in fact the RIAA standard EQ curve.
Acoustically recorded (pre-electric) 78 rpm records have a completely different characteristic because they were cut with a different type of cutter (For more details see: Acoustic recordings). In some early EQ curves of electrically recorded shellacs, while there is a bass boost curve, there is no treble cut necessary – i.e. the 10 kHz gain roll-off is zero.
Note that in the combined EQ curve, the gains at the Bass Turnover frequency and at 10 kHz may be different from those specified by the parameters. This is not an error, but is due to fact that the gains of the bass boost and treble cut curves are simply added together.
Because 78 rpm EQ curves were non-standard and, in many cases, accurate records were not kept to show what EQ curves were used when recording 78s, there is a degree of uncertainty about what is the correct playback EQ for many record labels. The tables below have been obtained from websites which, in their turn, have compiled data from a number of sources and should prove reasonably accurate. However, the ear of the listener is the final arbiter - if it doesn't sound right, it isn't right!
According to NAB standards, the nominal speed of a 78 rpm record is precisely 78.26 rpm +/- 0.3% (for North America and other countries with an utility frequency of 60 Hz). According to British Standards Institution it is 77.92 rpm +/- 0.5% (for Britain, Europe and other countries with a mains frequency of 50 Hz).
Pre-equalization of most records – especially of shellacs – was always determined by the cutter head used and often by internal regulations of the record company. Both left quite some room for the recording engineer to make changes to improve the sound. Also if Graumann uses 250 Hz in playback of an EMI disc and Copeland votes for 300 Hz this is not a contradiction. Both mean the same EQ curve but have different opinions on what sounds best. This should encourage you to try both versions and take the one which sounds right to your ears.
Please do not worry about fractions of a dB! Still in the 1960s an accuracy of a curve of +/- 2 dB was considered to be standard. In the 1950s +/- 3 dB were a very fine result and nobody will ever know if recording engineers in the 1940s or 1930s applied their curves correctly (or if they applied them at all!) So the spread in pre-equalization during recording will outnumber any bias in playback equalization by far.
The most relevant EQ curves are presented in Table 1. All curves are described from the point of view of a playback or de-emphasis curve, where bass / low frequencies must be amplified / boosted and where treble / high frequencies must be attenuated / cut in order to achieve the original sound that had been recorded. The corresponding pre-emphasis curve used for cutting the master disk is inverse.
When comparing with lists provided by the manufacturers of equalizer pre-amps it should be considered that those may be misleading, as they might not quote the correct parameters of the curve but rather the next-best possible settings of these devices. For example the Conductart OWL 1 Sound Restoration Module – a renowned pre-amp of the 1980s – offered settings of flat/ 250/ 375/ 500/ 750/ 1000/ RIAA for turnover and flat/ 5/ 8.5/ 12/ 14/ 16/ RIAA for roll-off. Thus for the widely used standard “AES 400N-12” settings of 375 Hz and -12 dB were listed; for the “Bartok 629C-16” curve it was 750 Hz and -16 dB and for “LONDON LP 500C-10.5” it was 500 Hz and -8.5 dB. These recommendations were quoted or copied by other authors and three “new characteristics” had come to existence.
Table 1 gives the three parameters to characterize any EQ curve: the turnover frequency f1 for bass shelf, f2 for bass boost and f3 for treble cut (or alternatively the three corresponding time constants τ1, τ2 and τ3). These are the necessary conditions to compute and plot any EQ curve, determine the correct settings of a digital equalizer or to solder an electronic filter circuit.
The gain at two typical frequencies will give you a rough impression of what the curve does to the audio from the record. The frequencies are:
50 Hz, where usually the bass shelf becomes effective
10 kHz, because the treble curve is often indicated by roll-off at 10,000 Hz
The very descriptive “code” is a good tool to avoid misunderstanding when EQ curves come under various alias names (what they do too often).
The first 3-digit number indicates the turnover frequency of bass boost (f2)
The letter in the middle is N … (“None”) if no bass shelving is applied, or R … 20 dB (named R after RCA or RIAA) B … 18 dB A … 16 dB C … 14 dB (named C after Columbia LP curve) X … 12 dB
The last number shows the reduction or roll-off of treble at 10 kHz and is always preceded by a minus sign. Please mind that this is only a code and that the exact value – after normalization to 0 dB at 1000 Hz – might be different.
This code can be used to find the correct settings of most equalizer pre-amps.
(Example: “RIAA 500R-13.7” means for the RIAA curve that bass must be boosted below 500 Hz, but no more than + 20 dB and that treble must be cut at 10,000 Hz to – 13.7 dB)
The geographic region and the time period are added to allow a qualified guess for the required EQ should a record label not be listed. In general, American recording curves were more deliberate in cutting bass and boosting treble. The British and Europeans tended to apply only the necessary minimum of bass attenuation and often no treble boost at all, that means they had a “flat” treble curve. Early pre-emphasis curves were simply built and rather soft. In the late years (after 1945) curves became highly sophisticated, with the third turnover frequency f1 added to manage the bass shelving and also with gain ranging from -20 dB to + 20dB.
EQ Curves for Audacity can be generated from these Frequency and Roll-off values using the experimental Nyquist plugin "78 RPM EQ Curve Generator". This plugin is obtainable from the top of this and requires Audacity 1.3.13 or later. Please give feedback on this plug-in, or ask for help if you need it, by replying to that Forum topic.
Extract 78EQCurveGen.ny from the zip file downloaded from the above Forum topic.
Place 78EQCurveGen.ny in the "Plug-Ins" folder inside the Audacity installation folder, then launch or restart Audacity. For more help installing the .ny file to the correct location, click here.
Click . You can find help inside the plugin by choosing one of the Help options in "Select Function or Help".
Here you can find some useful EQ curves for download to Audacity for use in Effect -> EQ and Filters -> Graphic EQ and Filter Curve EQ. (Curves are in TXT file format, as required in current Audacity and compatible down to version 2.4.0).
In some cases it will be not enough to apply the correct EQ to get the desired result. According to the condition of the record and to personal listening preferences you might consider one of the following methods:
The 250-or-300-Hz dilemma: To use “European250” or “Blumlein300” EQ seems to be not a question of right or wrong but of personal listening preferences. In general, Continental European authors prefer 250 Hz (derived from the original Western Electric recommendation) for Decca (Brit. and Europ.), Brunswick, Cetra, Columbia (Brit.), EMI-HMV and Parlophone. Englishman Copeland favors 300 Hz (derived from the recording characteristic of the Blumlein cutter) for British EMI, His Master’s Voice and Columbia and also for Odeon. Copeland puts it like this: “[…] but when I’m not sure I use 300 Hz.” [Copeland, Manual, p 129]. Being derived from the previous 250-or-300-Hz curve the same applies to “DECCA78” which was used from 1944 for shellacs with the ffrr system. So you should also feel free to decide the 250-or-300-Hz question according to your own listening preference: 300 Hz will give an extra amplification of bass in play back (ca 1.5 dB at 50 Hz).
To remove low frequency noise Robinson (MidiMagic) recommends a low cut filter at 100 Hz with just 6 dB/octave. (Especially for many acoustic recordings which have only noise below 150 Hz or for the “long-playing” shellacs of RCA Victor of 1931/32). This filter will do exactly the same as the “C”-type bass shelf of Columbia LP curve.
Hiss and high frequency scratch due to old worn records: When digitizing such recordings Audacity’s will do a good job to improve the sound once and for all. Those who prefer entirely analog replay with an adjustable pre-amplifier will have the opportunity to improve the sound every time they replay. They can cut / attenuate the frequency range most affected by the noise. A higher value for roll-off at 10 kHz than the “correct” EQ will usually give a better result than a simple treble filter – but: at the expense of the high frequencies of the audio itself.
Dull, lifeless sound: If you improve poor bass on discs of any speed by choosing a higher bass turnover frequency than the “correct” EQ, there will be the welcome side effect of moderately amplifying midrange frequencies. This will bring life to the core octaves of a piece of music by improving instrument and vocal characteristics.
Acoustic recordings (before 1926) are beyond the scope of this page. In these pioneer years speeds varied from 70 to 90 rpm, groove modulation could be lateral, vertical or diagonal and some records were even cut outward with the audio starting at the center. A special turntable and a range of styli / needles are needed to replay.
All acoustics were recorded without any pre-equalization, simply because a modification of the audio was impossible before electric microphones and amplifiers came into use. Nonetheless there are conflicting opinions as to the result:
According to various authors the acoustical recording process had an "inherent mechanical equalization", which results – within the limited frequency range of approx. 150 to 4000 Hz – in a constant velocity characteristic one would only expect from a magnetic cutter. With a magnetic cartridge this would command to be replayed “flat”. Please note that the acoustical recording characteristic is not equalized at all.
According to Robinson an acoustical recording must have a constant-amplitude characteristic which will be correctly reproduced by playing back with a gramophone needle or a piezoelectric crystal pickup. A magnetic cartridge will – by its constant velocity characteristic – double the amplitude whenever the frequency doubles. To compensate for the magnetic pickup MidiMagic recommends an “800N-16” EQ curve, which comes close to the theoretical characteristic of a constant velocity device. Some more information is here on and on . Please note that the acoustical recording characteristic is not equalized at all.
Kolkowski’s results of a of an acoustic recording session show that bass needs heavy equalization if the losses in the recording horn (here below 400 Hz) shall be compensated for. Parametric equalization may be used at resonant frequencies. Treble should be amplified (!) to compensate for the high-frequency roll-off of the recorder. Due to the individual properties (defects) of recording horns and recorders there will be no “general characteristic” of acoustics and therefore no general EQ.
Broadcast Transcription Discs are not in the focus of this page either. Those were recordable lacquer discs, mostly 16 inch in diameter, played at 33⅓ or 78 rpm. They were professionally used by radio broadcasters. Some more information is in .
In America many of these discs were recorded under the standard of the National Association of Broadcasters (NAB) of 1942. The very same recording curve had been used by NBC under the name “Orthacoustic” since mid 1930s. This “NAB Transcription (1942)” playback EQ setting can be downloaded here.
The British Broadcasting Corporation (BBC) used a rather exotic curve as a house standard. The version in use after 1949 has been reconstructed from Longford-Smith’s publication of 1952 as an Audacity EQ setting “BBC Transcription (1949)” and can be downloaded here.
This page is about electrical recordings since 1925 on 78 rpm discs made of shellac! The invention of the Electrical Recording System by Bell Laboratories / Western Electric which was licensed to industry leaders Columbia Records and Victor set some de-facto standards: speed is always 78 rpm, cut is always lateral (same as later mono LPs) and the groove type is always Normal Groove (also named coarse groove). Therefore shellacs are sometimes referred to as N78 (which stands for normal groove discs, played at 78 rpm).
A turntable capable of 78 rpm will be useful. You will need a MONO stylus with 2.5 mil (64 μm), for early electricals possibly one with 3 mil (76 μm) and this Audacity Wiki!
It is assumed that you replay your discs “flat” (without any analog de-equalization) and apply the necessary EQ after digitizing with Audacity . If it is necessary to play the record through a system that applies modern RIAA equalization, select the "RIAA" curve in Audacity's Filter Curve EQ effect and use the Invert button to invert and thus remove the incorrect RIAA equalization before applying the appropriate equalization to the recording.
In case sources did not agree on one EQ curve, their different opinions are listed and you will have to trust your ears.
After the launch of the “long-playing record 33⅓ rpm” by Columbia in 1948 (which used vinyl discs and a narrower groove width – microgroove records or M33) record producers experimented a lot to fully exploit the potential of the new medium. Bass shelving came into use to limit the necessary bass boost in playback and – as a consequence of the extended frequency range – necessary gain reached values as high as +/- 20 dB. So recording characteristics varied considerably!
The “poor sound quality” of some early LPs is nowadays considered to be mostly a result of the wrong EQ in playback.
Standardization was reached with the “New Orthophonic” curve of RCA which was to become the world standard by the name of RIAA. In America most labels switched to RIAA around 1955 – Europe followed by 1962.
In case that sources did not agree on one EQ curve, their different opinions are listed and you will have to trust your ears.
James R. Powell, Jr. and Randall G. Stehle, "Playback Equalizer Settings for 78 RPM Recordings", Third Edition, Gramophone Adventures, Portage, MI, 1993, 2002, 2007. A compilation of Powell’s subjective recommendations of Owl 1 settings for approx. 1800 discs / 400 labels (mostly American and Jazz). Reprint of 3rd edition available at .
Fritz Langford-Smith, Radiotron Designer's Handbook, Wireless Press, Sydney, Fourth edition, 1952.
James Moir, High Quality Sound Reproduction, Chapman & Hall Ltd., London, 1958
τ1 [μs]
τ2 [μs]
τ3 [μs]
f1 [Hz]
f2 [Hz]
f3 [Hz]
[dB]
@ 50Hz [dB]
@10kHz [dB]
Normal Groove, 78 rpm
Eur., Brit.
1926 - 1946
"European 78", Old Europ.,250,EMI 78
636
250 [5]
+ 14,4
0 (flat)
250N-0
Eur., Brit.
1927 - 1946
"Blumlein 300"
531
300 [5]
+ 16
0 (flat)
300N-0
Brit., Amer.
1926 - 1950
"500-FLAT", Blumlein500, Europ.500
318
500
+ 19
0 (flat)
500N-0
America
1926 - 1951
"American 78"
636
250
5900*
+ 14
- 6
250N-6
America
1926 - 1951
"American 78"
636
250
4400*
+ 14
- 8
250N-8
Amer.(CBS)
1938 - 1948
"Columbia 78"
530
100
300
1592
+ 16,7
- 15,0
300N-16
Amer.(RCA)
1941 - 1947
"Old RCA" [4]
199
36,7
800
4340
+ 22,2
-9,9
800N-8
Eur., Brit.
1944 - 1956
"DECCA 78", FFRR 78, London ffrr 78
531
25
300 [5]
6366
+ 15,4
- 5,7
300N-5.5
Germany
1952 - 1955
"CCIR 78", Recomm. No.134 (1953) [1]
450
50
354
3183
+ 17,0
- 10,5
350N-10.5
Eur., Brit.
1955 - end
"IEC N78" = "B.S.1928" for N78 only
3180
450
50
50
354
3183
+ 16
+ 14,0
- 10,5
350A-10.5
Microgroove, 33⅓ and 45 rpm
America
1942 - 1949
NAB (broadcast transcriptions, 1942)
318
100
500
1592
+ 20,5
- 15,6
500N-16
America
6/1948 - 1956
"Columbia LP", Col. M33, "LP" [3]
1590
318
100
100
500
1592
+ 14,5
+ 13,6
- 15,5
500C-16
America
4/1949 - 1958
"NAB", NARTB (standard 1949) [3]
3180
318
100
50
500
1592
+ 20
+ 17,5
- 15,6
500"B"-16
America
1/1951 - 1958
"AES" (standard 1951)
398
63,7
400
2500
+ 18,1
- 12,3
400N-12.3
Amer.(RCA)
1947 - 8/1952
"RCA 45" (45 rpm) [6]
200
75
796
2122
+ 22,6
- 13.7
800N-13.7
Amer.(RCA)
1947 - 8/1952
"RCA Old Orthophonic" (33⅓ LPs) [6]
318
75
500
2122
+ 19,7
- 13.7
500N-13.7
Amer.(RCA)
8/1952 - pres.
"RCA New Orthophonic"
3180
318
75
50,05
500,5
2122
+ 19,5
+ 16,9
- 13,7
500R-13.7
Amer. (all)
ca.1956 - pres.
= "RIAA" (US-standard since 1955)
Europe
ca.1962 - pres.
= IEC No.98 (1955) = B.S.1928 (1955)
Amer., Brit.
1949 - 1956
"LONDON LP" [2]
1590
318
50
100
500
3183
+ 13,8
+ 12,5
- 10,9
500C-10.5
Germany
1955 - 1962(?)
TELDEC (as proposed 1957 for DIN)
3180
318
50
50
500
3183
+ 19,3
+ 16,5
- 10,9
500R-11
[6] Robert C. Moyer, Evolution of a Recording Curve; in: Audio Engineering, vol.37, no.7, July 1953; pp 19-22, 53-54. Roll-off is frequently listed as between 10 and 12 dB, but this “flattening off” to ca 10 dB at 10 kHz was an intentional high cut which must not be compensated for in playback. Thus a setting of 13.7 dB is correct!
Enter the values for your chosen curve for
"Bass Turnover Frequency (Hz)"
"10 kHz Gain Roll-off (dB)"
"LF Shelving Frequency (Hz)" (if a value is given)
in the equivalent boxes in the plugin dialog.
Click "OK" in the plugin to save the .xml file to your chosen location.
Use the EQ XML to TXT Converter Tool to convert your XML file to a TXT text file (suitable for Audacity 2.4.0 and later)
Select some audio and choose .
Choose "Manage".
Choose "Import...", navigate to the location where you saved the .txt file.
Click "Open".
Decca 78 – 300N-5.5: For Decca and London shellacs featuring the ffrr (full frequency range recording) system. Here in the version of Copeland/The British Library Sound Archive
European 78 - 250N-0 is a common setting for European shellacs (1926 – ca. 1944), especially for Columbia and His Master’s Voice produced by EMI (UK), Cetra and Cetra-Soria.
Telefunken 400N-0: used by European Ultraphon, Supraphon and Turicaphon from 1929. Also used by Telefunken – after the takeover of Ultraphon – until mid 1950s.
Western Electric: Very early Columbia and Victor recordings (1926) used a bass turnover frequency of 250 or 300 Hz but their treble is described as “flat”. The perceived treble amplification was possibly only the result of resonant peaks of the early Western Electric condenser microphones used in recording. The above download is an experimental replay EQ curve for this microphone / pre-emphasis combination. Additional background information is given in .
RIAA = RCA New Orthophonic – 500R-13.7
RCA Old Orthophonic – 500N-13.7: RCA’s curve for 33⅓ LPs (1950 – August 1952) and for LPs mastered by RCA for other labels. Possibly identical with “MGM curve” 500N-12 used by MGM.
Vadlyd uses a variable low cut filter for American Victor, early British Decca, EMI, His Master’s Voice and Columbia at frequencies between 40 and 70 Hz. This is very similar to the recommendation of Phonomuseum.org. In Audacity you can experiment with different settings for “Frequency” and “Roll-off” in Effect -> High Pass Filter (a different word for Low Cut Filter) and listen to the result with “Preview”.
All bass shelf settings on analog equalizers (R-B-A-C-X) can also be used to remove low frequency noise (especially from acoustics and early shellacs). This is why the extra positions X and A were provided [MidiMagic]
A known trick of recording engineers was to increase bass t/o frequency on very long recordings. Thus bass attenuation was increased and bass amplitude and necessary groove width were reduced. So the given duration of the audio could be squeezed into the given space on the disc. If a disc is filled with grooves as can be a higher bass turnover frequency can be necessary to restore the original sound. Example: Colosseum [ES]
To improve the weak bass on some 45s (especially on EPs – Extended Play) Esoteric Sound uses a higher turnover frequency for bass in replay than in pre-equalization. For example 700 Hz instead of the “correct” 500 Hz. This will give a smooth, extra bass amplification of roughly 4 dB at 50 Hz.
To reduce surface noise of early American Columbia, Victor and RCA-Victor iasa recommends an additional high cut (= low pass) filter set to 5500 or 5200 Hz with 6 dB/octave. This will reduce treble by 3 dB at around 5000 Hz and by 9 dB at 10000 Hz – and hopefully most of the noise.
ES
_Electrical 78's (general)
1932-1938, mid 30s
500-FLAT
500N-0
500
0
ia,ES,JP,RF
_Electrical 78's (general)
1938-1946
300 or 500
0 or -5
ES
_Electrical 78's (general)
1947-1954
300 or 500
-16
ES
Aco
1926 - 1933, British, with M in a circle
BBC 2dB/oct.
PC
Aeolian-Vocalion
1926 - 1933, British, with M in a circle
BBC 2dB/oct.
PC
ARC
American Record Corporation = Cameo + Pathé + Plaza Group; 1929 - 1930
500
0 or -5
PC,JP
ARC
American Record Corporation; 1930 - 1939 (some early also 500-5)
500
-8.5
JP
Argo
American 78
250N-6
250
-6
mm
Ariel
1925 - 1931, British, with Δ after matrix no. or with W in a circle
[W.E.]
250
W.E.mike
PC
Artist
500
-16
ES
Audiophile
1952 - 1955, 78 rpm microgroove (!) records, up to AP-30; may also be replayed with "flat" treble
Audiophile78
300N-8
300
-8
RH,Mc,AT
Autograph
Marsh Laboratories, ca. 1924 - 1926
1000
0
ES,JP
Banner
1926 - 1929, an ARC label from 1929
500
0
JP
Balkan
500
-5
ES
Beltona
1926 - 1933, from cat. 1194 to 1282, with M in a circle
BBC 2dB/oct.
PC
Beltona
1944 - 1955, ffrr, prod. by Decca UK,
Decca 78
300N-5.5
300
-5,7
PC
Bluebird
sublabel of RCA, see: RCA-Victor
Bluebird
1925 - 1931, with VE in an oval or "Orthophonic Recording" or with Δ after matrix no. (recorded in Europe)
[W.E.]
250
W.E.mike
PC
Broadcast (American)
American 78
250N-6
250
-6
mm
Broadcast (American)
1940s
500
-12
JP
Broadcast (British)
1926 - 1933, with M in a circle
BBC 2dB/oct.
PC
Brunswick (American)
1925 - 1930
500-FLAT
500N-0
500
0
ia,JP,RF,PC
Brunswick (American)
1929 - 1935, an ARC label from Dec 1931 to 1940
500
-5
JP
Brunswick (American)
1935 - 1939
500
-8.5
JP
Brunswick (American)
1946 - 1951 or 1954, a Decca (Amer.) label since 1941
630N-?
629
-8 or -12
ES,mm
Brunswick (British)
1925 - 1944, a Decca label since 1932; see: Decca (Brit.)
European 78
250N-0
250
0
ES,GH
Cameo
1926 - 1929, probably W.E.; an ARC label from 1929
[W.E.]
250
0/W.E.
JP
Capitol
earliest 78s
1000
PC
Capitol
1942 - 1953; Capitol founded in 1942; since 1954 => RIAA
Capitol [CAP]
400N-12.7
400
-12.7
ia,ES,mil,JP,Mc
Capitol
1942 - 1951
American 78
250N-8
250
-8
mm
Capitol
to 1954
800
-10
ES
Capitol / Capitol Cetra
1951-1955
Capitol [CAP]
400N-12.7
400
-12.7
mm
Capitol - Telefunken
500-FLAT
500N-0
500
0
ES,mil
Capitol (British)
1944 - 1955, "ffrr", prod. by Decca UK, matrix prefix DCAP
Decca 78
300N-5.5
300
-5,7
PC,JP
Cetra
founded 1930s by RAI, Italy
European 78
250N-0
250
0
GH
Cetra-Soria
founded 1949, Cetra prod. in US
European 78
250N-0
250
0
mm
Chappell
1931 - 1944, British, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Coliseum
1926 - 1933, British, with M in a circle
BBC 2dB/oct.
PC
Columbia (American)
1925 - 1931 (some -1934)
[W.E.]
200 - 250
-5 / W.E.
AT,ES,mil,ia,JP
Columbia (American)
1931 - 1937
American 78
250N-8
250
-8
AT,mm,JP
Columbia (American)
1939 - 1956; "Columbia Rec." a CBS label since 1938; from 1955 change to RIAA
Columbia 78
300N-16
300
-16
ia,GH,ES,mil,mm, JP,Mc,AT
Columbia (British)
1925 - 1931, with W in a circle
[W.E.]
250
W.E.mike
PC
Columbia (British)
1931 - 1953, an EMI UK label from 1931
European 78
250N-0
250
0
ia,GH,ES,JP,RF
Columbia (British)
1931 - 1944, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Columbia (British)
1932 - 1949, with W in a circle or matrix prefix W (US COL/OKeh reissues)
500-FLAT
500
0, later -12
PC
Columbia (British)
1949 - 7/1953, EMI UK, matrix nos. from CA22600 to CA22610, and at CAX11932
500-FLAT
500N-0
500
0
PC
Concert Hall
500
-5
ES
Coral
1948 - 1954
629
-12
ES
Coral
1948 - 1953, sublabel of Decca US; from 1953 => RIAA
AES
400N-12.3
400
-12.3
JP
Decca (American)
1934 - 1937, (Decca US established in 1934)
American 78
250N-8
250
-8.5
JP
Decca (American)
1937 - 1946 ca
AES
400N-12.3
400
-12.3
ia,JP,RF
Decca (American)
pre 1946, imports from Britain?
Blumlein300
300N-0
300
0
ES
Decca (American)
very few, to try a combination of 500Hz / 6300 Hz
500N-5.5
500
-5,5
mm
Decca (American)
1946 - 1951, if labeled "ffrr"
Decca 78
300N-5.5
300
-5,7
mm
Decca (American)
1946 - 1954 (??? 629 Hz ???)
629
-12
ES
Decca (American)
1951 - 1953, from 1953 => RIAA
AES
400N-12.3
400
-12.3
mm
Decca (British)
1929 - 1944
European 78
250N-0
250
0
ES,mm
Decca (British)
1935 - 1944, matrix up to DR8485-2; test disc: Decca EXP55 or Z718
Blumlein300
300N-0
300
0
PC
Decca (British)
1944 - 1955, ffrr, cat. nos. from F.8440, K.1032, M.569 and X.281 (some exceptions); matrix nos. 8486 to 18000; test disc: Decca K.1802, London T.4996
Decca 78
300N-5.5
300
-5,7
PC,ES,mm,JP
Decca (British)
some 1949-1956
London LP
500C-10.5
500
C
-10,5
mm
Decca (European)
to 1944
European 78
250N-0
250
0
mm
Decca (European)
1944-1950
Decca 78
300N-5.5
300
-5,7
ES,mm
Decca (European)
1950-1954, (Telefunken + Decca UK = TELDEC since 1950)
Telefunken
400N-0
400
0
mm
Decca (European)
some 1954-1962
CCIR 78
350N-10.5
354
-10,5
mm
Deutsche Grammophon
alias "DGG", taken over by Telefunken 1937
300
-5
ES,mil
Deutsche Grammophon
1944 ca. - 1953 ca. (???)
European 78
250N-0
250
0
PC
Dial
78s used same EQ as 33⅓ and 45s
Columbia LP
500C-16
500
C
-16
ES,mil
Domino
1926 - 1929, an ARC label from 1929
500
-5
JP
Dot
to 1958
AES
400N-12.3
400
-12.3
mm
Electrola
800
-10
ES,mil
EMI-HMV (British)
some, re-releases of acoustics mastered 1909-1926
800N-12
800
-12
mm
EMI-HMV (British)
1927 - 1953
European 78
250N-0
250
0
GH,ES,mil,mm
EMI-HMV (British)
1931 - 1944, with □ after matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
EMI-HMV (British)
1931 - 1949, with ◊ after matrix no.
500-FLAT
500
0, later -12
PC
EMI-HMV (British)
1931 - 1953, (test disc HMV DB4037)
European 78
250N-0
250
0
ia,ES,mil,JP,PC
EMI-HMV (British)
11/1943 - 7/1953, matrix nos. from 2EA17501 to 0EA17576
European 78
250N-0
250
0
PC
EMI-HMV (British)
1955 - end, test disc: EMI JGS812, BBC DOM86
CCIR 78
350N-10.5
354
-10,5
PC
Exclusive
1944 - 1949
Decca 78
300N-5.5
300
-5,7
mm
Gramophone Company
1925 - 1931 UK, with Δ after matrix no.
[W.E.]
250
W.E.mike
PC
Gramophone Company
Blumlein300
300N-0
300
0
ES,mil
Harmony
1929 - 1931
250
-5
JP
His Master's Voice (Brit.)
some, re-releases of acoustics mastered 1909-1926
800N-12
800
-12
mm
His Master's Voice (Brit.)
1925 - 1931 British, with Δ after matrix no.
[W.E.]
250
W.E.mike
PC
His Master's Voice (Brit.)
1931 - 1953, prod. by EMI(UK)
European 78
250N-0
250
0
ia,GH,mm,JP,RF
His Master's Voice (Brit.)
1932 - 1949, with ◊ after matrix no.
500-FLAT
500
0, later -12
PC
His Master's Voice (Brit.)
11/1943 - 7/1953, EMI UK, matrix nos. from 2EA17501 to 0EA17576
500-FLAT
500N-0
500
0
PC
Hispanophone
1926 - 1931 , with Δ after matrix no.
[W.E.]
250
W.E.mike
PC
Hit of the Week
1930 - 1932
500
-5 or -8.5
ES,mil,JP
Homochord
1926 - 1928, matrix no. HH, JJ, HR, JR, Ee (made by Gramophone Co.)
[W.E.]
250
W.E.mike
PC
Hugophone
1925 - 1931, with W in a circle
[W.E.]
250
W.E.mike
PC
Hugophone
1931 - 1944, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Jewel
1926 - 1929, an ARC label from 1929
500-FLAT
500N-0
500
0
JP
Keynote
500-FLAT
500N-0
500
0
ES
Keynote
1940s
500
-12
JP
King
1946 - 1953, since 1953 => RIAA
500
-8.5 or -16
ES,mil,JP
Lincoln
sublabel of Cameo, 1926 - 1929, probably W.E.
[W.E.]
250
-5 / W.E.
JP
Linguaphone
1926 - 1933, with M in a circle
BBC 2dB/oct.
PC
Linguaphone
Blumlein300
300N-0
300
0
ES,mil
L'Oiseau-Lyre
1944 - 1955, ffrr, prod. by Decca UK,
Decca 78
300N-5.5
300
-5,7
PC
London
1948 - 1955, ffrr, prod. by Decca UK,
Decca 78
300N-5.5
300
-5,7
PC,mil,JP
MacGregor
1930 - 1950s, a Hollywood recording studio; produced by Brunswick, ARC, Capitol,...; various EQs (250-5, 250-8, 400-12.7, 500-12)
mm,JP,AT
Majestic
1942 - 1948
500
-16
ES,JP
Marsh Laboratories
(electrical)
1000
0
ES
Melotone
1931 - 1938, a Brunswick budget label; see Brunswick (Amer.)
Mercury
1945 - 1953; approx. to matrix YB9700; since late 1953 => RIAA
AES
400N-12.3
400
-12.3
ia,ES,mm,JP,Mc
MGM (American)
founded 1946; up to E3071
MGM [MGM]
500N-12
500
-12
ia,ES,mil,JP,RF
MGM (British)
1949 - 7/1953, matrix no. 0SM420
500-FLAT
500N-0
500
0
PC
Musicraft
??? RCA Old Ortho.???
700-800
-13.7
ES,mil
Musicraft
500
-8.5 or -12
JP
Nat. Gramophonic Soc.
1926 - 1933, with M in a circle, cat. HHH to TTT and NGS.65 to NGS.102
BBC 2dB/oct.
PC
Nixa
1950 - ?, Britain, shellacs produced by Decca UK
Decca 78
300N-5.5
300
-5.7
ris
Octacros
1931 - ?, Britain, a Synchrophone label
Blumlein300
300N-0
300
0
PC
Odeon
some early electricals
800
0
ES,mil
Odeon
1925 - 1928, with W in a circle (a Lindström label)
[W.E.]
250
W.E.mike
PC
Odeon
1928 - 1936, matrix with ₤ in a circle ( a Lindström label); bass shelf at 100Hz
400
C
0
PC
Odeon
1931 - 1944, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Odeon
to 1953, (1926 sub. of Brit. Columbia , 1931 sub. of EMI)
Blumlein300
300N-0
300
0
ES,mil
OKeh
1926 - 1935, a Columbia label since 1926
[W.E.]
250
-5 / W.E.
AT,JP,mm
OKeh
1931 - 1935, some; probably American78
American 78
250N-8
250-300
0 or -8.5
ES,mil
OKeh
1940 - 1945 and 1951 - 1955; since 1955 => RIAA
Columbia 78
300N-16
300
-16
AT,JP
Oriole
1926 - 1929, an ARC label from 1926
500
-5
JP
Parlophone (Amer.,Brit.)
1925 - 1931, with W in a circle
[W.E.]
250
-5 / W.E.
PC,JP
Parlophone (British)
1925 - 1953
European 78
250N-0
250
0
GH,ES
Parlophone (British)
1931 - 1944, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Parlophone (British)
1932 - 1949, with W in a circle or matrix prefix W (US COL/OKeh re-issues for UK)
500-FLAT
500
0, later -12
PC
Parlophone (British)
1949 - 7/1953, EMI UK, matrix nos. from CE14643 to CE14689
500-FLAT
500N-0
500
0
ia,PC,JP,RF
Parlophone-Odeon
1925 - 1928, Odeon in Brit.; with W in a circle
[W.E.]
250
W.E.mike
PC
Parlophone-Odeon
1928/29, Odeon in Brit.; matrix with ₤ in a circle, bass shelf at 100Hz
400
C
0
PC
Pathé (American)
1926 - 1929, probably W.E., some 500-5; an ARC label from 1929
[W.E.]
250
-5 / W.E.
JP
Pathé (French)
1931 - 1944, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Perfect
1926 - 1929, probably W.E., sublabel of Pathé (Amer.)
[W.E.]
250
-5 / W.E.
JP
Philips
to 1953
Philips
400N-6
400
-6
mm
Polydor
sub-label of Deutsche Grammophon
300
-10
ES,mil
Radiofunken
Telefunken
400N-0
400
0
mil
RCA Victor
12/1931 - 2/1932 "long-playing" shellacs, N-groove, played at 33⅓ rpm
≈Old Ortho.
500N-13.7
500 or up
-13.7
RM,PC
RCA Victor
1931 ca., test disc Victor 84522 without treble pre-emphasis
500-FLAT
500N-0
500-600
0
PC,ES
RCA Victor
1931 - 1938, used high cut at 5500 Hz [R-B]
≈Old Ortho.
500N-13.7
500 or up
-13.7
RM,PC
RCA Victor
1938 - 1947, used High Cut at 8500 Hz, [R-C]
Old Ortho.
500N-13.7
500
-13.7
RM,PC,ia,JP,ES, mil
RCA Victor
1941 - 1947 (some to 1952)
Old RCA
800N-8
800
-8
mm
RCA Victor
1947 - 1951 [R-D]
RCA 45
800N-13.7
800
-13.7
mm
RCA Victor
1947 - Aug 1952 [R-D]
Old Ortho.
500N-13.7
500
-13.7
RM,ia,mm,JP,RF
RCA Victor
since Aug 1952 => "New Orthophonic" = RIAA, from matrix E2RP4094
RIAA
500R-13.7
500
R
-13.7
RM,ES
RCA Victor (British)
1931 - ?, with swastika after matrix no., re-issued by EMI UK
European 78
250N-0
250
0
PC
RCA Victor (British)
1931 - 1944, with □ after matrix no., re-issued by EMI UK, [Bc]
Blumlein300
300N-0
300
0
PC
RCA Victor (European)
1930 - 1950
European 78
250N-0
250
0
ES
Regal (American)
1926 - 1929, an ARC label from 1929
500
-5
JP
Regal (British)
1925 - 1931, with W in a circle
[W.E.]
250
W.E.mike
PC
Regal Zonophone (Brit.)
budget label of EMI/Columbia
European 78
250N-0
250
0
ES,mil
Regal Zonophone (Brit.)
1925 - 1931 UK, with Δ after matrix no. or with W in a circle
[W.E.]
250
W.E.mike
PC
Regal Zonophone (Brit.)
1931 - 1944, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Regal Zonophone (Brit.)
1932 - 1949, with W in a circle or matrix prefix W (US COL/OKeh reissues for UK)
500-FLAT
500
0, later -12
PC
Regal Zonophone (Brit.)
1949 - 7/1953, matrix no. CAR6800
500-FLAT
500N-0
500
0
JP
Romeo
1926 - 1929, sublabel of Cameo; probably W.E.
[W.E.]
250
0 / W.E.
JP
Scala
1926 - 1933, with M in a circle
BBC 2dB/oct.
PC
Schirmer
1000
-24
mil
Supraphone
Czech, since 1932, a subsid.of Ultraphon
Telefunken
400N-0
400
0
ES,mil
Synchrophone
1931 - ?, Britain
Blumlein300
300N-0
300
0
PC
Technichord
American, all N78 from 1938 [TCH]
Technichord
800N-12
800
-12
ES,mil,mm
Telefunken
1944 - 1955, ffrr, prod. by Decca UK,
Decca 78
300N-5.5
300
-5,7
mm,PC
Telefunken
1951-1953, (Telefunken + Decca UK = TELDEC since 1950)
Telefunken
400N-0
400
0
mm
Tempo (American)
Tempo Record Co. of America, Hollywood, CA; ca 1947 - late 1950s
500
-12
JP
Tempo (American)
400N-6
400
-6
mm
Theme
sublabel of Tempo (Amer.)
500
-12
JP
Theme
all N78
American 78
250N-6
250
-6
mm
Turicaphon
Switzerland, 1930 - , a subsid.of Ultraphon
Telefunken
400N-0
400
0
Ultraphon
Europe 1929-1932, taken over by Telefunken
Telefunken
400N-0
400
0
ES,mil
Unison
1926 - 1933, with M in a circle
BBC 2dB/oct.
PC
Victor
1925 - 1931, Western Electric System
[W.E.]
200 - 300
0 to -7
ia,JP,ES,mil,mm
Victor
Victor was taken over by RCA in 1930; see: RCA-Victor
Victor / Victrola
1925 - 1931, with VE in an oval or "Orthophonic Recording" or with Δ after matrix no. (recorded in Europe)
[W.E.]
250
W.E.mike
PC
Vocalion (American)
a Brunswick label since 1924; see: Brunswick (Amer.)
Vocalion (British)
1926 - 1940; a Brunswick and since 1932 a Decca UK label
European 78
250N-0
250
0
ES,mil
Vocalion (British)
1926 - 1933, to cat. X10029 A.0269 and K05312, with M in a circle
BBC 2dB/oct.
PC
Vocalion (British)
1944 - 1955, "ffrr", prod. by Decca UK, including V1000 series
Decca 78
300N-5.5
300
-5,7
PC
Voice of the Stars
1931 - 1944, with © before matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
Zonophone
1925 - 1931 UK, with Δ after matrix no.
[W.E.]
250
W.E.mike
PC
Zonophone
1931 - ?, with swastika after matrix no.
European 78
250N-0
250
0
PC
Zonophone
1931 - 1944, with □ after matrix no., [Bc]
Blumlein300
300N-0
300
0
PC
[MGM] ... used a special “MGM curve” 500N-12. Play back with “RCA Old Orthophonic” 500N-13.7!
[R-D] ... Roll-off is frequently listed as between 10 and 12 dB. But this “flattening off” to ca 10 dB at 10 kHz was an intentional high cut which must not be compensated for in playback. Thus a setting of 13.7 dB is correct!
[R-C] ... RCA recommends replaying with “Old Ortho.”. High frequencies were cut off more deliberately at 8,500 Hz (with no effect on playback EQ!) than in later years. [cf. Moyer]
[R-B] ... From c. 1931 to 1938 high frequencies were even cut off at 5,500 Hz! The bass curve is “subject to some question, however,” since it was extensively modified by electronic filters and mechanical damping. But RCA found 500 Hz to be the best average characteristic and used this in re-recording pre-1938 masters. So in principle: “Old Ortho.” for playback again! [cf. Moyer]
[TCH] ... Technichord used its own “Technichord curve” 800N-12. Play back with “RCA 45” 800N-13.7!
[W.E.] ... Very early Columbia and Victor recordings (1926) used a bass turnover frequency of 250 or 300 Hz but their treble is described as “flat”. The perceived treble amplification was possibly only the result of resonant peaks of the early Western Electric condenser microphones used in recording. Background information is given in this PDF. An experimental replay EQ curve for this microphone / pre-emphasis combination can be downloaded here.
A “HIFi+” sticker on American Columbias or the catalogue number written in an inverted triangle on German records (like Deutsche Grammophon) is a symbol for RIAA.
Later recordings on the labels listed below should all be RIAA.
ES
Allied
to 1958
NAB or Col.LP
500?-16
500
B/C
-16
JP,Hi,ES,mil,mm
American Recording Society
to matrix E2KP9607, mastered by RCA
Old Ortho. [R-D]
500N-13.7
500
N
13.7
ES,Mc
American Recording Society
to 1958
AES
400N-12.3
400
N
-12.3
Hi,mm,JP
Angel
(2XEA213-392/XAX561-817)(1N,2N)
500-FLAT
500N-0
500
N
0
ES
Angel
to 1952; to 35022
Old Ortho. [R-D]
500N-13.7
500
N
13.7
mil,mm,RF,Mc
Arizona
to Sept(?) 1955
Capitol [CAP]
400N-12.7
400
N
-12,7
Hi,ES,mil,mm,JP
Artist
NAB
500B-16
500
B
-16
GH,mil
Atlantic
to 1953, produced by MGM
NAB
500B-16
500
B
-16
ES,mil,mm,JP,Mc
Audio Fidelity
no. 901-903
NAB
500B-16
500
B
-16
ES,mm,JP,RF
Audiophile
1952 - 1976 (!); regular 33⅓ LPs up to AP-125; may also be replayed with "flat" treble; probably never used RIAA
Audiophile33
600N-10
600
N
-10.3
RH,AT
Bach Guild
sublabel of Vanguard; BG-501 to 529 (1950 to 52)
Columbia LP
500C-16
500
C
-16
GH,ES,Hk,Hi,AT
Banner
to 10002
Columbia LP
500C-16
500
C
-16
ES,mil,mm
to 1952
Columbia LP
500C-16
500
C
-16
ES,mm
Bartók
1952-1953
AES
400N-12.3
400
N
-12.3
mm
Bartók
no. 301-307, 309, 906-920
Bartok
630C-16
629
C
-16
ES,mil,mm,JP,Mc
Bartók
no. 308, 310-11, 901-05 and from 921
RIAA
500R-13.7
500
R
-13,7
Hi
Blue Note
to Sept(?) 1955, 33⅓ and 45s
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP, Hk,Mc
Bluebird
Bluebird Classic (BC), a sublabel of RCA, see: RCA-Victor
Boston
to 1958, up to B202
Columbia LP
500C-16
500
C
-16
Hi,ES,mil,mm,JP, RF
Brunswick
to matrix MG4400; with raised matrix**
Old RCA
800N-8
800
N
-8
ES
Brunswick
1951-1955
AES
400N-12.3
400
N
-12.3
mm
Caedmon (American)
founded 1952, TC1002 - TC1022 (1955)
Bartok
630N-16
629
N
-16
Hi,ES,mil,mm,JP
Caedmon (American)
629
-11 or -12
ES,Mc
Caedmon (British)
early LPs "made in England", from 1953
CCIR 78
350N-10.5
350
N
-10,5
PC
Canyon
to C6160
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP, Hk,Mc
Capitol / Capitol-Cetra
1949 - 1955 (sold to EMI-UK in 1955); 33⅓,
Capitol [CAP]
400N-12.7
400
N
-12,7
Hi,ES,mm,JP,RF, Hk,Mc
Capitol / Capitol-Cetra
1949 - 1954; 45 rpm
NAB
500B-16
500
B
-16
GH,mm
Capitol
to 1954, weak bass on 45 rpm can be improved (+ 4.5 dB) by 800 Hz t/o
500
-12
ES,Mc
Cetra-Soria
Am. releases of Cetra, 1948-1953 (Cetra-Soria sold to Capitol)
Columbia LP
500C-16
500
C
-16
Hi,GH,ES,mm,JP, RF
Colosseum
AES
400N-12.3
400
N
-12.3
ES,mil,RF,Mc
Colosseum
to Jan 1954
NAB
500B-16
500
B
-16
Hi,mm,JP,RF
Colosseum
some long operas
1000
-5
ES
Columbia (American)
1947-1955; to matrix ML4895, XLP3200
Columbia LP
500C-16
500
C
-16
Hi,GH,ES,mil,mm, JP,RF,Hk
Columbia (American)
1948 - 1953; 45 rpm
NAB
500B-16
500
B
-16
ES,mm,Mc
Columbia (American)
45 rpm
AES
400N-12.3
400
N
-12.3
JP
Columbia (American)
1955 - ; after matrix XLP3200 or with "HiFi+" sticker
RIAA
500R-13.7
500
R
-13.7
ES
Columbia (British)
1949 - 7/1953, matrix nos. LPs: from XA561 to XAX817; XRX12; EPs: 7TCA 7, 7TCO 6; SPs: 7XCA185, 7XCO 87
500-FLAT
500N-0
500
N
0
PC,ES
Concert Hall (American)
most! 1948-1954, XTV matrix to 20383 (low take nos) produced by COL
Columbia LP
500C-16
500
C
-16
Hi,ES,mm,JP,RF
Concert Hall
E0 matrix, mastered by RCA, ca. 1950/51
Old RCA
800N-8
800
N
-8
ES
Concert Hall
E1KP/E2KP matrix, mastered by RCA, ca. 1951/53
Old Ortho. [R-D]
500N-13.7
500
N
13.7
ES
Concert Hall
marked AES,
AES
400N-12.3
400
N
-12.3
mil,mm,RF,Mc
Concert Hall
CH matrix?
500
-10
ES
Concert Hall
matrix E2RP from 4095 / E2KP from 9607
RIAA
500R-13.7
500
R
-13,7
ES
Concert Hall (British)
to 1956 (or 1954)
London LP
500C-10.5
500
C
-10.5
Hi,mm,JP
Contemporary
2001-02, 2501-02, 2505, 2507, 3501
AES
400N-12.3
400
N
-12.3
Hi,ES,mm,JP,Mc
Contemporary
2504
NAB
500B-16
500
B
-16
Hi,ES,mm
Contemporary
after matrix AP121
RIAA
500R-13.7
500
R
-13.7
ES
Cook
to 1958(?), regular mono records
Cook
500
N
var. -12 to -15
ES,mm
Cook
Cook Laboratories
NAB
500B-16
500
B
-16
JP
Cook (binaural)
inside band -0 roll-off, outs.-11 dB
500
0 ins./-11 outs.
Hi,ES,mil,mm
Coral
sublabel of Decca (Amer.), est. 1949, up to MG4400, with raised matrix
Old RCA
800N-8
800
N
-8
ES
Coral
AES
400N-12.3
400
N
-12.3
JP,Mc
Coral
to 1958(?)
NAB
500B-16
500
B
-16
Hi,mm,JP
Decca (American)
up to MG4400, with raised matrix
Old RCA
800N-8
800
N
-8
ES
Decca (American)
1949-1951
London LP
500C-10.5
500
C
-10.5
mm
Decca (American)
1953, 33⅓ and 45 rpm
AES
400N-12.3
400
N
-12.3
mm,JP,RF
Decca (American)
1953 - Nov 1955, 33⅓ and 45 rpm
NAB
500B-16
500
B
-16
Hi,mm,JP,RF
Decca (British)
1950-1956
London LP
500C-10.5
500
C
-10.5
mm
Decca (British)
ffrr (from ARL1186-1B)***
???London
500
-10
ES
Decca (British)
ffrr (after 6/50)***
500-FLAT
500N-0
500
N
0
ES
Decca (British)
ffrr (from ARL2530-2A)
RIAA
500R-13.7
500
R
-13.7
ES
Decca (European)
1949 - 1954, (Telefunken + Decca UK = TELDEC since 1950)
Telefunken
400N-0
400
N
0
mm
Decca (European)
some 1954-1962
CCIR 78
350N-10.5
350
N
-10.5
mm
Decca (European)
most from 1954
RIAA
500R-13.7
500
R
-13.7
mm
Decca ffrr
1951 [Disputed!][1]
300
-14
JP,RF
Deutsche Grammophon
alias "DGG"
LP
-10
ES
Deutsche Grammophon
1952 - 1955, early LPs, cat. no in a rectangle, bass shelf 50 Hz
IEC N78
350A-10.5
350
A
-10.5
PC,GH,RB
Deutsche Grammophon
cat. no. in an inverted triangle (RIAA symbol)
RIAA
500R-13.7
500
R
-13.7
PC
Deutsche Grammophon
1957, test disc DG 99105, possibly the only disc to DIN 45533
TELDEC
500R-11
500
R
-11
PC
Dial
1948 - 1954, 33⅓ and 45 rpm, bass of EP 45s can be improved by 700Hz t/o
Columbia LP
500C-16
500
C
-16
ES,mil,mm,JP
Dot
to 1958, 33⅓ and 45 rpm
AES
400N-12.3
400
N
-12.3
mm
Ducretet Thomson
10/1954 - 1958, British releases issued by London/Decca UK
London LP
500C-10.5
500
C
-10.5
RF
Elektra
EKL 2-15, 18-20, 24-26 (rel. 1952-55)
Bartok
630N-16
629
N
-16
Hi,ES,mm,JP,Mc
Elektra
EKL 17, 22 (released 1954)
AES
400N-12.3
400
N
-12.3
Hi,ES,mm,JP
Elektra
EKL 16, 21, 23 (rel. 1955) and from 27 up
RIAA
500R-13.7
500
R
-13.7
Hi,ES,mm
EMI-Angel
to 1952, Deutsche Grammophon releases in US
Old Ortho. [R-D]
500N-13.7
500
N
13.7
mm
EMI-HMV
1949 - 1953; matrix 2XEA213-392/XAX561-817 (1N,2N) 33⅓ and 45 rpm
500-FLAT
500N-0
500
N
0
ES
EMI-HMV
1951 - 1954
NAB
500B-16
500
B
-16
mm
EMI-HMV
1954 - 1958?
Columbia LP
500C-16
500
C
-16
mm,JP
EMI-HMV
since July 1953
RIAA
500R-13.7
500
R
-13.7
ES,PC
EMS
1951 - 1956
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP, RF,Hk,Mc
Epic
1948 - 1954, a Columbia sublabel
Columbia LP
500C-16
500
C
-16
ES,mil,mm,JP,RF
Esoteric
ES 500,517 and EST 5,6
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP
Esoteric
to matrix E2KP 9607, mastered by RCA; from ES 533 => RIAA
Old Ortho. [R-D]
500N-13.7
500
N
13.7
ES,Mc
Festival
to 1955
Columbia LP
500C-16
500
C
-16
ES,mil,mm
1948 - 1955; all
Columbia LP
500C-16
500
C
-16
Hi,ES,mm,JP,RF
Fraternity Records
up to F-1013
500-FLAT
500N-0
500
N
0
ES
Good-Time Jazz
1, 5-8
NAB
500B-16
500
B
-16
Hi,ES,mm,JP
Good-Time Jazz
3, 9-19
AES
400N-12.3
400
N
-12.3
Hi,ES,mm,JP,Mc
Good-Time Jazz
2, 4, 20 and up; since Oct 1955 => RIAA
RIAA
500R-13.7
500
R
-13.7
Hi,mm
Handel Society
sublabel of Concert Hall, mostly produced by COL, 1951-1954; others see Concert Hall
Columbia LP
500C-16
500
C
-16
ES,mil,mm
Haydn Society
sublabel of Urania; to matrix XTV20383, mastered by COL; to cat. HS-3062, HSL-84; 1949 to 1954
Columbia LP
500C-16
500
C
-16
Hi,ES,mil,mm,JP, Hk,AT
His Master's Voice (Amer.)
sublabel of RCA; to 1952; since Aug 1952 => "New Ortho." = RIAA
Old Ortho. [R-D]
500N-13.7
500
N
13.7
ES,GH,RM
His Master's Voice (British)
1949 - 7/1953, EMI-UK, matrix nos. LPs: 2XEA213 - 392 and 0XAV145; EPs: 7TEA 19, 7TAV 28; SPs: 7XBA14 - 21 and 7XCS 23, 7XLA 2, 7XRA 30, 7XSB 6, 7XVH 70, 7XEA688, 7XAV227
500-FLAT
500N-0
500
N
0
PC,ES
His Master's Voice (British)
Columbia LP
500C-16
500
C
-16
GH,JP,RF
Kapp
no. 100-103, 1000-1001
Kapp
800N-16
800
N
-16
Hi,ES,mil,mm,JP
Kendall
to 1958(?)
NAB
500B-16
500
B
-16
Hi,ES,mil,mm,JP
L'Oiseau-Lyre
to 1954, to matrix OL50018, prod. by Decca
London LP
500C-10.5
500
C
-10.5
Hi,ES,mil,mm,JP
London
first few
Columbia LP
500C-16
500
C
-16
mm
London
ffrr; after 6/1950***; to matrix ARL1186-1B
500-FLAT
500N-0
500
N
0
ES
London
ffrr; to LL-846; to matrix ARL2530-2A
London LP
500C-10.5
500
C
-10.5
Hi,mil,mm,ES
1948 - 1951, XTV matrix, mastered by COL
Columbia LP
500C-16
500
C
-16
mil,mm,JP,RF,ES
Lyrichord
1951 - 1957(?)
NAB
500B-16
500
B
-16
Hi,mm
Lyrichord
1950 - 1952, mastered by RCA
Old Ortho. [R-D]
500N-13.7
500
N
13.7
PC
Lyrichord
400
-16
mil,JP,RF
Lyrichord
before 1953, (E0-E3 matrix)
???AES
400
-12
ES
Lyrichord
if labeled "629"
Bartok
630C-16
629
C
-16
ES,mil,JP,Mc
Mercury
1948 - 1952, marked "2000Hz/3dB p.octave", MG10000 series
500
-7 (3 dB/oct.)
PC,ES
Mercury
1953 - Oct 1954, 33⅓ and 45s, to matrix MG50026, 7000
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP, PC,Hk,Mc
MGM
to 1952
NAB
500B-16
500
B
-16
GH,mm
MGM
to 1953; to matrix M-G-M E3071; 33⅓ and 45 rpm; bass of 45s can be improved by 700 Hz
MGM [MGM]
500N-12
500
N
-12
ES,mm,JP,Hk,AT, Mc
MGM (British)
1949 - 7/1953, matrix nos. SPs: 7XSM203
500-FLAT
500N-0
500
N
0
PC
Music Treasures
all
Columbia LP
500C-16
500
C
-16
mm
New Records
to 1954
Columbia LP
500C-16
500
C
-16
ES,mil,mm
New Records
mastered by RCA
Old Ortho. [R-D]
500N-13.7
500
N
13.7
ES
Nixa (British)
1950 (founded) to 1955, US matrixes from Westminster
Columbia LP
500C-16
500
C
-16
mm,PC
Nixa (British)
to 1955, if labeled AES
AES
400N-12.3
400
N
-12.3
mm
Nixa (British)
to 1955, if labeled NAB
NAB
500B-16
500
B
-16
mm
Nixa (British)
US matrixes from Polymusic or Urania; mastered by RCA Victor
Old Ortho. [R-D]
500N-13.7
500
N
13.7
PC
Nixa (British)
US matrixes from Lyrichord; see: Lyrichord
PC
Nocturne
LP1-LP3 ,LP5; XP1-XP10
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP
Oceanic
to 1958; to matrix XTV20383, low take nos.
Columbia LP
500C-16
500
C
-16
Hi,ES,mil,mm,JP, Hk
Odeon
300
-10
ES
Overtone
nos. 1-5 produced by COL; from no. 6 => RIAA
Columbia LP
500C-16
500
C
-16
ES,TP,AT
Oxford
to 1958?
Columbia LP
500C-16
500
C
-16
Hi,ES,mil,mm,JP
Pacific Jazz
to 1953
Pacific Jazz
500C-12
500
C
-12
mm
Pacific Jazz
PJLP 1-13; 10" LPs issued in 1953/54
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP
Parlophone
1947-1954
300
-10
ES
Parlophone
1949 - 7/1953, EMI UK, matrix nos. LPs: XEX 60; SPs: 7XCE135; (EPs were probably all RIAA)
500-FLAT
500N-0
500
N
0
PC,ES
Period
1949-1953; up to 576
NAB
500B-16
500
B
-16
ES,mil,mm,Mc
Philharmonia
to 1958?
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP, Hk,Mc
Philips
to 1953, 33⅓ and 45s
Philips
400N-6
400
N
-6
mm
Philips (British)
1953 - ?, LPs with re-issues of 78s masters
CCIR 78
350N-10.5
350
N
-10.5
PC,RB
Polydor
sub-label of Deutsche Grammophon
300
-10
ES,mil
Polymusic
to 1958 (regular mono records)
NAB
500B-16
500
B
-16
ES,mil,mm,JP,RF
Polymusic (binaural)
inside band -0 roll-off, outs.-11 dB (Cook system)
500
0 ins./-11 outs.
Hi,ES,mil,mm
Rachmaninoff Society
to 1958?
Columbia LP
500C-16
500
C
-16
ES,mil,mm
RCA Victor
1949 - 1950, some 33⅓ and 45s; matrix from D9 to E0LRC3980
Old RCA
800N-8
800
N
-8 or -10
ES,mm,Mc
RCA Victor
1949 - 8/1952, first 45 rpm discs (also some 33⅓)
RCA 45 [R-D]
800N-13.7
800
N
-13.7
RM,mm,PC
RCA Victor
1950 - 8/1952, 33⅓ only; matrix from E0LRC3981
Old Ortho. [R-D]
500N-13.7
500
N
13.7
RM,ES,mm,JP,PC, Hk
RCA Victor
since Aug. 1952: "New Orthophonic"; all LM,WDM,DM cat. from 1701; LCT,WCT from 1112; all LHMV,WHMV,LBC,WBC and Extended Play 45s; (from E2RP4094)
RIAA
500R-13.7
500
R
-13.7
RM,Hi,GH,ES,PC
Remington
to 1958(?); to matrix 199-135
NAB
500B-16
500
B
-16
Hi,ES,mm,JP,Mc
Renaissance
1949 - 1952
Columbia LP
500C-16
500
C
-16
mm
Renaissance
1952 - 1954
Pacific Jazz
500C-12
500
C
-12
ES,mil,mm,Mc
Riverside
to Sept (?) 1955
AES
400N-12.3
400
N
-12.3
Hi,ES,mil,mm,JP
Stradivari
to 1958
Columbia LP
500C-16
500
C
-16
ES,mil,mm
Telefunken
1951 - 1953, (Telefunken + Decca UK = TELDEC since 1950)
Telefunken
400N-0
400
N
0
mil,mm
Telefunken
1954 - 1962
CCIR 78
350N-10.5
350
N
-10.5
mm,RB
Tempo
1948 - 1953
Columbia LP
500C-16
500
C
-16
mm
Tempo
1954 - 1958(?)
NAB
500B-16
500
B
-16
Hi,GH,ES,mm,JP
Transradio
to 1958(?)
Columbia LP
500C-16
500
C
-16
Hi,ES,mm,JP
Urania
most; to matrix XTV20383 (low take nos), mastered by COL; 1949 to 1954; since 1953 change to RIAA
Columbia LP
500C-16
500
C
-16
Hi,mil,mm,ES,Hk, AT
Urania
Cat. nos. URLP 224, 603, 7059, 7063, 7065, 7066, 7069; ca 1952/53
AES
400N-12.3
400
N
-12.3
Hi,mm,JP,Mc,AT
Urania
to matrix E2KP9243, mastered by RCA; 1950 to 1953
Old Ortho. [R-D]
500N-13.7
500
N
13.7
PC,ES,AT
Vanguard
VRS 411-42, 6000-18, up to XTV20386; VRS 7001-11, 8001-04; since 1954 RIAA
Columbia LP
500C-16
500
C
-16
Hi,ES,JP,GH,Hk AT
Vox
1948 - 1954; up to matrix XTV20386, PL8400 or labeled "Lp"; mastered by COL
Columbia LP
500C-16
500
C
-16
GH,mil,mm,JP,ES, PC,Hk
Vox
labeled AES
AES
400N-12.3
400
N
-12.3
mm
Vox
1951 - Oct 1954
NAB
500B-16
500
B
-16
Hi,mil,mm,JP,RF
Westminster
1948 - Oct 1955, to matrix XTV20383 low take nos.; mastered by Columbia
Columbia LP
500C-16
500
C
-16
Hi,ES,mil,mm,JP, PC
Westminster
EO matrix
Old RCA
800N-8
800
N
-8
ES
Westminster
to matrix E2KP9607, mastered by RCA
Old Ortho. [R-D]
500N-13.7
500
N
13.7
ES
Westminster
labeled AES
AES
400N-12.3
400
N
-12.3
Hi,mil,mm,JP,RF
Westminster
labeled NARTB
NAB
500B-16
500
B
-16
GH,JP
[MGM] ... used a special “MGM curve” 500N-12. Play back with “RCA Old Orthophonic” 500N-12.3!
[R-D] ... Roll-off is frequently listed as between 10 and 12 dB. But this “flattening off” to ca 10 dB at 10 kHz was an intentional high cut which must not be compensated for in playback. Thus a setting of 13.7 dB is correct!
[R-C] ... RCA recommends replaying with “Old Ortho.”. High frequencies were cut off more deliberately at 8,500 Hz (with no effect on playback EQ!) than in later years. [cf. Moyer]
[R-B] ... From c. 1931 to 1938 high frequencies were even cut off at 5,500 Hz! The bass curve is “subject to some question, however,” since it was extensively modified by electronic filters and mechanical damping. But RCA found 500 Hz to be the best average characteristic and used this in re-recording pre-1938 masters. So in principle: “Old Ortho.” for playback again! [cf. Moyer]
GH ... Graumann, Heinz; Schallplatten-Schneidkennlinien und ihre Entzerrung, in: FUNKSCHAU 1958, Heft 15, pp 359 ff
Hi ... High Fidelity Magazine, October 1955 with revised “Dialing Your Disks” table.
Hk ... Heathkit; Pre-amplifier WA-P2 manual; Heath Comp., Benton Harbor, Michigan; 1954
ia ... iasa – International Association of Sound and Audiovisual Archives: replay EQ
JP ... James R. Powell Jr., “Audiophile’s Guide to Phonorecord Playback Equalizer Settings”, in: ARSC Journal 20-1, Spring 1989, pp 14-23
Mc ... McIntosh Audio Compensator C-8 manual (1956). Please note that McIntosh lists all labels using "Columbia LP" curve with 750 Hz in error.
mil ... Millennia Music and Media Systems manufacturer of LOCi pre-ampand other high end professional audio recording products. Their EQ chart was initially part of the manual of the LPE-2 pre-amp. A revised version was released in 2010 as “MM Legacy Recordings“ chart.
mm ... MidiMagic is probably the most comprehensive and reliable websource. Data were researched in the 1970s and are based on publications of the 1950s.
PC ...Peter Copeland, Manual of Analogue Sound Restoration Techniques, The British Library, 2014
RB ... Richard Brice in PspatialAudio
RF ... Russell Fisher / W.A.M.S.
RM ... Robert C. Moyer, Evolution of a Recording Curve; in: Audio Engineering, vol.37, no.7, July 1953; pp 19-22, 53-54. (about "New Orthophonic" and previous RCA curves)
TP ... Tom Packard of Packburn Electronics, Inc. Personal correspondence re Overtone.
Discographical information about catalogue numbers, matrix numbers and release dates is based on Both Sides Now, The Online Discographical Project, 45worlds (who also show 78 rpm and LPs), Decca Classical discography by Philip Stuart (July 2009 edition], Record Information Services (post-war UK labels), Yale University, Music Cataloging, Grammophon-Platten.de (German/European labels) and Discogs (database and trading platform) as well as some discographies specialized on specific labels.
500-FLAT 500N-0 was used by British Columbia, EMI, His Master’s Voice, MGM and Parlophone between 1931 and 1953. Later releases have modified treble.
American 78 – 250N-6/250N-8: Common setting for many American shellacs. This curve here is a compromise between both varieties with -7 dB roll-off.
BBC 2dB/octave: used by smaller British labels (Aco, Broadcast, Linguaphone, Vocalion, …) from 1926 to 1933, which had their recordings mastered by BBC with the Marconi system.
Blumlein300 - 300N-0: A British traditional for Gramophone Company, Decca, Columbia and EMI (1930s – 1944).
Columbia 78 – 300N-16 is the right one for American CBS-Columbia shellacs (1938 - 1948).
AES – 400N-12.3: Intended by AES (Audio Engineering Society) as a replay standard for many American shellacs of the 1930s and 1940s. Also used by many record producers as a recording curve for N78 and M33 between 1951 and 1958. Also to replay Capitol and Capitol-Cetra recordings with “Capitol curve” 400N-12.7 (1951 – 1955).
Columbia LP – 500C-16: For Columbia and many other labels, mostly 33⅓ LPs (M33).
London LP – 500C-10.5: Used for British Decca and for London / Decca releases in the US featuring the ffrr (full frequency range recording) system. Mostly 33⅓ LPs (1949 – 1956)
NAB – 500B-16: A widely adopted standard of NAB / NARTB (National Association of Radio and Television Broadcasters) requiring ca. 6 dB more bass boost than Columbia LP
RCA 45 – 800N-13.7: RCA’s curve for their 45 rpm discs (1949 – August 1952). Possibly identical with Technichord’s “Technichord curve” 800N-12 already used since 1938 for their 78s.
Label
Remarks
Curve Name
Code
turnover bass [Hz]
bass shelf
treble roll-off [dB @ 10kHz]
_Electrical 78's (general)
1925-1938
300
Label
Remarks
Curve Name
Code
turnover bass [Hz]
bass shelf
treble roll-off [dB @ 10kHz]
Allegro
1948 - 1956
Columbia LP
500C-16
500
C




0
-16