Audacity Dev
Githubaudacityteam.org
en - English (main)
en - English (main)
  • Audacity Dev resources
  • Getting started
    • BUILDING.md
    • Introduction to Audacity development
    • Codebase overview
    • Coding standards
      • Making Audacity Doxygenable
    • Strings & translatable code
  • Scripting
    • Developing your own plugins and scripts
    • Scripting reference
    • Creating your own Nyquist Plugins
      • Headers Reference
      • Plugin Reference
      • Widgets Reference
      • Basics
        • Delay Basics
        • Independent Stereo Volume Basics
        • Prompt Basics
        • Volume Basics
      • Tutorials
        • File Button Tutorial
        • Macro Tutorial
        • Property List Tutorial
        • Stereo Tracks Tutorial
        • The *SCRATCH* Symbol Tutorial
    • Creating custom themes
  • Refactoring
    • 4 steps to make an effect stateless
Powered by GitBook
On this page
  • Plugins
  • Scripts
Edit on GitHub
Export as PDF
  1. Scripting

Developing your own plugins and scripts

PreviousStrings & translatable codeNextScripting reference

Last updated 2 years ago

Plugins

Audacity supports the following formats:

  • Nyquist (Lisp or SAL) Audacity's built-in scripting format. Allows for easy generation of UI elements and already is tuned to Audacity's needs. Note that this plugin format is not supported as realtime effects. Documentation: Creating your own Nyquist Plugins

  • VST3 (C++) The industry standard for plugins. Widely supported across Audacity, Musescore and most DAWs. Documentation:

  • LV2 (C, C++, other C-compatible languages) The Linux plugin standard. Widely supported across open source software. Documentation:

  • Vamp (C++, Python) An easy-to-develop-for framework for audio analyzers. Documentation:

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.

Scripts

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:

  • Macros You can use Audacity's macros feature to chain effects and actions together. This can be exported as a file. Documentation:

If you have found a macro or script which you find universally applicable, you can share it in the scripts section.

https://steinbergmedia.github.io/vst3_doc/vstsdk/index.html
https://lv2plug.in/book/
https://www.vamp-plugins.org/develop.html
https://manual.audacityteam.org/man/scripting.html
https://manual.audacityteam.org/man/macros.html