1 # LV2 Message Extension
2 # Copyright (C) 2007-2010 David Robillard <d@drobilla.net>
4 # Permission is hereby granted, free of charge, to any person obtaining a
5 # copy of this software and associated documentation files (the "Software"),
6 # to deal in the Software without restriction, including without limitation
7 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 # and/or sell copies of the Software, and to permit persons to whom the
9 # Software is furnished to do so, subject to the following conditions:
11 # The above copyright notice and this permission notice shall be included
12 # in all copies or substantial portions of the Software.
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 # OTHER DEALINGS IN THE SOFTWARE.
22 @prefix msg: <http://lv2plug.in/ns/ext/message#> .
23 @prefix atom: <http://lv2plug.in/ns/ext/atom#> .
24 @prefix doap: <http://usefulinc.com/ns/doap#> .
25 @prefix foaf: <http://xmlns.com/foaf/0.1/> .
26 @prefix lv2: <http://lv2plug.in/ns/lv2core#> .
27 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
28 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
29 @prefix xsd: <http://www.w3.org/2001/XMLSchema> .
31 <http://lv2plug.in/ns/ext/message>
33 doap:name "LV2 Message" ;
36 foaf:name "David Robillard" ;
37 foaf:homepage <http://drobilla.net/> ;
38 rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
41 This extension defines a standard for LV2 "messages" which allow dynamic
42 control and investigation of plugin instances, by both hosts and other
45 This extension requires the host to support the <a
46 href="http://lv2plug.in/ns/ext/uri-map">LV2 URI Map</a> extension, and the
47 <a href="http://lv2plug.in/ns/ext/atom">LV2 Atom</a> extension.
51 msg:MessageType a rdfs:Class ;
52 rdfs:label "LV2 Message Type" ;
54 Base class for all types of LV2 Message.
56 A type of message, which must be a resource (i.e. have a URI). This URI
57 is used as the selector component of a Message and is used by receivers to
58 interpret the meaning of messages (e.g. which components are present).
60 A message in memory is simply an <a href="http://lv2plug.in/ns/ext/atom#Dict"
61 >atom:Dict</a> with at least one rdf:type that is a rdfs:subClassOf
62 msg:MessageType. The definitions of various message types define what
63 other key/value pairs can be expected in the message.
66 msg:ControlPort a rdfs:Class ;
67 rdfs:label "Control Port" ;
68 rdfs:subClassOf lv2:Port ;
70 An input port used to control a plugin instance. A plugin has
71 at most 1 msg:ControlPort. A ControlPort is always an lv2:InputPort. Hosts
72 can send messages to the control port in order to investigate or manipulate
73 a plugin instance (possibly on behalf of a UI or another plugin instance).
75 This is an abstract port class, the actual format and semantics
76 of the port buffer (and messages) are defined by some other port type, i.e.
77 a cmdControlPort MUST have another type which defines the format and semantics
78 of the port buffer contents (likely candidates are
79 <a href="http://lv2plug.in/ns/ext/atom-port#MessagePort">atom-port:MessagePort</a>
80 or <a href="http://lv2plug.in/ns/ext/event#EventPort">ev:EventPort</a>).
83 msg:ResponsePort a rdfs:Class ;
84 rdfs:label "Response Port" ;
85 rdfs:subClassOf lv2:Port ;
87 An output port used to notify the host about changes to a plugin instance
88 or respond to messages send to its msg:ControlPort. A plugin has at most
89 1 StatusPort. A StatusPort is always an lv2:OutputPort. Any response to a
90 command sent to the CommandPort of the plugin will appear in the StatusPort
91 output. The plugin may also emit other messages (i.e. the contents of a
92 StatusPort are not necessarily responses to commands).
94 This is an abstract port class, the actual format and semantics
95 of the port buffer (and messages) are defined by some other port type, i.e.
96 a cmdControlPort MUST have another type which defines the format and semantics
97 of the port buffer contents (likely candidates are
98 <a href="http://lv2plug.in/ns/ext/atom-port#MessagePort">atom-port:MessagePort</a>
99 or <a href="http://lv2plug.in/ns/ext/event#EventPort">ev:EventPort</a>).