From aae93ebd722e93200a7218debb515c2cad6a8ae2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 28 Mar 2012 05:03:03 +0000 Subject: Explicitly allow group sharing. Separate input and output groups. --- lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl | 293 ++++++++++++---------- 1 file changed, 161 insertions(+), 132 deletions(-) (limited to 'lv2/lv2plug.in/ns') diff --git a/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl b/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl index 70a82c7..a827c3f 100644 --- a/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl +++ b/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl @@ -49,14 +49,29 @@ 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. This makes it possible to uniquely reference a port or group on a plugin with a single identifier and no context. -""" ; +""" ] ; rdfs:comment """ -A grouping of ports that can be logically considered a single "stream", e.g. -two audio ports in a group may form a stereo stream. The pg:source predicate -can also be used to describe this correspondence between separate ports/groups. +A grouping of ports (or any other means of signal transmission) that should +logically be considered a single "stream", e.g. two audio ports in a group may +form a stereo stream. In order to avoid the need to define large numbers of +identical group definitions, a group definition may be shared. For example, a +plugin collection may define a single URI for a pg:StereoGroup with the symbol +"input" and use it in many plugins. """ . +pg:InputGroup + a rdfs:Class ; + rdfs:subClassOf pg:Group ; + rdfs:label "Input Group" ; + rdfs:comment "A group which contains exclusively inputs." . + +pg:OutputGroup + a rdfs:Class ; + rdfs:subClassOf pg:Group ; + rdfs:label "Output Group" ; + rdfs:comment "A group which contains exclusively outputs." . + pg:Element a rdfs:Class ; rdfs:label "Element" ; @@ -65,12 +80,12 @@ pg:Element a owl:Restriction ; owl:onProperty lv2:index ; owl:maxCardinality 1 ; - rdfs:comment "An element has at most one lv2:index." ; + rdfs:comment "An element has at most one lv2:index." ] , [ a owl:Restriction ; owl:onProperty lv2:designation ; owl:cardinality 1 ; - rdfs:comment "An element MUST have exactly one lv2:designation." ; + rdfs:comment "An element MUST have exactly one lv2:designation." ] ; rdfs:comment """ An element of a group, which has a designation and an optional index. @@ -111,6 +126,8 @@ symbol. pg:source a rdf:Property ; + rdfs:domain pg:OutputGroup ; + rdfs:range pg:InputGroup ; rdfs:label "Source" ; rdfs:comment """ Indicates that this port or group should be considered the "result" of @@ -120,26 +137,38 @@ a relationship between corresponding input and output groups with different types, e.g. a mono->stereo plugin. """ . -pg:mainGroup - a rdf:Property ; +pg:mainInput + a rdf:Property , + owl:FunctionalProperty ; rdfs:domain lv2:Plugin ; - rdfs:range pg:Group ; - rdfs:label "Main port group" ; + rdfs:range pg:InputGroup ; + rdfs:label "Main input" ; + rdfs:comment """ +Indicates that this group should be considered the "main" input, i.e. the +primary task is processing the signal in this group. A plugin MUST NOT have +more than one pg:mainInput property. +""" . + +pg:mainOutput + a rdf:Property , + owl:FunctionalProperty ; + rdfs:domain lv2:Plugin ; + rdfs:range pg:OutputGroup ; + rdfs:label "Main output" ; rdfs:comment """ -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 pg: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'. +Indicates that this group should be considered the "main" output. The main +output group SHOULD have the main input group as a pg:source. """ . -pg:inGroup +pg:group a rdf:Property ; rdfs:domain lv2:Port ; rdfs:range pg:Group ; rdfs:label "In port group" ; rdfs:comment """ -Indicates that this port is a part of a group of ports on the plugin. +Indicates that this port is a part of a group of ports on the plugin. The port +should also have an lv2:designation property to define its designation within +that group. """ . pg:DiscreteGroup @@ -205,7 +234,7 @@ pg:MonoGroup rdfs:label "Mono" ; pg:element [ lv2:index 0 ; - lv2:designation pg:center ; + lv2:designation pg:center ] . pg:StereoGroup @@ -214,10 +243,10 @@ pg:StereoGroup rdfs:label "Stereo" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:right ; + lv2:designation pg:right ] . pg:MidSideGroup @@ -226,10 +255,10 @@ pg:MidSideGroup rdfs:label "Mid-Side Stereo" ; pg:element [ lv2:index 0 ; - lv2:designation pg:center ; + lv2:designation pg:center ] , [ lv2:index 1 ; - lv2:designation pg:side ; + lv2:designation pg:side ] . pg:ThreePointZeroGroup @@ -238,13 +267,13 @@ pg:ThreePointZeroGroup rdfs:label "3.0 Surround" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:right ; + lv2:designation pg:right ] , [ lv2:index 2 ; - lv2:designation pg:rearCenter ; + lv2:designation pg:rearCenter ] . pg:FourPointZeroGroup @@ -253,16 +282,16 @@ pg:FourPointZeroGroup rdfs:label "4.0 Surround (Quadraphonic)" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:center ; + lv2:designation pg:center ] , [ lv2:index 2 ; - lv2:designation pg:right ; + lv2:designation pg:right ] , [ lv2:index 3 ; - lv2:designation pg:rearCenter ; + lv2:designation pg:rearCenter ] . pg:FivePointZeroGroup @@ -271,19 +300,19 @@ pg:FivePointZeroGroup rdfs:label "5.0 Surround (3-2 stereo)" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:center ; + lv2:designation pg:center ] , [ lv2:index 2 ; - lv2:designation pg:right ; + lv2:designation pg:right ] , [ lv2:index 3 ; - lv2:designation pg:rearLeft ; + lv2:designation pg:rearLeft ] , [ lv2:index 4 ; - lv2:designation pg:rearRight ; + lv2:designation pg:rearRight ] . pg:FivePointOneGroup @@ -292,22 +321,22 @@ pg:FivePointOneGroup rdfs:label "5.1 Surround (3-2 stereo)" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:center ; + lv2:designation pg:center ] , [ lv2:index 2 ; - lv2:designation pg:right ; + lv2:designation pg:right ] , [ lv2:index 3 ; - lv2:designation pg:rearLeft ; + lv2:designation pg:rearLeft ] , [ lv2:index 4 ; - lv2:designation pg:rearRight ; + lv2:designation pg:rearRight ] , [ lv2:index 5 ; - lv2:designation pg:lowFrequencyEffects ; + lv2:designation pg:lowFrequencyEffects ] . pg:SixPointOneGroup @@ -316,25 +345,25 @@ pg:SixPointOneGroup rdfs:label "6.1 Surround" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:center ; + lv2:designation pg:center ] , [ lv2:index 2 ; - lv2:designation pg:right ; + lv2:designation pg:right ] , [ lv2:index 3 ; - lv2:designation pg:sideLeft ; + lv2:designation pg:sideLeft ] , [ lv2:index 4 ; - lv2:designation pg:sideRight ; + lv2:designation pg:sideRight ] , [ lv2:index 5 ; - lv2:designation pg:rearCenter ; + lv2:designation pg:rearCenter ] , [ lv2:index 6 ; - lv2:designation pg:lowFrequencyEffects ; + lv2:designation pg:lowFrequencyEffects ] . pg:SevenPointOneGroup @@ -343,28 +372,28 @@ pg:SevenPointOneGroup rdfs:label "7.1 Surround" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:center ; + lv2:designation pg:center ] , [ lv2:index 2 ; - lv2:designation pg:right ; + lv2:designation pg:right ] , [ lv2:index 3 ; - lv2:designation pg:sideLeft ; + lv2:designation pg:sideLeft ] , [ lv2:index 4 ; - lv2:designation pg:sideRight ; + lv2:designation pg:sideRight ] , [ lv2:index 5 ; - lv2:designation pg:rearLeft ; + lv2:designation pg:rearLeft ] , [ lv2:index 6 ; - lv2:designation pg:rearRight ; + lv2:designation pg:rearRight ] , [ lv2:index 7 ; - lv2:designation pg:lowFrequencyEffects ; + lv2:designation pg:lowFrequencyEffects ] . pg:SevenPointOneWideGroup @@ -373,28 +402,28 @@ pg:SevenPointOneWideGroup rdfs:label "7.1 Surround (Wide)" ; pg:element [ lv2:index 0 ; - lv2:designation pg:left ; + lv2:designation pg:left ] , [ lv2:index 1 ; - lv2:designation pg:centerLeft ; + lv2:designation pg:centerLeft ] , [ lv2:index 2 ; - lv2:designation pg:center ; + lv2:designation pg:center ] , [ lv2:index 3 ; - lv2:designation pg:centerRight ; + lv2:designation pg:centerRight ] , [ lv2:index 4 ; - lv2:designation pg:right ; + lv2:designation pg:right ] , [ lv2:index 5 ; - lv2:designation pg:rearLeft ; + lv2:designation pg:rearLeft ] , [ lv2:index 6 ; - lv2:designation pg:rearRight ; + lv2:designation pg:rearRight ] , [ lv2:index 7 ; - lv2:designation pg:lowFrequencyEffects ; + lv2:designation pg:lowFrequencyEffects ] . pg:AmbisonicGroup @@ -414,13 +443,13 @@ pg:AmbisonicBH1P0Group rdfs:label "Ambisonic B stream of horizontal order 1 and peripheral order 0." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] . pg:AmbisonicBH1P1Group @@ -429,16 +458,16 @@ pg:AmbisonicBH1P1Group rdfs:label "Ambisonic B stream of horizontal order 1 and peripheral order 1." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN2 ; + lv2:designation amb:ACN2 ] , [ lv2:index 3 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] . pg:AmbisonicBH2P0Group @@ -447,19 +476,19 @@ pg:AmbisonicBH2P0Group rdfs:label "Ambisonic B stream of horizontal order 2 and peripheral order 0." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] , [ lv2:index 3 ; - lv2:designation amb:ACN4 ; + lv2:designation amb:ACN4 ] , [ lv2:index 4 ; - lv2:designation amb:ACN8 ; + lv2:designation amb:ACN8 ] . pg:AmbisonicBH2P1Group @@ -468,22 +497,22 @@ pg:AmbisonicBH2P1Group rdfs:label "Ambisonic B stream of horizontal order 2 and peripheral order 1." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN2 ; + lv2:designation amb:ACN2 ] , [ lv2:index 3 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] , [ lv2:index 4 ; - lv2:designation amb:ACN4 ; + lv2:designation amb:ACN4 ] , [ lv2:index 5 ; - lv2:designation amb:ACN8 ; + lv2:designation amb:ACN8 ] . pg:AmbisonicBH2P2Group @@ -492,31 +521,31 @@ pg:AmbisonicBH2P2Group rdfs:label "Ambisonic B stream of horizontal order 2 and peripheral order 2." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN2 ; + lv2:designation amb:ACN2 ] , [ lv2:index 3 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] , [ lv2:index 4 ; - lv2:designation amb:ACN4 ; + lv2:designation amb:ACN4 ] , [ lv2:index 5 ; - lv2:designation amb:ACN5 ; + lv2:designation amb:ACN5 ] , [ lv2:index 6 ; - lv2:designation amb:ACN6 ; + lv2:designation amb:ACN6 ] , [ lv2:index 7 ; - lv2:designation amb:ACN7 ; + lv2:designation amb:ACN7 ] , [ lv2:index 8 ; - lv2:designation amb:ACN8 ; + lv2:designation amb:ACN8 ] . pg:AmbisonicBH3P0Group @@ -525,25 +554,25 @@ pg:AmbisonicBH3P0Group rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 0." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] , [ lv2:index 3 ; - lv2:designation amb:ACN4 ; + lv2:designation amb:ACN4 ] , [ lv2:index 4 ; - lv2:designation amb:ACN8 ; + lv2:designation amb:ACN8 ] , [ lv2:index 5 ; - lv2:designation amb:ACN9 ; + lv2:designation amb:ACN9 ] , [ lv2:index 6 ; - lv2:designation amb:ACN15 ; + lv2:designation amb:ACN15 ] . pg:AmbisonicBH3P1Group @@ -552,28 +581,28 @@ pg:AmbisonicBH3P1Group rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 1." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN2 ; + lv2:designation amb:ACN2 ] , [ lv2:index 3 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] , [ lv2:index 4 ; - lv2:designation amb:ACN4 ; + lv2:designation amb:ACN4 ] , [ lv2:index 5 ; - lv2:designation amb:ACN8 ; + lv2:designation amb:ACN8 ] , [ lv2:index 6 ; - lv2:designation amb:ACN9 ; + lv2:designation amb:ACN9 ] , [ lv2:index 7 ; - lv2:designation amb:ACN15 ; + lv2:designation amb:ACN15 ] . pg:AmbisonicBH3P2Group @@ -582,37 +611,37 @@ pg:AmbisonicBH3P2Group rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 2." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN2 ; + lv2:designation amb:ACN2 ] , [ lv2:index 3 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] , [ lv2:index 4 ; - lv2:designation amb:ACN4 ; + lv2:designation amb:ACN4 ] , [ lv2:index 5 ; - lv2:designation amb:ACN5 ; + lv2:designation amb:ACN5 ] , [ lv2:index 6 ; - lv2:designation amb:ACN6 ; + lv2:designation amb:ACN6 ] , [ lv2:index 7 ; - lv2:designation amb:ACN7 ; + lv2:designation amb:ACN7 ] , [ lv2:index 8 ; - lv2:designation amb:ACN8 ; + lv2:designation amb:ACN8 ] , [ lv2:index 9 ; - lv2:designation amb:ACN9 ; + lv2:designation amb:ACN9 ] , [ lv2:index 10 ; - lv2:designation amb:ACN15 ; + lv2:designation amb:ACN15 ] . pg:AmbisonicBH3P3Group @@ -621,50 +650,50 @@ pg:AmbisonicBH3P3Group rdfs:label "Ambisonic B stream of horizontal order 3 and peripheral order 3." ; pg:element [ lv2:index 0 ; - lv2:designation amb:ACN0 ; + lv2:designation amb:ACN0 ] , [ lv2:index 1 ; - lv2:designation amb:ACN1 ; + lv2:designation amb:ACN1 ] , [ lv2:index 2 ; - lv2:designation amb:ACN2 ; + lv2:designation amb:ACN2 ] , [ lv2:index 3 ; - lv2:designation amb:ACN3 ; + lv2:designation amb:ACN3 ] , [ lv2:index 4 ; - lv2:designation amb:ACN4 ; + lv2:designation amb:ACN4 ] , [ lv2:index 5 ; - lv2:designation amb:ACN5 ; + lv2:designation amb:ACN5 ] , [ lv2:index 6 ; - lv2:designation amb:ACN6 ; + lv2:designation amb:ACN6 ] , [ lv2:index 7 ; - lv2:designation amb:ACN7 ; + lv2:designation amb:ACN7 ] , [ lv2:index 8 ; - lv2:designation amb:ACN8 ; + lv2:designation amb:ACN8 ] , [ lv2:index 9 ; - lv2:designation amb:ACN9 ; + lv2:designation amb:ACN9 ] , [ lv2:index 10 ; - lv2:designation amb:ACN10 ; + lv2:designation amb:ACN10 ] , [ lv2:index 11 ; - lv2:designation amb:ACN11 ; + lv2:designation amb:ACN11 ] , [ lv2:index 12 ; - lv2:designation amb:ACN12 ; + lv2:designation amb:ACN12 ] , [ lv2:index 13 ; - lv2:designation amb:ACN13 ; + lv2:designation amb:ACN13 ] , [ lv2:index 14 ; - lv2:designation amb:ACN14 ; + lv2:designation amb:ACN14 ] , [ lv2:index 15 ; - lv2:designation amb:ACN15 ; + lv2:designation amb:ACN15 ] . -- cgit v1.2.1