aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/buf-size.lv2
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-07-07 18:59:32 -0400
committerDavid Robillard <d@drobilla.net>2022-07-17 18:14:00 -0400
commit1eccbe4355685b322194df72b5de2382d5290b3b (patch)
tree0677b5c2f577a5024c351a164527f4bdd91a639b /lv2/buf-size.lv2
parentd4a970f6962dda28133290194832b726b566ddab (diff)
downloadlv2-1eccbe4355685b322194df72b5de2382d5290b3b.tar.xz
Rearrange source tree to be directly usable by dependants
This allows the LV2 source distribution to be used as an include path for compilers and an LV2_PATH for applications, at the expense of self-contained bundles. That's a nice idea, but it made LV2 itself weird and annoying to depend on. This rearranges things so that directories in the source tree correspond more closely to installation directories. To make this possible, the "aux" directory in the documentation output has been changed to "style", to avoid the reserved name "aux" on Windows.
Diffstat (limited to 'lv2/buf-size.lv2')
-rw-r--r--lv2/buf-size.lv2/buf-size.meta.ttl157
-rw-r--r--lv2/buf-size.lv2/buf-size.ttl68
-rw-r--r--lv2/buf-size.lv2/manifest.ttl9
3 files changed, 234 insertions, 0 deletions
diff --git a/lv2/buf-size.lv2/buf-size.meta.ttl b/lv2/buf-size.lv2/buf-size.meta.ttl
new file mode 100644
index 0000000..b1d8011
--- /dev/null
+++ b/lv2/buf-size.lv2/buf-size.meta.ttl
@@ -0,0 +1,157 @@
+@prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
+@prefix dcs: <http://ontologi.es/doap-changeset#> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+<http://lv2plug.in/ns/ext/buf-size>
+ a doap:Project ;
+ doap:name "LV2 Buf Size" ;
+ doap:shortdesc "Access to, and restrictions on, buffer sizes." ;
+ doap:created "2012-08-07" ;
+ doap:developer <http://drobilla.net/drobilla#me> ;
+ doap:release [
+ doap:revision "1.4" ;
+ doap:created "2015-09-18" ;
+ doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
+ dcs:blame <http://drobilla.net/drobilla#me> ;
+ dcs:changeset [
+ dcs:item [
+ rdfs:label "Add bufsz:nominalBlockLength option."
+ ] , [
+ rdfs:label "Add bufsz:coarseBlockLength feature."
+ ]
+ ]
+ ] , [
+ doap:revision "1.2" ;
+ doap:created "2012-12-21" ;
+ doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
+ dcs:blame <http://drobilla.net/drobilla#me> ;
+ dcs:changeset [
+ dcs:item [
+ rdfs:label "Fix typo in bufsz:sequenceSize label."
+ ]
+ ]
+ ] , [
+ doap:revision "1.0" ;
+ doap:created "2012-10-14" ;
+ doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
+ dcs:blame <http://drobilla.net/drobilla#me> ;
+ dcs:changeset [
+ dcs:item [
+ rdfs:label "Initial release."
+ ]
+ ]
+ ] ;
+ lv2:documentation """
+
+This extension defines a facility for plugins to get information about the
+block length (the sample_count parameter of LV2_Descriptor::run) and port
+buffer sizes, as well as several features which can be used to restrict the
+block length.
+
+This extension defines features and properties but has no special purpose
+API of its own. The host provides all the relevant information to the plugin
+as [options](options.html).
+
+To require restrictions on the block length, plugins can require additional
+features: bufsz:boundedBlockLength, bufsz:powerOf2BlockLength, and
+bufsz:fixedBlockLength. These features are data-only, that is they merely
+indicate a restriction and do not carry any data or API.
+
+"""^^lv2:Markdown .
+
+bufsz:boundedBlockLength
+ lv2:documentation """
+
+A feature that indicates the host will provide both the bufsz:minBlockLength
+and bufsz:maxBlockLength options to the plugin. Plugins that copy data from
+audio inputs can require this feature to ensure they know how much space is
+required for auxiliary buffers. Note the minimum may be zero, this feature is
+mainly useful to ensure a maximum is available.
+
+All hosts SHOULD support this feature, since it is simple to support and
+necessary for any plugins that may need to copy the input.
+
+"""^^lv2:Markdown .
+
+bufsz:fixedBlockLength
+ lv2:documentation """
+
+A feature that indicates the host will always call LV2_Descriptor::run() with
+the same value for sample_count. This length MUST be provided as the value of
+both the bufsz:minBlockLength and bufsz:maxBlockLength options.
+
+Note that requiring this feature may severely limit the number of hosts capable
+of running the plugin.
+
+"""^^lv2:Markdown .
+
+bufsz:powerOf2BlockLength
+ lv2:documentation """
+
+A feature that indicates the host will always call LV2_Descriptor::run() with a
+power of two sample_count. Note that this feature does not guarantee the value
+is the same each call, to guarantee a fixed power of two block length plugins
+must require both this feature and bufsz:fixedBlockLength.
+
+Note that requiring this feature may severely limit the number of hosts capable
+of running the plugin.
+
+"""^^lv2:Markdown .
+
+bufsz:coarseBlockLength
+ lv2:documentation """
+
+A feature that indicates the plugin prefers coarse, regular block lengths. For
+example, plugins that do not implement sample-accurate control use this feature
+to indicate that the host should not split the run cycle because controls have
+changed.
+
+Note that this feature is merely a hint, and does not guarantee a fixed block
+length. The run cycle may be split for other reasons, and the blocksize itself
+may change anytime.
+
+"""^^lv2:Markdown .
+
+bufsz:maxBlockLength
+ lv2:documentation """
+
+The maximum block length the host will ever request the plugin to process at
+once, that is, the maximum `sample_count` parameter that will ever be passed to
+LV2_Descriptor::run().
+
+"""^^lv2:Markdown .
+
+bufsz:minBlockLength
+ lv2:documentation """
+
+The minimum block length the host will ever request the plugin to process at
+once, that is, the minimum `sample_count` parameter that will ever be passed to
+LV2_Descriptor::run().
+
+"""^^lv2:Markdown .
+
+bufsz:nominalBlockLength
+ lv2:documentation """
+
+The typical block length the host will request the plugin to process at once,
+that is, the typical `sample_count` parameter that will be passed to
+LV2_Descriptor::run(). This will usually be equivalent, or close to, the
+maximum block length, but there are no strong guarantees about this value
+whatsoever. Plugins may use this length for optimization purposes, but MUST
+NOT assume the host will always process blocks of this length. In particular,
+the host MAY process longer blocks.
+
+"""^^lv2:Markdown .
+
+bufsz:sequenceSize
+ lv2:documentation """
+
+This should be provided as an option by hosts that support event ports
+(including but not limited to MIDI), so plugins have the ability to allocate
+auxiliary buffers large enough to copy the input.
+
+"""^^lv2:Markdown .
+
diff --git a/lv2/buf-size.lv2/buf-size.ttl b/lv2/buf-size.lv2/buf-size.ttl
new file mode 100644
index 0000000..4f6bd52
--- /dev/null
+++ b/lv2/buf-size.lv2/buf-size.ttl
@@ -0,0 +1,68 @@
+@prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix opts: <http://lv2plug.in/ns/ext/options#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<http://lv2plug.in/ns/ext/buf-size>
+ a owl:Ontology ;
+ rdfs:label "LV2 Buf Size" ;
+ rdfs:comment "Access to, and restrictions on, buffer sizes." ;
+ rdfs:seeAlso <buf-size.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> ,
+ <http://lv2plug.in/ns/ext/options> .
+
+bufsz:boundedBlockLength
+ a lv2:Feature ;
+ rdfs:label "bounded block length" ;
+ rdfs:comment "Block length has lower and upper bounds." .
+
+bufsz:fixedBlockLength
+ a lv2:Feature ;
+ rdfs:label "fixed block length" ;
+ rdfs:comment "Block length never changes." .
+
+bufsz:powerOf2BlockLength
+ a lv2:Feature ;
+ rdfs:label "power of 2 block length" ;
+ rdfs:comment "Block length is a power of 2." .
+
+bufsz:coarseBlockLength
+ a lv2:Feature ;
+ rdfs:label "coarse block length" ;
+ rdfs:comment "Plugin prefers coarse block length without buffer splitting." .
+
+bufsz:maxBlockLength
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ opts:Option ;
+ rdfs:label "maximum block length" ;
+ rdfs:comment "Block length has an upper bound." ;
+ rdfs:range xsd:nonNegativeInteger .
+
+bufsz:minBlockLength
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ opts:Option ;
+ rdfs:label "minimum block length" ;
+ rdfs:comment "Block length has a lower bound." ;
+ rdfs:range xsd:nonNegativeInteger .
+
+bufsz:nominalBlockLength
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ opts:Option ;
+ rdfs:label "nominal block length" ;
+ rdfs:comment "Typical block length that will most often be processed." ;
+ rdfs:range xsd:nonNegativeInteger .
+
+bufsz:sequenceSize
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ opts:Option ;
+ rdfs:label "sequence size" ;
+ rdfs:comment "The maximum size of a sequence, in bytes." ;
+ rdfs:range xsd:nonNegativeInteger .
+
diff --git a/lv2/buf-size.lv2/manifest.ttl b/lv2/buf-size.lv2/manifest.ttl
new file mode 100644
index 0000000..d242f97
--- /dev/null
+++ b/lv2/buf-size.lv2/manifest.ttl
@@ -0,0 +1,9 @@
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+<http://lv2plug.in/ns/ext/buf-size>
+ a lv2:Specification ;
+ lv2:minorVersion 1 ;
+ lv2:microVersion 4 ;
+ rdfs:seeAlso <buf-size.ttl> .
+