There are three broad classes of audio plug-in: those which transform existing audio samples, those which generate new audio samples through sound synthesis, and those which analyze existing audio samples.[2] Although all plug-in types can technically perform audio analysis, only specific formats provide a mechanism for analysis data to be returned to the host.[3]
Instances
The program used to dynamically load audio plug-ins is called a plug-in host. Example hosts include Bidule, Gig Performer, Mainstage, REAPER, and Sonic Visualiser. Plug-ins can also be used to host other plug-ins.[4] Communication between host and plug-in(s) is determined by a plug-in application programming interface (API). The API declares functions and data structures that the plug-in must define to be usable by a plug-in host. Additionally, a functional specification may be provided, which defines how the plug-in should respond to function calls, and how the host should expect to handle function calls to the plug-in. The specification may also include documentation about the meaning of variables and data structures declared in the API. The API header files, specification, shared libraries, license, and documentation are sometimes bundled together in a software development kit (SDK).[5][6][7]