Creating your own Plug-in

From Audacity Wiki
Revision as of 11:45, 25 August 2007 by James (talk | contribs) (Added table of what you need to develop Plug-ins)
Jump to: navigation, search

Audacity is designed to support plug-in modules that extend its functionality.

Type of Plug-in Language To Set This Up for Writing Your Own
Nyquist Based on XLisp Built in to Audacity. A Separate debugger is also available.
Batch Chain None Built in to Audacity. The built in GUI allows you to select a sequence of existing commands, set their parameters and select a set of files to apply them to. Simple, but goes a long way.
External Script Perl (Windows) needs standard install of e.g. ActivePerl (Linux) any perl package. This is based on batch chains. As this is still a work-in-progress you will need C++ to add hooks from existing commands that aren't yet available.
LADSPA C/C++ development Needs LADSPA SDK (Open Source) to develop.
VST C/C++ development Compile Audacity with VST enabled. Needs VST SDK (Proprietary) to develop, for which you need a license agreement.
Vamp C/C++ development Vamp SDK is provided as part of Audacity source code.
Hi-Jacker C/C++ development Same as for Audacity development.
wxWidgets Plug-in C/C++ development Same as for Audacity development.


Script

Nyquist

There is a built in XLisp interpreter that is used mainly for creating new sound effects. It can also be used to create labels. It's mature, stable, and has been in Audacity from the start. Nyquist. Only limited documentation is available.

Batch Chains

Limited ability to do 'the same thing' to a large number of files. Originally written for cleaning up lots of audio tapes, applying noise removal, removing long silences too and converting to mp3. Stable, but quite limited in what it can do.

Perl

Still very very experimental. Under windows you can use ActivePerl to drive Audacity. To use this (August 2007) you should be an experienced C++ developer too, as you will almost certainly need to add code into Audacity to process commands which are not yet handled.

Other Plug-Ins

LADSPA

Sound effects. C or C++, Ladspa Plug-in. GUI is built from simple instructions.

VST

VST Plug-in. GUI is built by the plug in directly.

Vamp

Work in progress. C or C++. GUI is built from simple instructions. Similar in concept to LADSPA except this it is designed particularly for analysis of sound, so for example finding particular words in a spoken text.

Hi-Jacker

Plug-In that takes over the entire GUI of Audacity and uses the underlying services for its own ends. (not to be confused with 'Jack')

wxWidgets Plug-In

Work in progress. A still experimental method for adding any feature to Audacity as a plug in. The plug in can use any feature of wxWidgets, and has an API for interaction with the Audacity program.