diff options
Diffstat (limited to 'plugins/eg02-midigate.lv2/midigate.ttl')
-rw-r--r-- | plugins/eg02-midigate.lv2/midigate.ttl | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/plugins/eg02-midigate.lv2/midigate.ttl b/plugins/eg02-midigate.lv2/midigate.ttl new file mode 100644 index 0000000..59ac815 --- /dev/null +++ b/plugins/eg02-midigate.lv2/midigate.ttl @@ -0,0 +1,80 @@ +# The same set of namespace prefixes with two additions for LV2 extensions this +# plugin uses: atom and urid. + +@prefix atom: <http://lv2plug.in/ns/ext/atom#> . +@prefix doap: <http://usefulinc.com/ns/doap#> . +@prefix lv2: <http://lv2plug.in/ns/lv2core#> . +@prefix midi: <http://lv2plug.in/ns/ext/midi#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix urid: <http://lv2plug.in/ns/ext/urid#> . + +<http://lv2plug.in/plugins/eg-midigate> + a lv2:Plugin ; + doap:name "Example MIDI Gate" ; + doap:license <http://opensource.org/licenses/isc> ; + lv2:project <http://lv2plug.in/ns/lv2> ; + lv2:requiredFeature urid:map ; + lv2:optionalFeature lv2:hardRTCapable ; +# Describe program banks so the host can automate and/or present a user +# interface. Describing supported programs (or any other MIDI event) is not +# required, but is a good idea since it allows hosts to make better use of +# plugins. This plugin has a single bank of two programs, which have a +# (mandatory) label, and an (optional) comment to describe their meaning in +# more detail. +# +# Both programs and the bank have an index, which corresponds to the MIDI bank +# and program numbers that will activate them. Since there are other ways to +# change programs (not used here), an index is not strictly required, but must +# be present to support program changes from MIDI. + lv2:bank [ + rdfs:label "Default" ; + lv2:index 0 ; + lv2:program [ + lv2:index 0 ; + rdfs:label "Normal" ; + rdfs:comment "Input is passed through if notes are active." + ] , [ + lv2:index 1 ; + rdfs:label "Inverted" ; + rdfs:comment "Input is passed through if no notes are active." + ] + ] ; +# This plugin has three ports. There is an audio input and output as before, +# as well as a new AtomPort. An AtomPort buffer contains an Atom, which is a +# generic container for any type of data. In this case, we want to receive +# MIDI events, so the (mandatory) +atom:bufferType+ is atom:Sequence, which is +# a series of events with time stamps. +# +# Events themselves are also generic and can contain any type of data, but in +# this case we are only interested in MIDI events. The (optional) +# +atom:supports+ property describes which event types are supported. Though +# not required, this information should always be given so the host knows what +# types of event it can expect the plugin to understand. +# +# The (optional) +lv2:designation+ of this port is +lv2:control+, which +# indicates that this is the "main" control port where the host should send +# events it expects to configure the plugin, in this case changing the MIDI +# program. This is necessary since it is possible to have several MIDI input +# ports, though typically it is best to have one. + lv2:port [ + a lv2:InputPort , + atom:AtomPort ; + atom:bufferType atom:Sequence ; + atom:supports midi:MidiEvent ; + lv2:designation lv2:control ; + lv2:index 0 ; + lv2:symbol "control" ; + lv2:name "Control" + ] , [ + a lv2:AudioPort , + lv2:InputPort ; + lv2:index 1 ; + lv2:symbol "in" ; + lv2:name "In" + ] , [ + a lv2:AudioPort , + lv2:OutputPort ; + lv2:index 2 ; + lv2:symbol "out" ; + lv2:name "Out" + ] . |