LV2 Port Groups

URI:
http://lv2plug.in/ns/dev/port-groups
Namespaces:
lv2: http://lv2plug.in/ns/lv2core#
pg: http://lv2plug.in/ns/dev/port-groups#
Authors:
Lars Luthman
Dave Robillard

Abstract

Defines semantic groupings of LV2 ports

About this Document

This document describes "LV2 Port Groups" (http://lv2plug.in/ns/dev/port-groups), an extension to LV2.

This is an XHTML+RDFa page automatically generated from lv2_port_groups.ttl by lv2specgen. The data related aspects of this extension are described here, the code related aspects are documented in the corresponding header, lv2_port_groups.h. You may use, reproduce, redistribute, and create derivative works of this document, but the extension URI must be changed if any changes are made that contradict this specification, or would break an implementation conforming to this specification.

Comments are welcome, please direct discussion to devel@lists.lv2plug.in.

Contents

  1. Index
  2. Documentation
  3. References

1. Index

Classes
Group, Role,
Properties
encodedType, hasRole, inGroup, mainGroup, optionalRole, requiredRole, sideChainOf, source,
Instances
AmbisonicBH1V0Group, AmbisonicBH1V1Group, AmbisonicBH2V0Group, AmbisonicBH2V1Group, AmbisonicBH2V2Group, AmbisonicBH3V0Group, AmbisonicBH3V1Group, AmbisonicBH3V2Group, AmbisonicBH3V3Group, amplitude, attack, centerChannel, cutoffFrequency, decay, delay, EnvelopeControlGroup, FivePointOneGroup, FivePointZeroGroup, FourPointZeroGroup, frequency, hold, leftChannel, leftRearChannel, leftSurroundChannel, MidSideGroup, MonoGroup, OscillatorControlGroup, pulseWidth, ratio, release, resonance, rightChannel, rightRearChannel, rightSurroundChannel, SevenPointOneGroup, sideChannel, SixPointOneGroup, StereoGroup, subChannel, surroundChannel, sustain, ThreePointZeroGroup, threshold, waveform,

2. Reference

Class pg:Group

LV2 Port Group

A grouping of ports that can be logically considered a "stream", e.g. two audio ports in a group forming a stereo stream. Both inputs and outputs can form a group, which allows describing to the host which outputs correspond to which inputs. In this case, outputs with a given role correspond to the inputs in the same group with that role (though the output and input roles of a group do not necessarily match). The pg:source predicate can also be used to describe this correspondence between separate ports/groups.

Restriction on property lv2:symbol

A pg:Group MUST have at least one string lv2:symbol. This symbol must be unique according to the same rules as the lv2:symbol for an lv2:Port, where group symbols and port symbols reside in the same namespace. In other words, a group on a plugin MUST NOT have the same symbol as another group or a port on that plugin. Rationale: Hosts or bindings may find it useful to construct an identifier to refer to groups for the same reasons this is useful for ports.

owl:hasValue
xsd:string
In domain of
pg:requiredRole
pg:optionalRole
pg:sideChainOf
pg:source
pg:encodedType
In range of
pg:sideChainOf
pg:source
pg:mainGroup
pg:inGroup

Class pg:Role

Port role

The role of a port with respect to its plugin or group. If the port is a member of a group (has an :inGroup property) the role is relevant with respect to that group. Otherwise the role is relevant with respect to the plugin.

In range of
pg:hasRole

Property pg:encodedType

Is an encoding of

Indicates this group is an encoding of some other group type, e.g. 4.0 encoded in 2.0 would be a StereoGroup with pg:encodedType FourPointZeroGroup.

Domain
pg:Group
Range
rdfs:Class

Property pg:hasRole

Has role

Indicates that this port has a particular role with respect to its enclosing plugin or group (whichever is smaller). A port may have several roles if it makes sense to do so (though some Role or Group definition may forbid this).

Domain
lv2:Port
Range
pg:Role

Property pg:inGroup

In port group

Indicates that this port is a part of a group of ports on the plugin. Ports that have a meaningful "role" that may be useful to hosts SHOULD also have a :role property, otherwise ports in the group have no meaningful order.

Domain
lv2:Port
Range
pg:Group

Property pg:mainGroup

Main port group

Indicates that this group should be considered the "main" inputs/outputs of the plugin, e.g. it probably makes sense to just connect main groups and set some controls. A plugin MUST NOT have more than one :mainGroup property. High-level hosts that simply want to insert an plugin in a given stream should use this property to determine where the plugin 'fits'.

Domain
lv2:Plugin
Range
pg:Group

Property pg:optionalRole

May have port with role

Indicates that a group MAY have a port with a particular role.

Domain
pg:Group
Range
lv2:Port

Property pg:requiredRole

Has port with role

Indicates that a group always has a port with a particular role.

Domain
pg:Group
Range
lv2:Port

Property pg:sideChainOf

Side-chain of

Indicates that this port or group should be considered a "side chain" of some other port or group. The precise definition of "side chain" depends on the plugin, but in general this group should be considered a modifier to some other group, rather than an independent input itself.

Domain
pg:Group
lv2:Port
Range
pg:Group
lv2:Port

Property pg:source

Source group

Indicates that this port or group should be considered the "result" of some other port or group. This property only makes sense on groups with outputs when the source is a group with inputs. This can be used to convey a relationship between corresponding input and output groups with different types, e.g. a mono->stereo plugin.

Domain
pg:Group
lv2:Port
Range
pg:Group
lv2:Port

Instance pg:AmbisonicBH1V0Group

Ambisonic B stream of horizontal order 1 and vertical order 0.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel

Instance pg:AmbisonicBH1V1Group

Ambisonic B stream of horizontal order 1 and vertical order 1.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:zChannel

Instance pg:AmbisonicBH2V0Group

Ambisonic B stream of horizontal order 2 and vertical order 0.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:uChannel
pg:vChannel

Instance pg:AmbisonicBH2V1Group

Ambisonic B stream of horizontal order 2 and vertical order 1.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:zChannel
pg:uChannel
pg:vChannel

Instance pg:AmbisonicBH2V2Group

Ambisonic B stream of horizontal order 2 and vertical order 2.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:zChannel
pg:rChannel
pg:sChannel
pg:tChannel
pg:uChannel
pg:vChannel

Instance pg:AmbisonicBH3V0Group

Ambisonic B stream of horizontal order 3 and vertical order 0.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:uChannel
pg:vChannel
pg:pChannel
pg:qChannel

Instance pg:AmbisonicBH3V1Group

Ambisonic B stream of horizontal order 3 and vertical order 1.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:zChannel
pg:uChannel
pg:vChannel
pg:pChannel
pg:qChannel

Instance pg:AmbisonicBH3V2Group

Ambisonic B stream of horizontal order 3 and vertical order 2.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:zChannel
pg:rChannel
pg:sChannel
pg:tChannel
pg:uChannel
pg:vChannel
pg:pChannel
pg:qChannel

Instance pg:AmbisonicBH3V3Group

Ambisonic B stream of horizontal order 3 and vertical order 3.
Type
pg:Group
pg:hasRole
pg:wChannel
pg:xChannel
pg:yChannel
pg:zChannel
pg:rChannel
pg:sChannel
pg:tChannel
pg:uChannel
pg:vChannel
pg:kChannel
pg:lChannel
pg:mChannel
pg:nChannel
pg:oChannel
pg:pChannel
pg:qChannel

Instance pg:amplitude

Amplitude
Type
pg:Role

Instance pg:attack

Attach
Type
pg:Role

Instance pg:centerChannel

Center
Type
pg:Role

Instance pg:cutoffFrequency

Cutoff Frequency
Type
pg:Role

Instance pg:decay

Decay
Type
pg:Role

Instance pg:delay

Delay
Type
pg:Role

Instance pg:EnvelopeControlGroup

The controls for an envelope.
Type
pg:Group
pg:mayHavePort
pg:delay
pg:attack
pg:hold
pg:decay
pg:sustain
pg:release

Instance pg:FivePointOneGroup

5.1 Surround (3-2 stereo)
Type
pg:Group
pg:hasRole
pg:leftChannel
pg:rightChannel
pg:centerChannel
pg:leftSurroundChannel
pg:rightSurroundChannel
pg:lfeChannel

Instance pg:FivePointZeroGroup

5.0 Surround (3-2 stereo)
Type
pg:Group
pg:hasRole
pg:leftChannel
pg:rightChannel
pg:centerChannel
pg:leftSurroundChannel
pg:rightSurroundChannel

Instance pg:FourPointZeroGroup

4.0 Surround (Quadraphonic)
Type
pg:Group
pg:hasRole
pg:leftChannel
pg:rightChannel
pg:centerChannel
pg:surroundChannel

Instance pg:frequency

Frequency
Type
pg:Role

Instance pg:hold

Hold
Type
pg:Role

Instance pg:leftChannel

Left
Type
pg:Role

Instance pg:leftRearChannel

Left Rear
Type
pg:Role

Instance pg:leftSurroundChannel

Left Surround
Type
pg:Role

Instance pg:MidSideGroup

Mid-Side Stereo
Type
pg:Group
pg:hasRole
pg:centerChannel
pg:sideChannel

Instance pg:MonoGroup

Mono
Type
pg:Group
pg:hasRole
pg:centerChannel

Instance pg:OscillatorControlGroup

The controls for an oscillator.
Type
pg:Group
pg:mayHavePort
pg:frequency
pg:amplitude
pg:waveform
pg:pulseWidth

Instance pg:pulseWidth

Pulse Width
Type
pg:Role

Instance pg:ratio

Ratio
Type
pg:Role

Instance pg:release

Release
Type
pg:Role

Instance pg:resonance

Resonance
Type
pg:Role

Instance pg:rightChannel

Right
Type
pg:Role

Instance pg:rightRearChannel

Right Rear
Type
pg:Role

Instance pg:rightSurroundChannel

Right Surround
Type
pg:Role

Instance pg:SevenPointOneGroup

7.1 Surround
Type
pg:Group
pg:hasRole
pg:leftChannel
pg:rightChannel
pg:centerChannel
pg:leftSurroundChannel
pg:rightSurroundChannel
pg:leftRearChannel
pg:rightRearChannel
pg:lfeChannel

Instance pg:sideChannel

Side
Type
pg:Role

Instance pg:SixPointOneGroup

6.1 Surround
Type
pg:Group
pg:hasRole
pg:leftChannel
pg:rightChannel
pg:centerChannel
pg:leftSurroundChannel
pg:rightSurroundChannel
pg:centerRearChannel
pg:lfeChannel

Instance pg:StereoGroup

Stereo
Type
pg:Group
pg:hasRole
pg:leftChannel
pg:rightChannel

Instance pg:subChannel

Sub (LFE)
Type
pg:Role

Instance pg:surroundChannel

Surround
Type
pg:Role

Instance pg:sustain

Sustain
Type
pg:Role

Instance pg:ThreePointZeroGroup

3.0 Surround
Type
pg:Group
pg:hasRole
pg:leftChannel
pg:rightChannel
pg:surroundChannel

Instance pg:threshold

Threshold
Type
pg:Role

Instance pg:waveform

Waveform
Type
pg:Role

3. References

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels . Internet Engineering Task Force, 1997.