1@prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> . 2@prefix dcs: <http://ontologi.es/doap-changeset#> . 3@prefix doap: <http://usefulinc.com/ns/doap#> . 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/buf-size> 9 a doap:Project ; 10 doap:name "LV2 Buf Size" ; 11 doap:shortdesc "Access to, and restrictions on, buffer sizes." ; 12 doap:created "2012-08-07" ; 13 doap:developer <http://drobilla.net/drobilla#me> ; 14 doap:release [ 15 doap:revision "1.4" ; 16 doap:created "2015-09-18" ; 17 doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ; 18 dcs:blame <http://drobilla.net/drobilla#me> ; 19 dcs:changeset [ 20 dcs:item [ 21 rdfs:label "Add bufsz:nominalBlockLength option." 22 ] , [ 23 rdfs:label "Add bufsz:coarseBlockLength feature." 24 ] 25 ] 26 ] , [ 27 doap:revision "1.2" ; 28 doap:created "2012-12-21" ; 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 typo in bufsz:sequenceSize label." 34 ] 35 ] 36 ] , [ 37 doap:revision "1.0" ; 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 "Initial release." 44 ] 45 ] 46 ] ; 47 lv2:documentation """ 48 49This extension defines a facility for plugins to get information about the 50block length (the sample_count parameter of LV2_Descriptor::run) and port 51buffer sizes, as well as several features which can be used to restrict the 52block length. 53 54This extension defines features and properties but has no special purpose 55API of its own. The host provides all the relevant information to the plugin 56as [options](options.html). 57 58To require restrictions on the block length, plugins can require additional 59features: bufsz:boundedBlockLength, bufsz:powerOf2BlockLength, and 60bufsz:fixedBlockLength. These features are data-only, that is they merely 61indicate a restriction and do not carry any data or API. 62 63"""^^lv2:Markdown . 64 65bufsz:boundedBlockLength 66 lv2:documentation """ 67 68A feature that indicates the host will provide both the bufsz:minBlockLength 69and bufsz:maxBlockLength options to the plugin. Plugins that copy data from 70audio inputs can require this feature to ensure they know how much space is 71required for auxiliary buffers. Note the minimum may be zero, this feature is 72mainly useful to ensure a maximum is available. 73 74All hosts SHOULD support this feature, since it is simple to support and 75necessary for any plugins that may need to copy the input. 76 77"""^^lv2:Markdown . 78 79bufsz:fixedBlockLength 80 lv2:documentation """ 81 82A feature that indicates the host will always call LV2_Descriptor::run() with 83the same value for sample_count. This length MUST be provided as the value of 84both the bufsz:minBlockLength and bufsz:maxBlockLength options. 85 86Note that requiring this feature may severely limit the number of hosts capable 87of running the plugin. 88 89"""^^lv2:Markdown . 90 91bufsz:powerOf2BlockLength 92 lv2:documentation """ 93 94A feature that indicates the host will always call LV2_Descriptor::run() with a 95power of two sample_count. Note that this feature does not guarantee the value 96is the same each call, to guarantee a fixed power of two block length plugins 97must require both this feature and bufsz:fixedBlockLength. 98 99Note that requiring this feature may severely limit the number of hosts capable 100of running the plugin. 101 102"""^^lv2:Markdown . 103 104bufsz:coarseBlockLength 105 lv2:documentation """ 106 107A feature that indicates the plugin prefers coarse, regular block lengths. For 108example, plugins that do not implement sample-accurate control use this feature 109to indicate that the host should not split the run cycle because controls have 110changed. 111 112Note that this feature is merely a hint, and does not guarantee a fixed block 113length. The run cycle may be split for other reasons, and the blocksize itself 114may change anytime. 115 116"""^^lv2:Markdown . 117 118bufsz:maxBlockLength 119 lv2:documentation """ 120 121The maximum block length the host will ever request the plugin to process at 122once, that is, the maximum `sample_count` parameter that will ever be passed to 123LV2_Descriptor::run(). 124 125"""^^lv2:Markdown . 126 127bufsz:minBlockLength 128 lv2:documentation """ 129 130The minimum block length the host will ever request the plugin to process at 131once, that is, the minimum `sample_count` parameter that will ever be passed to 132LV2_Descriptor::run(). 133 134"""^^lv2:Markdown . 135 136bufsz:nominalBlockLength 137 lv2:documentation """ 138 139The typical block length the host will request the plugin to process at once, 140that is, the typical `sample_count` parameter that will be passed to 141LV2_Descriptor::run(). This will usually be equivalent, or close to, the 142maximum block length, but there are no strong guarantees about this value 143whatsoever. Plugins may use this length for optimization purposes, but MUST 144NOT assume the host will always process blocks of this length. In particular, 145the host MAY process longer blocks. 146 147"""^^lv2:Markdown . 148 149bufsz:sequenceSize 150 lv2:documentation """ 151 152This should be provided as an option by hosts that support event ports 153(including but not limited to MIDI), so plugins have the ability to allocate 154auxiliary buffers large enough to copy the input. 155 156"""^^lv2:Markdown . 157 158