Many audio synthesis and recording packages are in use or in development on Linux.
These work in many different ways.
LADSPA provides a standard way for "plugin" audio processors to be used with a wide range of these packages.

A plugin is an object that can create audio and control streams, based on other audio and control streams. In this system, the difference between audio and control streams is only in their frequency - an audio stream has a fixed sample rate, a control stream can have a variable sample rate.

A plugin consists of a description, a number of ports that can send or recieve audio or control streams, and methods to connect the streams and run the plugin etc. See Audio::LADSPA::Plugin for more info.

The buffer object implements the audio and control streams. You can connect multiple ports from different plugins to a buffer, and they will read from it or write to it, according to their port type. The plugin and buffer objects do not protect you from making silly (or even dangerous) connections, so take care when connecting, or use Audio::LADSPA::Network.

The Audio::LADSPA::Network class contains a plugin network; a number of plugins and buffers that are connected and need to be run in sync. The network can take care of testing the connections and keeping all plugins running at the same sample rate.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.