1@prefix dcs: <http://ontologi.es/doap-changeset#> . 2@prefix doap: <http://usefulinc.com/ns/doap#> . 3@prefix ev: <http://lv2plug.in/ns/ext/event#> . 4@prefix foaf: <http://xmlns.com/foaf/0.1/> . 5@prefix lv2: <http://lv2plug.in/ns/lv2core#> . 6@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 7 8<http://lv2plug.in/ns/ext/event> 9 a doap:Project ; 10 doap:license <http://opensource.org/licenses/isc> ; 11 doap:name "LV2 Event" ; 12 doap:shortdesc "A port-based real-time generic event interface." ; 13 doap:created "2008-00-00" ; 14 doap:developer <http://drobilla.net/drobilla#me> , 15 <http://lv2plug.in/ns/meta#larsl> ; 16 doap:release [ 17 doap:revision "1.12" ; 18 doap:created "2014-08-08" ; 19 doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ; 20 dcs:blame <http://drobilla.net/drobilla#me> ; 21 dcs:changeset [ 22 dcs:item [ 23 rdfs:label "Minor documentation improvements." 24 ] 25 ] 26 ] , [ 27 doap:revision "1.10" ; 28 doap:created "2013-01-13" ; 29 doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ; 30 dcs:blame <http://drobilla.net/drobilla#me> ; 31 dcs:changeset [ 32 dcs:item [ 33 rdfs:label "Fix incorrect return type in lv2_event_get()." 34 ] 35 ] 36 ] , [ 37 doap:revision "1.8" ; 38 doap:created "2012-10-14" ; 39 doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ; 40 dcs:blame <http://drobilla.net/drobilla#me> ; 41 dcs:changeset [ 42 dcs:item [ 43 rdfs:label "Make event iterator gracefully handle optional ports." 44 ] , [ 45 rdfs:label "Remove asserts from event-helper.h." 46 ] , [ 47 rdfs:label "Use more precise domain and range for EventPort properties." 48 ] , [ 49 rdfs:label "Use consistent label style." 50 ] 51 ] 52 ] , [ 53 doap:revision "1.6" ; 54 doap:created "2012-04-17" ; 55 doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ; 56 dcs:blame <http://drobilla.net/drobilla#me> ; 57 dcs:changeset [ 58 dcs:item [ 59 rdfs:label "Fix bug in lv2_event_reserve()." 60 ] , [ 61 rdfs:label "Fix incorrect ranges of some properties." 62 ] , [ 63 rdfs:label "Merge with unified LV2 package." 64 ] 65 ] 66 ] , [ 67 doap:revision "1.4" ; 68 doap:created "2011-11-21" ; 69 doap:file-release <http://lv2plug.in/spec/lv2-event-1.4.tar.bz2> ; 70 dcs:blame <http://drobilla.net/drobilla#me> ; 71 dcs:changeset [ 72 dcs:item [ 73 rdfs:label "Update packaging." 74 ] 75 ] 76 ] , [ 77 doap:revision "1.2" ; 78 doap:created "2011-05-26" ; 79 doap:file-release <http://lv2plug.in/spec/lv2-event-1.2.tar.bz2> ; 80 dcs:blame <http://drobilla.net/drobilla#me> ; 81 dcs:changeset [ 82 dcs:item [ 83 rdfs:label "Add build system (for installation)." 84 ] , [ 85 rdfs:label "Convert documentation to HTML and use lv2:documentation." 86 ] , [ 87 rdfs:label "Use lv2:Specification to be discovered as an extension." 88 ] 89 ] 90 ] , [ 91 doap:revision "1.0" ; 92 doap:created "2010-11-24" ; 93 doap:file-release <http://lv2plug.in/spec/lv2-event-1.0.tar.gz> ; 94 dcs:blame <http://drobilla.net/drobilla#me> ; 95 dcs:changeset [ 96 dcs:item [ 97 rdfs:label "Initial release." 98 ] 99 ] 100 ] ; 101 lv2:documentation """ 102 103<span class="warning">This extension is deprecated.</span> New implementations 104should use <a href="atom.html">LV2 Atom</a> instead. 105 106This extension defines a generic time-stamped event port type, which can be 107used to create plugins that read and write real-time events, such as MIDI, 108OSC, or any other type of event payload. The type(s) of event supported by 109a port is defined in the data file for a plugin, for example: 110 111 :::turtle 112 <http://example.org/some-plugin> 113 lv2:port [ 114 a ev:EventPort, lv2:InputPort ; 115 lv2:index 0 ; 116 ev:supportsEvent <http://lv2plug.in/ns/ext/midi#MidiEvent> ; 117 lv2:symbol "midi_input" ; 118 lv2:name "MIDI input" ; 119 ] . 120 121"""^^lv2:Markdown . 122 123ev:EventPort 124 lv2:documentation """ 125 126Ports of this type will be connected to a struct of type LV2_Event_Buffer, 127defined in event.h. These ports contain a sequence of generic events (possibly 128several types mixed in a single stream), the specific types of which are 129defined by some URI in another LV2 extension. 130 131"""^^lv2:Markdown . 132 133ev:Event 134 a rdfs:Class ; 135 rdfs:label "Event" ; 136 lv2:documentation """ 137 138An ev:EventPort contains an LV2_Event_Buffer which contains a sequence of these 139events. The binary format of LV2 events is defined by the LV2_Event struct in 140event.h. 141 142Specific event types (such as MIDI or OSC) are defined by extensions, and 143should be rdfs:subClassOf this class. 144 145"""^^lv2:Markdown . 146 147ev:TimeStamp 148 lv2:documentation """ 149 150This defines the meaning of the 'frames' and 'subframes' fields of an LV2_Event 151(both unsigned 32-bit integers). 152 153"""^^lv2:Markdown . 154 155ev:FrameStamp 156 lv2:documentation """ 157 158The default time stamp unit for an LV2 event: the frames field represents audio 159frames (in the sample rate passed to intantiate), and the subframes field is 1601/UINT32_MAX of a frame. 161 162"""^^lv2:Markdown . 163 164ev:generic 165 lv2:documentation """ 166 167Indicates that this port does something meaningful for any event type. This is 168useful for things like event mixers, delays, serialisers, and so on. 169 170If this property is set, hosts should consider the port suitable for any type 171of event. Otherwise, hosts should consider the port 'appropriate' only for the 172specific event types listed with :supportsEvent. Note that plugins must 173gracefully handle unknown event types whether or not this property is present. 174 175"""^^lv2:Markdown . 176 177ev:supportsEvent 178 lv2:documentation """ 179 180Indicates that this port supports or "understands" a certain event type. 181 182For input ports, this means the plugin understands and does something useful 183with events of this type. For output ports, this means the plugin may generate 184events of this type. If the plugin never actually generates events of this 185type, but might pass them through from an input, this property should not be 186set (use ev:inheritsEvent for that). 187 188Plugins with event input ports must always gracefully handle any type of event, 189even if it does not 'support' it. This property should always be set for event 190types the plugin understands/generates so hosts can discover plugins 191appropriate for a given scenario (for example, plugins with a MIDI input). 192Hosts are not expected to consider event ports suitable for some type of event 193if the relevant :supportsEvent property is not set, unless the ev:generic 194property for that port is also set. 195 196 197"""^^lv2:Markdown . 198 199ev:inheritsEvent 200 lv2:documentation """ 201 202Indicates that this output port might pass through events that arrived at some 203other input port (or generate an event of the same type as events arriving at 204that input). The host must always check the stamp type of all outputs when 205connecting an input, but this property should be set whenever it applies. 206 207 208"""^^lv2:Markdown . 209 210ev:supportsTimeStamp 211 lv2:documentation """ 212 213Indicates that this port supports or "understands" a certain time stamp type. 214Meaningful only for input ports, the host must never connect a port to an event 215buffer with a time stamp type that isn't supported by the port. 216 217"""^^lv2:Markdown . 218 219ev:generatesTimeStamp 220 lv2:documentation """ 221 222Indicates that this port may output a certain time stamp type, regardless of 223the time stamp type of any input ports. 224 225If the port outputs stamps based on what type inputs are connected to, this 226property should not be set (use the ev:inheritsTimeStamp property for that). 227Hosts MUST check the time_stamp value of any output port buffers after a call 228to connect_port on ANY event input port on the plugin. 229 230If the plugin changes the stamp_type field of an output event buffer during a 231call to run(), the plugin must call the stamp_type_changed function provided by 232the host in the LV2_Event_Feature struct, if it is non-NULL. 233 234"""^^lv2:Markdown . 235 236ev:inheritsTimeStamp 237 lv2:documentation """ 238 239Indicates that this port follows the time stamp type of an input port. 240 241This property is not necessary, but it should be set for outputs that base 242their output type on an input port so the host can make more sense of the 243plugin and provide a more sensible interface. 244 245"""^^lv2:Markdown . 246 247