aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/eg02-midigate.lv2/midigate.c6
-rw-r--r--plugins/eg02-midigate.lv2/midigate.ttl24
2 files changed, 5 insertions, 25 deletions
diff --git a/plugins/eg02-midigate.lv2/midigate.c b/plugins/eg02-midigate.lv2/midigate.c
index 3b74bfc..3ed6fbf 100644
--- a/plugins/eg02-midigate.lv2/midigate.c
+++ b/plugins/eg02-midigate.lv2/midigate.c
@@ -47,7 +47,7 @@ typedef struct {
} uris;
unsigned n_active_notes;
- unsigned program;
+ unsigned program; // 0 = normal, 1 = inverted
} Midigate;
static LV2_Handle
@@ -136,6 +136,10 @@ write_output(Midigate* self, uint32_t offset, uint32_t len)
+offset+ is updated and the next event is processed. After the loop the
final chunk from the last event to the end of the cycle is emitted.
+ There is currently no standard way to describe MIDI programs in LV2, so the
+ host has no way of knowing that these programs exist and should be presented
+ to the user. A future version of LV2 will address this shortcoming.
+
This pattern of iterating over input events and writing output along the way
is a common idiom for writing sample accurate output based on event input.
diff --git a/plugins/eg02-midigate.lv2/midigate.ttl b/plugins/eg02-midigate.lv2/midigate.ttl
index 59ac815..e14a329 100644
--- a/plugins/eg02-midigate.lv2/midigate.ttl
+++ b/plugins/eg02-midigate.lv2/midigate.ttl
@@ -15,30 +15,6 @@
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