sherlock.ttl 7.06 KB
Newer Older
1
# Copyright (c) 2015-2016 Hanspeter Portner (dev@open-music-kontrollers.ch)
Hanspeter Portner's avatar
Hanspeter Portner committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#
# This is free software: you can redistribute it and/or modify
# it under the terms of the Artistic License 2.0 as published by
# The Perl Foundation.
#
# This source is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# Artistic License 2.0 for more details.
#
# You should have received a copy of the Artistic License 2.0
# along the source as a COPYING file. If not, obtain it from
# http://www.perlfoundation.org/artistic_license_2_0.

@prefix foaf:	<http://xmlns.com/foaf/0.1/> .
@prefix doap:	<http://usefulinc.com/ns/doap#> .
18
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
19 20
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
Hanspeter Portner's avatar
Hanspeter Portner committed
21 22
@prefix atom:	<http://lv2plug.in/ns/ext/atom#> .
@prefix midi:	<http://lv2plug.in/ns/ext/midi#> .
23
@prefix time: <http://lv2plug.in/ns/ext/time#> .
24
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
25
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
26
@prefix state: <http://lv2plug.in/ns/ext/state#> .
27
@prefix log: <http://lv2plug.in/ns/ext/log#> .
Hanspeter Portner's avatar
Hanspeter Portner committed
28

29
@prefix xpress: <http://open-music-kontrollers.ch/lv2/xpress#> .
30 31 32
@prefix osc: <http://open-music-kontrollers.ch/lv2/osc#> .
@prefix lic: <http://opensource.org/licenses/> .
@prefix omk: <http://open-music-kontrollers.ch/ventosus#> .
Hanspeter Portner's avatar
Hanspeter Portner committed
33
@prefix proj:	<http://open-music-kontrollers.ch/lv2/> .
34
@prefix sherlock: <http://open-music-kontrollers.ch/lv2/sherlock#> .
Hanspeter Portner's avatar
Hanspeter Portner committed
35

36 37 38 39 40
osc:Event
	a rdfs:Class ;
	rdfs:subClassOf atom:Object ;
	rdfs:label "OSC Event (Bundle or Message)" .

41 42 43 44 45
xpress:Message
	a rdfs:Class ,
		rdfs:Datatype ;
	rdfs:subClassOf atom:Atom .

Hanspeter Portner's avatar
Hanspeter Portner committed
46 47 48 49
# Maintainer
omk:me
	a foaf:Person ;
	foaf:name "Hanspeter Portner" ;
Hanspeter Portner's avatar
Hanspeter Portner committed
50
	foaf:mbox <mailto:dev@open-music-kontrollers.ch> ;
Hanspeter Portner's avatar
Hanspeter Portner committed
51 52 53 54 55 56 57 58
	foaf:homepage <http://open-music-kontrollers.ch> .

# Project
proj:sherlock
	a doap:Project ;
	doap:maintainer omk:me ;
	doap:name "Sherlock Bundle" .

59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
sherlock:overwrite
	a lv2:Parameter ;
	rdfs:label "Overwrite" ;
	rdfs:comment "Overwrite buffer when maximum number of events reached" ;
	rdfs:range atom:Bool .

sherlock:block
	a lv2:Parameter ;
	rdfs:label "Block" ;
	rdfs:comment "Block addition of newly received events" ;
	rdfs:range atom:Bool .

sherlock:follow
	a lv2:Parameter ;
	rdfs:label "Follow" ;
	rdfs:comment "Automatically scroll to and show last added event" ;
	rdfs:range atom:Bool .

Hanspeter Portner's avatar
Hanspeter Portner committed
77 78 79
sherlock:pretty
	a lv2:Parameter ;
	rdfs:label "Pretty" ;
80 81 82
	rdfs:comment "Toggle whether to pretty print or not" ;
	rdfs:range atom:Bool .

83 84 85 86 87 88
sherlock:trace
	a lv2:Parameter ;
	rdfs:label "Trace" ;
	rdfs:comment "Toggle whether to show trace output on console" ;
	rdfs:range atom:Bool .

89 90 91 92 93 94 95 96 97 98 99 100
sherlock:filter
	a lv2:Parameter ;
	rdfs:label "Filter" ;
	rdfs:comment "Filter events according to type or object type" ;
	rdfs:range atom:URID .

sherlock:negate
	a lv2:Parameter ;
	rdfs:label "Negate" ;
	rdfs:comment "Toggle negation of filter" ;
	rdfs:range atom:Bool .

Hanspeter Portner's avatar
Hanspeter Portner committed
101
# Atom Inspector Plugin
Hanspeter Portner's avatar
Hanspeter Portner committed
102
sherlock:atom_inspector
Hanspeter Portner's avatar
Hanspeter Portner committed
103 104
	a lv2:Plugin,
		lv2:AnalyserPlugin ;
Hanspeter Portner's avatar
Hanspeter Portner committed
105
	doap:name "Sherlock Atom Inspector" ;
Hanspeter Portner's avatar
Hanspeter Portner committed
106 107
	doap:license lic:Artistic-2.0 ;
	lv2:project proj:sherlock ;
108 109
	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, state:threadSafeRestore, log:log ;
	lv2:requiredFeature urid:map, urid:unmap, state:loadDefaultState ;
110
	lv2:extensionData state:interface ;
Hanspeter Portner's avatar
Hanspeter Portner committed
111 112 113 114 115 116

	lv2:port [
		# input event port
	  a lv2:InputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
Hanspeter Portner's avatar
Hanspeter Portner committed
117 118 119
		atom:supports midi:MidiEvent ,
			time:Position ,
			patch:Message ,
120 121
			osc:Event ,
		 	xpress:Message	;
Hanspeter Portner's avatar
Hanspeter Portner committed
122
		lv2:index 0 ;
123 124
		lv2:symbol "control" ;
		lv2:name "Control" ;
125 126 127 128 129 130
		lv2:designation lv2:control ;
	] , [
		# output event port
	  a lv2:OutputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
Hanspeter Portner's avatar
Hanspeter Portner committed
131 132 133
		atom:supports midi:MidiEvent ,
			time:Position ,
			patch:Message ,
134 135
			osc:Event ,
			xpress:Message ;
136
		lv2:index 1 ;
137 138
		lv2:symbol "through" ;
		lv2:name "Through" ;
139 140 141 142 143
	] , [
		# output notify port
	  a lv2:OutputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
144 145
		atom:supports atom:Sequence ,
			patch:Message ;
146 147 148
		lv2:index 2 ;
		lv2:symbol "notify" ;
		lv2:name "Notify" ;
149
		lv2:designation lv2:control ;
150 151 152
	] ;

	patch:writable
153
		sherlock:overwrite ,
154
		sherlock:block ,
Hanspeter Portner's avatar
Hanspeter Portner committed
155
		sherlock:follow ,
156
		sherlock:pretty ,
157 158 159
		sherlock:trace ,
		sherlock:filter,
		sherlock:negate ;
160 161

	state:state [
162
		sherlock:overwrite true ;
163
		sherlock:block false ;
164 165
		sherlock:follow true ;
		sherlock:pretty true ;
166
		sherlock:trace false ;
167 168
		sherlock:filter time:Position ;
		sherlock:negate false ;
Hanspeter Portner's avatar
Hanspeter Portner committed
169
	] .
170 171 172 173 174 175 176 177

# MIDI Inspector Plugin
sherlock:midi_inspector
	a lv2:Plugin,
		lv2:AnalyserPlugin ;
	doap:name "Sherlock MIDI Inspector" ;
	doap:license lic:Artistic-2.0 ;
	lv2:project proj:sherlock ;
178 179
	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, state:threadSafeRestore, log:log ;
	lv2:requiredFeature urid:map, urid:unmap, state:loadDefaultState ;
180
	lv2:extensionData state:interface ;
181 182 183 184 185 186

	lv2:port [
		# input event port
	  a lv2:InputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
Hanspeter Portner's avatar
Hanspeter Portner committed
187
		atom:supports midi:MidiEvent ,
188 189
			time:Position ,
			patch:Message ;
190
		lv2:index 0 ;
191 192
		lv2:symbol "control" ;
		lv2:name "Control" ;
193 194 195 196 197 198
		lv2:designation lv2:control ;
	] , [
		# output event port
	  a lv2:OutputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
199
		atom:supports midi:MidiEvent ;
200
		lv2:index 1 ;
201 202
		lv2:symbol "through" ;
		lv2:name "Through" ;
203 204 205 206 207
	] , [
		# output notify port
	  a lv2:OutputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
208 209
		atom:supports atom:Sequence ,
	 		patch:Message	;
210 211 212
		lv2:index 2 ;
		lv2:symbol "notify" ;
		lv2:name "Notify" ;
213
		lv2:designation lv2:control ;
214 215 216 217 218
	] ;

	patch:writable
		sherlock:overwrite ,
		sherlock:block ,
219
		sherlock:follow ;
220 221

	state:state [
222
		sherlock:overwrite true ;
223
		sherlock:block false ;
224
		sherlock:follow true ;
225 226 227 228 229 230 231 232 233
	] .

# OSC Inspector Plugin
sherlock:osc_inspector
	a lv2:Plugin,
		lv2:AnalyserPlugin ;
	doap:name "Sherlock OSC Inspector" ;
	doap:license lic:Artistic-2.0 ;
	lv2:project proj:sherlock ;
234 235
	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, state:threadSafeRestore, log:log ;
	lv2:requiredFeature urid:map, urid:unmap, state:loadDefaultState ;
236
	lv2:extensionData state:interface ;
237 238 239 240 241 242

	lv2:port [
		# input event port
	  a lv2:InputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
Hanspeter Portner's avatar
Hanspeter Portner committed
243
		atom:supports osc:Event ,
244 245
			time:Position ,
			patch:Message ;
246
		lv2:index 0 ;
247 248
		lv2:symbol "control" ;
		lv2:name "Control" ;
249 250 251 252 253 254
		lv2:designation lv2:control ;
	] , [
		# output event port
	  a lv2:OutputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
255
		atom:supports osc:Event ;
256
		lv2:index 1 ;
257 258
		lv2:symbol "through" ;
		lv2:name "Through" ;
259 260 261 262 263
	] , [
		# output notify port
	  a lv2:OutputPort ,
			atom:AtomPort ;
		atom:bufferType atom:Sequence ;
264 265
		atom:supports atom:Sequence ,
			patch:Message ;
266 267 268
		lv2:index 2 ;
		lv2:symbol "notify" ;
		lv2:name "Notify" ;
269
		lv2:designation lv2:control ;
270 271 272 273 274
	] ;

	patch:writable
		sherlock:overwrite ,
		sherlock:block ,
275
		sherlock:follow ;
276 277

	state:state [
278
		sherlock:overwrite true ;
279
		sherlock:block false ;
280
		sherlock:follow true ;
281
	] .