From d1bd8659d2d9233478b6ec2f26fa199f46c0f0c0 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 25 Mar 2012 03:16:21 +0000 Subject: Add pset:preset property for describing the preset currently applied to a plugin instance. --- lv2/lv2plug.in/ns/ext/presets/manifest.ttl | 2 +- lv2/lv2plug.in/ns/ext/presets/presets.ttl | 70 ++++++++++++++++++------------ 2 files changed, 44 insertions(+), 28 deletions(-) (limited to 'lv2/lv2plug.in/ns/ext') diff --git a/lv2/lv2plug.in/ns/ext/presets/manifest.ttl b/lv2/lv2plug.in/ns/ext/presets/manifest.ttl index 51985ab..3f486e7 100644 --- a/lv2/lv2plug.in/ns/ext/presets/manifest.ttl +++ b/lv2/lv2plug.in/ns/ext/presets/manifest.ttl @@ -4,6 +4,6 @@ a lv2:Specification ; lv2:minorVersion 2 ; - lv2:microVersion 2 ; + lv2:microVersion 3 ; rdfs:seeAlso . diff --git a/lv2/lv2plug.in/ns/ext/presets/presets.ttl b/lv2/lv2plug.in/ns/ext/presets/presets.ttl index 5544628..6d0e375 100644 --- a/lv2/lv2plug.in/ns/ext/presets/presets.ttl +++ b/lv2/lv2plug.in/ns/ext/presets/presets.ttl @@ -36,6 +36,15 @@ doap:shortdesc "Presets for LV2 plugins. " ; doap:maintainer ; doap:release [ + doap:revision "2.3" ; + doap:created "2012-03-22" ; + dcs:blame ; + dcs:changeset [ + dcs:item [ + rdfs:label "Add pset:preset property for describing the preset currently applied to a plugin instance." + ] + ] + ] , [ doap:revision "2.2" ; doap:created "2011-11-21" ; doap:file-release ; @@ -60,9 +69,9 @@ ] ; lv2:documentation """

This extension describes a format for presets (i.e. named sets of control -values) for LV2 plugins. The structure of pset:Preset is deliberately very -similar to the description of a plugin and can be thought of as a plugin -overlay. For example:

+values and possibly other state) for LV2 plugins. The structure of a +pset:Preset is deliberately identical to that of an lv2:Plugin, and can be +thought of as a plugin template or overlay. For example:

 @prefix eg: <http://example.org/> .
@@ -73,17 +82,18 @@ eg:mypreset
     pset:appliesTo eg:myplugin ;
     lv2:port [
         lv2:symbol "volume1" ;
-        pset:value 11
+        pset:value 11.0
     ] , [
         lv2:symbol "volume2" ;
         pset:value 11.0
     ] .
 
-

Presets may be defined in any bundles, including the plugin's bundle, -separate third party preset bundles, or user-created preset bundles created by -hosts. The manifest.ttl of a bundle containing presets should list the -presets like so:

+

Presets may be defined in any bundle, including the plugin's bundle, +separate third party preset bundles, or user preset bundles saved by hosts. +Since preset data tends to be large, it is recommended that plugins describe +presets in a separate file(s) to avoid slowing down hosts. The manifest.ttl of +a bundle containing presets should list the presets like so:

 eg:mypreset
@@ -91,10 +101,6 @@ eg:mypreset
     pset:appliesTo eg:myplugin ;
     rdfs:seeAlso   <mypreset.ttl> .
 
- -

This extension does not define a dynamic mechanism for changing plugin -presets for plugins that require such a facility, but may be extended to do -so.

""" . pset:Preset @@ -107,17 +113,16 @@ pset:Preset owl:someValuesFrom xsd:string ; rdfs:comment "A Preset MUST have at least one string rdfs:label." ] ; - rdfs:comment """ -A Preset for an LV2 Plugin. A preset can be considered an "overlay" on a + lv2:documentation """ +

A Preset for an LV2 Plugin. A preset can be considered an "overlay" on a Plugin. Rather than attempting to define all valid predicates for a Preset (which is not possible since presets may need to specify values for things -defined in other extensions), the presets extension simply provides this -class which can be augmented with any data in the exact same fashion as the -definition of a Plugin. +defined in other extensions), the presets extension simply provides this class +which can be augmented with any data in the exact same fashion as the +definition of a Plugin.

-A Preset SHOULD have at least one pset:appliesTo property. -Each Port on a Preset MUST have at least a lv2:symbol property and a -pset:value property. +

A Preset SHOULD have at least one pset:appliesTo property. Each Port on a +Preset MUST have at least a lv2:symbol property and a pset:value property.

""" . pset:appliesTo @@ -125,16 +130,16 @@ pset:appliesTo rdfs:domain pset:Preset ; rdfs:range lv2:Plugin ; rdfs:label "Applies to" ; - rdfs:comment """ -Specifies the Plugin(s) a Preset may be applied to. When a Preset applies + lv2:documentation """ +

Specifies the Plugin(s) a Preset may be applied to. When a Preset applies to a Plugin, that Preset SHOULD have ports for every control port on that plugin, each of which SHOULD have a pset:value property. If the Preset is -missing ports, or refers to ports which do not exist on the Plugin, then -the host SHOULD apply all the values in the preset that do match the Plugin. +missing ports, or refers to ports which do not exist on the Plugin, then the +host SHOULD apply all the values in the preset that do match the Plugin.

-The Preset MAY have any other values that should be applied to the Plugin -in some way. The host SHOULD simply ignore any values on a Preset it does -not understand. +

The Preset MAY have any other values that should be applied to the Plugin in +some way. The host SHOULD simply ignore any values on a Preset it does not +understand.

""" . pset:value @@ -145,3 +150,14 @@ pset:value Specifies the value of a Port on some Preset. This property is used in a similar way to e.g. lv2:default. """ . + +pset:preset + a rdf:Property ; + rdfs:domain lv2:PluginBase ; + rdfs:range pset:Preset ; + rdfs:label "Preset" ; + lv2:documentation """ +

Specifies the preset currently applied to a plugin instance. This property +may be useful for saving state, or notifying a plugin instance at run-time +about a preset change.

+""" . -- cgit v1.2.1