From 2deb34ec442772f5f68c1818a290748ac5a1ed36 Mon Sep 17 00:00:00 2001
From: David Robillard
Date: Sun, 10 Feb 2013 03:21:20 +0000
Subject: Add lv2:Bank, lv2:Program, and lv2:program for describing programs,
including but not limited to MIDI programs.
---
lv2/lv2plug.in/ns/lv2core/lv2core.doap.ttl | 6 ++--
lv2/lv2plug.in/ns/lv2core/lv2core.ttl | 56 +++++++++++++++++++++++++++++-
2 files changed, 59 insertions(+), 3 deletions(-)
(limited to 'lv2')
diff --git a/lv2/lv2plug.in/ns/lv2core/lv2core.doap.ttl b/lv2/lv2plug.in/ns/lv2core/lv2core.doap.ttl
index 4fe9f3a..b4eb5c3 100644
--- a/lv2/lv2plug.in/ns/lv2core/lv2core.doap.ttl
+++ b/lv2/lv2plug.in/ns/lv2core/lv2core.doap.ttl
@@ -16,11 +16,13 @@
;
doap:maintainer ;
doap:release [
- doap:revision "9.1" ;
- doap:created "2013-01-10" ;
+ doap:revision "9.2" ;
+ doap:created "2013-02-09" ;
dcs:changeset [
dcs:item [
rdfs:label "Add lv2:EnvelopePlugin class."
+ ] , [
+ rdfs:label "Add lv2:Bank, lv2:Program, and lv2:program for describing programs, including but not limited to MIDI programs."
] , [
rdfs:label "Add lv2:control for designating primary event-based control ports."
] , [
diff --git a/lv2/lv2plug.in/ns/lv2core/lv2core.ttl b/lv2/lv2plug.in/ns/lv2core/lv2core.ttl
index 8bfd6ec..be968f4 100644
--- a/lv2/lv2plug.in/ns/lv2core/lv2core.ttl
+++ b/lv2/lv2plug.in/ns/lv2core/lv2core.ttl
@@ -122,6 +122,19 @@ which of these classes the functions belong, define new classes for them, or
otherwise precisely describe their threading rules.
""" .
+lv2:Bank
+ a rdfs:Class ,
+ owl:Class ;
+ rdfs:label "Bank" ;
+ lv2:documentation """
+A bank of programs. See lv2:Program for details.
+
+A Bank MUST have an rdfs:label giving a short label suitable for
+presentation in a user interface, and SHOULD have an rdfs:comment if a more
+detailed description is available. For MIDI compatibility, a bank SHOULD have
+an lv2:index within [0,127].
+""" .
+
lv2:PluginBase
a rdfs:Class ,
owl:Class ;
@@ -219,6 +232,31 @@ necessarily refer to the same port on all plugins with a given URI (i.e. the
index for a port may differ between plugin binaries).
""" .
+lv2:Program
+ a rdfs:Class ,
+ owl:Class ;
+ rdfs:label "Program" ;
+ lv2:documentation """
+A plugin configuration or mode. This can describe MIDI programs, but is
+more general. Implementations MAY support changing programs by any
+mechanism.
+
+A program MUST have an rdfs:label giving a short label suitable for
+presentation in a user interface, and SHOULD have an rdfs:comment if a more
+detailed description is available. For MIDI compatibility, a program SHOULD
+have an lv2:index within [0,127].
+
+Note that a program is an internal plugin mode, not necessarily a complete
+snapshot of plugin state (which is a preset
). The currently active
+program is a parameter, lv2:program. Programs allow plugins to implement
+internal configurations opaque to the host; in particular, a program does not
+define control input values. The distinction is analogous to hardware that
+supports program changes but also has physical controls that can not be changed
+by software. However, a program MAY be associated with a preset, or one
+resource may be both a program and a preset, to support completely changing a
+plugin instance's state via a program change.
+""" .
+
lv2:InputPort
a rdfs:Class ,
owl:Class ;
@@ -277,6 +315,23 @@ versa. Hosts SHOULD take care to prevent data from a CVPort port from being
used as audio.
""" .
+lv2:bank
+ a rdf:Property ,
+ owl:ObjectProperty ,
+ lv2:Parameter ;
+ rdfs:domain lv2:PluginBase ;
+ rdfs:range lv2:Bank ;
+ rdfs:label "bank" ;
+ rdfs:comment "A supported bank of programs, or the currently active bank." .
+
+lv2:program
+ a rdf:Property ,
+ owl:ObjectProperty ,
+ lv2:Parameter ;
+ rdfs:range lv2:Program ;
+ rdfs:label "program" ;
+ rdfs:comment "A program in a bank, or the currently active program." .
+
lv2:port
a rdf:Property ,
owl:ObjectProperty ;
@@ -312,7 +367,6 @@ lv2:minorVersion
rdfs:range xsd:nonNegativeInteger ;
rdfs:label "minor version" ;
lv2:documentation """
-
The minor version of an LV2 Resource. This, along with lv2:microVersion, is
used to distinguish between different versions of the same
resource,
e.g. to load only the bundle with the most recent version of a plugin. An LV2
--
cgit v1.2.1