LV2
type: Ontology
comment: An extensible open standard for audio plugins.
imports: doap#

Specification
type: Class
subclass of: Project
comment: An LV2 specification.

Markdown
type: Datatype
on datatype: string
comment: A string in Markdown syntax.

documentation
type: Property
type: AnnotationProperty
range: Literal
comment: Extended documentation.

Plugin Base
type: Class
comment: Base class for a plugin-like resource.

Plugin
type: Class
subclass of: Plugin Base
comment: An LV2 plugin.
subclass of: Restriction
  on property: name
  some values from: PlainLiteral
  comment: A plugin MUST have at least one untranslated doap:name.
subclass of: Restriction
  on property: port
  all values from: Port
  comment: All ports on a plugin MUST be fully specified lv2:Port instances.

Port Base
type: Class
comment: Base class for a port-like resource.
subclass of: Restriction
  on property: symbol
  cardinality: 1
  comment: A port MUST have exactly one lv2:symbol.

Port
type: Class
comment: An LV2 plugin port.
subclass of: Port Base
subclass of: Restriction
  on property: name
  min cardinality: 1
  comment: A port MUST have at least one lv2:name.

Input Port
type: Class
subclass of: Port
comment: A port connected to constant data which is read during `run()`.

Output Port
type: Class
subclass of: Port
comment: A port connected to data which is written during `run()`.

Control Port
type: Class
subclass of: Port
comment: A port connected to a single `float`.

Audio Port
type: Class
subclass of: Port
comment: A port connected to an array of float audio samples.

CV Port
type: Class
subclass of: Port
comment: A port connected to an array of float control values.

port
type: Property
type: ObjectProperty
domain: Plugin Base
range: Port Base
comment: A port (input or output) on this plugin.

project
type: Property
type: ObjectProperty
range: Project
comment: The project this is a part of.

prototype
type: Property
type: ObjectProperty
comment: The prototype to inherit properties from.

minor version
type: Property
type: DatatypeProperty
range: nonNegativeInteger
comment: The minor version of this resource.

micro version
type: Property
type: DatatypeProperty
range: nonNegativeInteger
comment: The micro version of this resource.

binary
type: Property
type: ObjectProperty
range: Thing
comment: The binary of this resource.

applies to
type: Property
type: ObjectProperty
range: Plugin
comment: The plugin this resource is related to.

index
type: Property
type: DatatypeProperty
type: FunctionalProperty
range: unsignedInt
comment: A non-negative zero-based 32-bit index.

Symbol
type: Datatype
on datatype: string
with restrictions:
  pattern: [_a-zA-Z][_a-zA-Z0-9]*
comment: A short restricted name used as a strong identifier.

symbol
type: Property
type: DatatypeProperty
type: FunctionalProperty
range: Symbol
range: PlainLiteral
comment: The symbol that identifies this resource in the context of its parent.

name
type: Property
type: DatatypeProperty
range: string
comment: A display name for labeling in a user interface.

short name
type: Property
type: DatatypeProperty
range: string
comment: A short display name for labeling in a user interface.

Designation
type: Class
subclass of: Property
comment: A designation which defines the meaning of some data.

Channel
type: Class
subclass of: Designation
comment: An individual channel, such as left or right.

Parameter
type: Class
subclass of: Designation
subclass of: Property
comment: A property that is a plugin parameter.

designation
type: Property
type: ObjectProperty
type: FunctionalProperty
range: Property
comment: The designation that defines the meaning of this input or output.

latency
type: Property
type: DatatypeProperty
range: nonNegativeInteger
comment: The latency introduced, in frames.

free-wheeling
type: Property
type: DatatypeProperty
range: boolean
comment: Whether processing is currently free-wheeling.

enabled
type: Property
type: DatatypeProperty
range: int
comment: Whether processing is currently enabled (not bypassed).

control
type: Channel
comment: The primary control channel.

Point
type: Class
comment: An interesting point in a value range.

Scale Point
type: Class
subclass of: Point
comment: A single `float` Point for control inputs.

scale point
type: Property
type: ObjectProperty
range: Scale Point
comment: A scale point of a port or parameter.

default
type: Property
type: DatatypeProperty
type: FunctionalProperty
comment: The default value for this control.

minimum
type: Property
type: DatatypeProperty
type: FunctionalProperty
comment: The minimum value for this control.

maximum
type: Property
type: DatatypeProperty
type: FunctionalProperty
comment: The maximum value for this control.

Feature
type: Class
comment: An additional feature which may be used or required.

optional feature
type: Property
type: ObjectProperty
range: Feature
comment: An optional feature that is supported if available.

required feature
type: Property
type: ObjectProperty
range: Feature
comment: A required feature that must be available to run.

Extension Data
type: Class
comment: Additional data defined by an extension.

extension data
type: Property
type: ObjectProperty
range: Extension Data
comment: Extension data provided by a plugin or other binary.

is live
type: Feature
comment: Plugin has a real-time dependency.

in-place broken
type: Feature
comment: Plugin requires separate locations for input and output.

hard real-time capable
type: Feature
comment: Plugin is capable of running in a hard real-time environment.

Port Property
type: Class
comment: A particular property that a port has.

port property
type: Property
type: ObjectProperty
domain: Port
range: Port Property
comment: A property of this port hosts may find useful.

connection optional
type: Port Property
comment: The property that this port may be connected to NULL.

reports latency
type: Port Property
deprecated: true
comment: Control port value is the plugin latency in frames.

toggled
type: Port Property
comment: Control port value is considered a boolean toggle.

sample rate
type: Port Property
comment: Control port bounds are interpreted as multiples of the sample rate.

integer
type: Port Property
comment: Control port values are treated as integers.

enumeration
type: Port Property
comment: Control port scale points represent all useful values.

is side-chain
type: Port Property
comment: Signal for port should not be considered a main input or output.

Generator Plugin
type: Class
subclass of: Plugin
comment: A plugin that generates new sound internally.

Instrument Plugin
type: Class
subclass of: Generator Plugin
comment: A plugin intended to be played as a musical instrument.

Oscillator Plugin
type: Class
subclass of: Generator Plugin
comment: A plugin that generates output with an oscillator.

Utility Plugin
type: Class
subclass of: Plugin
comment: A utility plugin that is not a typical audio effect or generator.

Converter Plugin
type: Class
subclass of: Utility Plugin
comment: A plugin that converts its input into a different form.

Analyser Plugin
type: Class
subclass of: Utility Plugin
comment: A plugin that analyses its input and emits some useful information.

Mixer Plugin
type: Class
subclass of: Utility Plugin
comment: A plugin that mixes some number of inputs into some number of outputs.

Simulator Plugin
type: Class
subclass of: Plugin
comment: A plugin that aims to emulate some environmental effect or musical equipment.

Delay Plugin
type: Class
subclass of: Plugin
comment: An effect that intentionally delays its input as an effect.

Modulator Plugin
type: Class
subclass of: Plugin
comment: An effect that modulats its input as an effect.

Reverb Plugin
type: Class
subclass of: Plugin
subclass of: Simulator Plugin
subclass of: Delay Plugin
comment: An effect that adds reverberation to its input.

Phaser Plugin
type: Class
subclass of: Modulator Plugin
comment: An effect that periodically sweeps a filter over its input.

Flanger Plugin
type: Class
subclass of: Modulator Plugin
comment: An effect that mixes slightly delayed copies of its input.

Chorus Plugin
type: Class
subclass of: Modulator Plugin
comment: An effect that mixes significantly delayed copies of its input.

Filter Plugin
type: Class
subclass of: Plugin
comment: An effect that manipulates the frequency spectrum of its input.

Lowpass Filter Plugin
type: Class
subclass of: Filter Plugin
comment: A filter that attenuates frequencies above some cutoff.

Bandpass Filter Plugin
type: Class
subclass of: Filter Plugin
comment: A filter that attenuates frequencies outside of some band.

Bandstop Filter Plugin
type: Class
subclass of: Filter Plugin
comment: A filter that attenuates frequencies inside of some band.

Highpass Filter Plugin
type: Class
subclass of: Filter Plugin
comment: A filter that attenuates frequencies below some cutoff.

Comb Filter Plugin
type: Class
subclass of: Filter Plugin
comment: A filter that adds a delayed version of its input to itself.

Allpass Filter Plugin
type: Class
subclass of: Filter Plugin
comment: A filter that changes the phase relationship between frequency components.

EQ Plugin
type: Class
subclass of: Filter Plugin
comment: A plugin that adjusts the balance between frequency components.

Parametric EQ Plugin
type: Class
subclass of: EQ Plugin
comment: A plugin that adjusts the balance between configurable frequency components.

Multiband EQ Plugin
type: Class
subclass of: EQ Plugin
comment: A plugin that adjusts the balance between a fixed set of frequency components.

Spatial Plugin
type: Class
subclass of: Plugin
comment: A plugin that manipulates the position of audio in space.

Spectral Plugin
type: Class
subclass of: Plugin
comment: A plugin that alters the spectral properties of audio.

Pitch Shifter Plugin
type: Class
subclass of: Spectral Plugin
comment: A plugin that shifts the pitch of its input.

Amplifier Plugin
type: Class
subclass of: Dynamics Plugin
comment: A plugin that primarily changes the volume of its input.

Envelope Plugin
type: Class
subclass of: Dynamics Plugin
comment: A plugin that applies an envelope to its input.

Distortion Plugin
type: Class
subclass of: Plugin
comment: A plugin that adds distortion to its input.

Waveshaper Plugin
type: Class
subclass of: Distortion Plugin
comment: An effect that alters the shape of input waveforms.

Dynamics Plugin
type: Class
subclass of: Plugin
comment: A plugin that alters the envelope or dynamic range of its input.

Compressor Plugin
type: Class
subclass of: Dynamics Plugin
comment: A plugin that reduces the dynamic range of its input.

Expander Plugin
type: Class
subclass of: Dynamics Plugin
comment: A plugin that expands the dynamic range of its input.

Limiter Plugin
type: Class
subclass of: Dynamics Plugin
comment: A plugin that limits its input to some maximum level.

Gate Plugin
type: Class
subclass of: Dynamics Plugin
comment: A plugin that attenuates signals below some threshold.

Function Plugin
type: Class
subclass of: Utility Plugin
comment: A plugin whose output is a mathematical function of its input.

Constant Plugin
type: Class
subclass of: Generator Plugin
comment: A plugin that emits constant values.

MIDI Plugin
type: Class
subclass of: Plugin
comment: A plugin that primarily processes MIDI messages.