From 4db67120efca2d4c200d2e1ba5cf3d7b97cab97e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 22 Sep 2018 20:38:01 +0200 Subject: Install standard headers to simpler include paths --- lv2/presets/presets.ttl | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 lv2/presets/presets.ttl (limited to 'lv2/presets/presets.ttl') diff --git a/lv2/presets/presets.ttl b/lv2/presets/presets.ttl new file mode 100644 index 0000000..da7e9bb --- /dev/null +++ b/lv2/presets/presets.ttl @@ -0,0 +1,105 @@ +@prefix lv2: . +@prefix owl: . +@prefix pset: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . + + + a owl:Ontology ; + rdfs:seeAlso ; + lv2:documentation """ +

This vocabulary describes a format for presets (i.e. named sets of control +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.

+ +

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
+    a             pset:Preset ;
+    lv2:appliesTo eg:myplugin ;
+    rdfs:seeAlso  <mypreset.ttl> .
+
+""" . + +pset:Bank + a rdfs:Class ; + rdfs:label "Bank" ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onProperty rdfs:label ; + owl:someValuesFrom xsd:string ; + rdfs:comment "A Bank MUST have at least one string rdfs:label." + ] ; + rdfs:comment "A bank of presets." . + +pset:Preset + a rdfs:Class ; + rdfs:subClassOf lv2:PluginBase ; + rdfs:label "Preset" ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onProperty rdfs:label ; + owl:someValuesFrom xsd:string ; + rdfs:comment "A Preset MUST have at least one string rdfs:label." + ] ; + lv2:documentation """ +

A Preset for an LV2 Plugin. The structure of a Preset deliberately mirrors that +of a plugin, so existing predicates can be used to describe any data associated with +the preset. For example:

+ +
+@prefix eg: <http://example.org/> .
+
+eg:mypreset
+    a pset:Preset ;
+    rdfs:label "One louder" ;
+    lv2:appliesTo eg:myplugin ;
+    lv2:port [
+        lv2:symbol "volume1" ;
+        pset:value 11.0
+    ] , [
+        lv2:symbol "volume2" ;
+        pset:value 11.0
+    ] .
+
+ +

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

+ +

Hosts SHOULD save user presets to a bundle in the user-local LV2 directory +(e.g. ~/.lv2) with a name like +<Plugin_Name>_<Preset_Name>.preset.lv2 +(e.g. LV2_Amp_At_Eleven.preset.lv2), where names are transformed +to be valid LV2 symbols for maximum compatibility.

+""" . + +pset:bank + a rdf:Property ; + rdfs:domain pset:Preset ; + rdfs:range pset:Bank ; + rdfs:label "bank" ; + rdfs:comment "The bank this preset belongs to." . + +pset:value + a rdf:Property ; + rdfs:domain lv2:Port ; + rdfs:label "value" ; + rdfs:comment """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