I made a post a
while back defining all the XAP terminology to date. Read
it if you haven't - it is useful :)
I was hoping something of this sort existed. It would be very helpful if you
could put the list of XAP terminology on the webpage. It would help keep
Here are the ones we all agree on:
* Plugin:
A chunk of code, loaded or not, that implements this API (e.g. a .so
file or a running instance).
* Host
The program responsible for loading and controlling Plugins.
* Instrument/Source:
An instance of a Plugin that supports the instrument API and is used
to generate audio signals. Many Instruments will implement audio
output but not input, though they may support both and be used an an
Effect, too.
* Effect:
An instance of a Plugin that supports both audio input and output.
* Output/Sink:
An instance of a Plugin that can act as a terminator for a chain of
Plugins. Many Outputs will will support audio input but not output,
though they may support both and be used as an Effect, too.
* Voice:
A playing sound within an Instrument. Instruments may have multiple
Voices, or only one Voice. A Voice may be silent but still active.
* Event:
A time-stamped notification of some change of something.
And some definitions that depend on other unfinished definitions:
* Control:
A knob, button, slider, or virtual thing that modifies behavior of
the Plugin. Controls can be master (e.g. master volume),
per-Bay (e.g. channel pressure) or per-Voice (e.g. aftertouch).
* Port:
An audio input or output. Ports are on AUDIO Bays.
And some outstanding questions to be answered later (too many discussions
gets me too confused!)
* Preset:
A stored or loaded set of Control values.
//FIXME: presets can be multi-channel or single-channel
* EventQueue:
A control input or output. Plugins may internally have as many
EventQueues as they deem necessary. The Host will ask the Plugin
for the EventQueue for each Control.
//FIXME: what is the full list of things that have a queue?
// Controls, Plugin(master), each Channel?
And lastly - undecided (again, we'll get there, lets work out
voice-allocation first :)
VVID, Bay, Channel, Templates, etc.