# Copyright (c) 2015-2021 Hanspeter Portner (dev@open-music-kontrollers.ch)
#
# 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: .
@prefix doap: .
@prefix rdfs: .
@prefix rdf: .
@prefix lv2: .
@prefix atom: .
@prefix midi: .
@prefix time: .
@prefix urid: .
@prefix patch: .
@prefix state: .
@prefix log: .
@prefix xpress: .
@prefix osc: .
@prefix omk: .
@prefix proj: .
@prefix sherlock: .
osc:Event
a rdfs:Class ;
rdfs:subClassOf atom:Object ;
rdfs:label "OSC Event (Bundle or Message)" .
xpress:Message
a rdfs:Class ,
rdfs:Datatype ;
rdfs:subClassOf atom:Atom .
# Maintainer
omk:me
a foaf:Person ;
foaf:name "Hanspeter Portner" ;
foaf:mbox ;
foaf:homepage .
# Project
proj:sherlock
a doap:Project ;
doap:maintainer omk:me ;
doap:name "Sherlock Bundle" .
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 .
sherlock:pretty
a lv2:Parameter ;
rdfs:label "Pretty" ;
rdfs:comment "Toggle whether to pretty print or not" ;
rdfs:range atom:Bool .
sherlock:trace
a lv2:Parameter ;
rdfs:label "Trace" ;
rdfs:comment "Toggle whether to show trace output on console" ;
rdfs:range atom:Bool .
sherlock:filter
a lv2:Parameter ;
rdfs:label "Match" ;
rdfs:comment "Match events according to type or object type" ;
rdfs:range atom:URI .
sherlock:negate
a lv2:Parameter ;
rdfs:label "Negate" ;
rdfs:comment "Toggle negation of filter" ;
rdfs:range atom:Bool .
# Atom Inspector Plugin
sherlock:atom_inspector
a lv2:Plugin,
lv2:AnalyserPlugin ;
doap:name "Sherlock Atom Inspector" ;
doap:license ;
lv2:project proj:sherlock ;
lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, state:threadSafeRestore, log:log ;
lv2:requiredFeature urid:map, urid:unmap, state:loadDefaultState ;
lv2:extensionData state:interface ;
lv2:port [
# input event port
a lv2:InputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports midi:MidiEvent ,
time:Position ,
patch:Message ,
osc:Event ,
xpress:Message ;
lv2:index 0 ;
lv2:symbol "control" ;
lv2:name "Control" ;
lv2:designation lv2:control ;
] , [
# output event port
a lv2:OutputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports midi:MidiEvent ,
time:Position ,
patch:Message ,
osc:Event ,
xpress:Message ;
lv2:index 1 ;
lv2:symbol "through" ;
lv2:name "Through" ;
] , [
# output notify port
a lv2:OutputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports atom:Sequence ,
patch:Message ;
lv2:index 2 ;
lv2:symbol "notify" ;
lv2:name "Notify" ;
lv2:designation lv2:control ;
] ;
patch:writable
sherlock:overwrite ,
sherlock:block ,
sherlock:follow ,
sherlock:pretty ,
sherlock:trace ,
sherlock:filter ,
sherlock:negate ;
state:state [
sherlock:overwrite true ;
sherlock:block false ;
sherlock:follow true ;
sherlock:pretty true ;
sherlock:trace false ;
sherlock:filter sherlock:matchAll ;
sherlock:negate false ;
] .
# MIDI Inspector Plugin
sherlock:midi_inspector
a lv2:Plugin,
lv2:AnalyserPlugin ;
doap:name "Sherlock MIDI Inspector" ;
doap:license ;
lv2:project proj:sherlock ;
lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, state:threadSafeRestore, log:log ;
lv2:requiredFeature urid:map, urid:unmap, state:loadDefaultState ;
lv2:extensionData state:interface ;
lv2:port [
# input event port
a lv2:InputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports midi:MidiEvent ,
time:Position ,
patch:Message ;
lv2:index 0 ;
lv2:symbol "control" ;
lv2:name "Control" ;
lv2:designation lv2:control ;
] , [
# output event port
a lv2:OutputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports midi:MidiEvent ;
lv2:index 1 ;
lv2:symbol "through" ;
lv2:name "Through" ;
] , [
# output notify port
a lv2:OutputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports atom:Sequence ,
patch:Message ;
lv2:index 2 ;
lv2:symbol "notify" ;
lv2:name "Notify" ;
lv2:designation lv2:control ;
] ;
patch:writable
sherlock:overwrite ,
sherlock:block ,
sherlock:follow ;
state:state [
sherlock:overwrite true ;
sherlock:block false ;
sherlock:follow true ;
] .
# OSC Inspector Plugin
sherlock:osc_inspector
a lv2:Plugin,
lv2:AnalyserPlugin ;
doap:name "Sherlock OSC Inspector" ;
doap:license ;
lv2:project proj:sherlock ;
lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, state:threadSafeRestore, log:log ;
lv2:requiredFeature urid:map, urid:unmap, state:loadDefaultState ;
lv2:extensionData state:interface ;
lv2:port [
# input event port
a lv2:InputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports osc:Event ,
time:Position ,
patch:Message ;
lv2:index 0 ;
lv2:symbol "control" ;
lv2:name "Control" ;
lv2:designation lv2:control ;
] , [
# output event port
a lv2:OutputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports osc:Event ;
lv2:index 1 ;
lv2:symbol "through" ;
lv2:name "Through" ;
] , [
# output notify port
a lv2:OutputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports atom:Sequence ,
patch:Message ;
lv2:index 2 ;
lv2:symbol "notify" ;
lv2:name "Notify" ;
lv2:designation lv2:control ;
] ;
patch:writable
sherlock:overwrite ,
sherlock:block ,
sherlock:follow ;
state:state [
sherlock:overwrite true ;
sherlock:block false ;
sherlock:follow true ;
] .