diff options
Diffstat (limited to 'lv2/units')
-rw-r--r-- | lv2/units/lv2-units.doap.ttl | 109 | ||||
-rw-r--r-- | lv2/units/manifest.ttl | 9 | ||||
-rw-r--r-- | lv2/units/units.h | 69 | ||||
-rw-r--r-- | lv2/units/units.ttl | 393 |
4 files changed, 580 insertions, 0 deletions
diff --git a/lv2/units/lv2-units.doap.ttl b/lv2/units/lv2-units.doap.ttl new file mode 100644 index 0000000..076fef6 --- /dev/null +++ b/lv2/units/lv2-units.doap.ttl @@ -0,0 +1,109 @@ +@prefix dcs: <http://ontologi.es/doap-changeset#> . +@prefix doap: <http://usefulinc.com/ns/doap#> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +<http://lv2plug.in/ns/extensions/units> + a doap:Project ; + doap:name "LV2 Units" ; + doap:shortdesc "Units for LV2 values." ; + doap:created "2007-02-06" ; + doap:homepage <http://lv2plug.in/ns/extensions/units> ; + doap:license <http://opensource.org/licenses/isc> ; + doap:release [ + doap:revision "5.12" ; + doap:created "2019-02-03" ; + doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ; + dcs:blame <http://drobilla.net/drobilla#me> ; + dcs:changeset [ + dcs:item [ + rdfs:label "Fix outdated port description in documentation." + ] , [ + rdfs:label "Remove overly restrictive domain from units:unit." + ] + ] + ] , [ + doap:revision "5.10" ; + doap:created "2015-04-07" ; + doap:file-release <http://lv2plug.in/spec/lv2-1.12.0.tar.bz2> ; + dcs:blame <http://drobilla.net/drobilla#me> ; + dcs:changeset [ + dcs:item [ + rdfs:label "Fix non-existent port type in examples." + ] , [ + rdfs:label "Add lv2:Parameter to domain of units:unit." + ] + ] + ] , [ + doap:revision "5.8" ; + 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 "Remove units:name in favour of rdfs:label." + ] , [ + rdfs:label "Use consistent label style." + ] + ] + ] , [ + doap:revision "5.6" ; + doap:created "2012-04-17" ; + doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ; + dcs:blame <http://drobilla.net/drobilla#me> ; + dcs:changeset [ + dcs:item [ + rdfs:label "Add unit for audio frames." + ] , [ + rdfs:label "Add header of URI defines." + ] , [ + rdfs:label "Merge with unified LV2 package." + ] + ] + ] , [ + doap:revision "5.4" ; + doap:created "2011-11-21" ; + doap:file-release <http://lv2plug.in/spec/lv2-units-5.4.tar.bz2> ; + dcs:blame <http://drobilla.net/drobilla#me> ; + dcs:changeset [ + dcs:item [ + rdfs:label "Make units.ttl a valid OWL 2 DL ontology." + ] , [ + rdfs:label "Define used but undefined resources (units:name, units:render, units:symbol, units:Conversion, units:conversion, units:prefixConversion, units:to, and units:factor)." + ] , [ + rdfs:label "Update packaging." + ] , [ + rdfs:label "Improve documentation." + ] + ] + ] , [ + doap:revision "5.2" ; + doap:created "2010-10-05" ; + doap:file-release <http://lv2plug.in/spec/lv2-units-5.2.tar.bz2> ; + dcs:blame <http://drobilla.net/drobilla#me> ; + dcs:changeset [ + dcs:item [ + rdfs:label "Add build system (for installation)." + ] , [ + rdfs:label "Convert documentation to HTML and use lv2:documentation." + ] + ] + ] , [ + doap:revision "5.0" ; + doap:created "2010-10-05" ; + doap:file-release <http://lv2plug.in/spec/lv2-units-5.0.tar.gz> ; + dcs:blame <http://drobilla.net/drobilla#me> ; + dcs:changeset [ + dcs:item [ + rdfs:label "Initial release." + ] , [ + rdfs:label "Define used but undefined resources (units:name, units:render, units:symbol, units:Conversion, units:conversion, units:prefixConversion, units:to, and units:factor)." + ] , [ + rdfs:label "Update packaging." + ] , [ + rdfs:label "Improve documentation." + ] + ] + ] ; + doap:developer <http://plugin.org.uk/swh.xrdf#me> ; + doap:maintainer <http://drobilla.net/drobilla#me> . diff --git a/lv2/units/manifest.ttl b/lv2/units/manifest.ttl new file mode 100644 index 0000000..ada802a --- /dev/null +++ b/lv2/units/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/extensions/units> + a lv2:Specification ; + lv2:minorVersion 5 ; + lv2:microVersion 12 ; + rdfs:seeAlso <units.ttl> . + diff --git a/lv2/units/units.h b/lv2/units/units.h new file mode 100644 index 0000000..1debf60 --- /dev/null +++ b/lv2/units/units.h @@ -0,0 +1,69 @@ +/* + Copyright 2012-2016 David Robillard <http://drobilla.net> + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +/** + @defgroup units Units + + Units for LV2 values, see <http://lv2plug.in/ns/extensions/units> for + details. + + @{ +*/ + +#ifndef LV2_UNITS_H +#define LV2_UNITS_H + +#define LV2_UNITS_URI "http://lv2plug.in/ns/extensions/units" ///< http://lv2plug.in/ns/extensions/units +#define LV2_UNITS_PREFIX LV2_UNITS_URI "#" ///< http://lv2plug.in/ns/extensions/units# + +#define LV2_UNITS__Conversion LV2_UNITS_PREFIX "Conversion" ///< http://lv2plug.in/ns/ext/units#Conversion +#define LV2_UNITS__Unit LV2_UNITS_PREFIX "Unit" ///< http://lv2plug.in/ns/ext/units#Unit +#define LV2_UNITS__bar LV2_UNITS_PREFIX "bar" ///< http://lv2plug.in/ns/ext/units#bar +#define LV2_UNITS__beat LV2_UNITS_PREFIX "beat" ///< http://lv2plug.in/ns/ext/units#beat +#define LV2_UNITS__bpm LV2_UNITS_PREFIX "bpm" ///< http://lv2plug.in/ns/ext/units#bpm +#define LV2_UNITS__cent LV2_UNITS_PREFIX "cent" ///< http://lv2plug.in/ns/ext/units#cent +#define LV2_UNITS__cm LV2_UNITS_PREFIX "cm" ///< http://lv2plug.in/ns/ext/units#cm +#define LV2_UNITS__coef LV2_UNITS_PREFIX "coef" ///< http://lv2plug.in/ns/ext/units#coef +#define LV2_UNITS__conversion LV2_UNITS_PREFIX "conversion" ///< http://lv2plug.in/ns/ext/units#conversion +#define LV2_UNITS__db LV2_UNITS_PREFIX "db" ///< http://lv2plug.in/ns/ext/units#db +#define LV2_UNITS__degree LV2_UNITS_PREFIX "degree" ///< http://lv2plug.in/ns/ext/units#degree +#define LV2_UNITS__frame LV2_UNITS_PREFIX "frame" ///< http://lv2plug.in/ns/ext/units#frame +#define LV2_UNITS__hz LV2_UNITS_PREFIX "hz" ///< http://lv2plug.in/ns/ext/units#hz +#define LV2_UNITS__inch LV2_UNITS_PREFIX "inch" ///< http://lv2plug.in/ns/ext/units#inch +#define LV2_UNITS__khz LV2_UNITS_PREFIX "khz" ///< http://lv2plug.in/ns/ext/units#khz +#define LV2_UNITS__km LV2_UNITS_PREFIX "km" ///< http://lv2plug.in/ns/ext/units#km +#define LV2_UNITS__m LV2_UNITS_PREFIX "m" ///< http://lv2plug.in/ns/ext/units#m +#define LV2_UNITS__mhz LV2_UNITS_PREFIX "mhz" ///< http://lv2plug.in/ns/ext/units#mhz +#define LV2_UNITS__midiNote LV2_UNITS_PREFIX "midiNote" ///< http://lv2plug.in/ns/ext/units#midiNote +#define LV2_UNITS__mile LV2_UNITS_PREFIX "mile" ///< http://lv2plug.in/ns/ext/units#mile +#define LV2_UNITS__min LV2_UNITS_PREFIX "min" ///< http://lv2plug.in/ns/ext/units#min +#define LV2_UNITS__mm LV2_UNITS_PREFIX "mm" ///< http://lv2plug.in/ns/ext/units#mm +#define LV2_UNITS__ms LV2_UNITS_PREFIX "ms" ///< http://lv2plug.in/ns/ext/units#ms +#define LV2_UNITS__name LV2_UNITS_PREFIX "name" ///< http://lv2plug.in/ns/ext/units#name +#define LV2_UNITS__oct LV2_UNITS_PREFIX "oct" ///< http://lv2plug.in/ns/ext/units#oct +#define LV2_UNITS__pc LV2_UNITS_PREFIX "pc" ///< http://lv2plug.in/ns/ext/units#pc +#define LV2_UNITS__prefixConversion LV2_UNITS_PREFIX "prefixConversion" ///< http://lv2plug.in/ns/ext/units#prefixConversion +#define LV2_UNITS__render LV2_UNITS_PREFIX "render" ///< http://lv2plug.in/ns/ext/units#render +#define LV2_UNITS__s LV2_UNITS_PREFIX "s" ///< http://lv2plug.in/ns/ext/units#s +#define LV2_UNITS__semitone12TET LV2_UNITS_PREFIX "semitone12TET" ///< http://lv2plug.in/ns/ext/units#semitone12TET +#define LV2_UNITS__symbol LV2_UNITS_PREFIX "symbol" ///< http://lv2plug.in/ns/ext/units#symbol +#define LV2_UNITS__unit LV2_UNITS_PREFIX "unit" ///< http://lv2plug.in/ns/ext/units#unit + +#endif /* LV2_UNITS_H */ + +/** + @} +*/ diff --git a/lv2/units/units.ttl b/lv2/units/units.ttl new file mode 100644 index 0000000..aaae520 --- /dev/null +++ b/lv2/units/units.ttl @@ -0,0 +1,393 @@ +@prefix lv2: <http://lv2plug.in/ns/lv2core#> . +@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 units: <http://lv2plug.in/ns/extensions/units#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +<http://lv2plug.in/ns/extensions/units> + a owl:Ontology ; + owl:imports <http://lv2plug.in/ns/lv2core> ; + rdfs:seeAlso <units.h> , + <lv2-units.doap.ttl> ; + lv2:documentation """ +<p>This vocabulary defines a number of units for use in audio processing.</p> + +<p>For example, to say that a gain port's value is in decibels (units:db)</p> +<pre class="turtle-code"> +@prefix units: <http://lv2plug.in/ns/extensions/units#> . +@prefix eg: <http://example.org/> . + +eg:plugin lv2:port [ + a lv2:ControlPort , lv2:InputPort ; + lv2:index 0 ; + lv2:symbol "gain" ; + lv2:name "gain" ; + units:unit units:db +] . +</pre> + +<p>Using the same form, plugins may also specify one-off units inline, to give +better display hints to hosts:</p> +<pre class="turtle-code"> +eg:plugin lv2:port [ + a lv2:ControlPort , lv2:InputPort ; + lv2:index 0 ; + lv2:symbol "frob" ; + lv2:name "frob level" ; + units:unit [ + a units:Unit ; + rdfs:label "frobnication" ; + units:symbol "fr" ; + units:render "%f f" + ] +] . +</pre> + +<p>It is also possible to define conversions between various units, which makes +it possible for hosts to automatically and generically convert from a given +unit to a desired unit. The units defined in this extension include conversion +definitions where it makes sense to do so.</p> +""" . + +units:Unit + a rdfs:Class , + owl:Class ; + rdfs:label "Unit" ; + rdfs:comment "A unit for LV2 port data" . + +units:unit + a rdf:Property , + owl:ObjectProperty ; + rdfs:range units:Unit ; + rdfs:label "unit" ; + rdfs:comment "The unit used by the value of a port or parameter." . + +units:render + a rdf:Property , + owl:DatatypeProperty ; + rdfs:label "unit format string" ; + rdfs:domain units:Unit ; + rdfs:range xsd:string ; + rdfs:comment """A printf format string for rendering a value (eg. "%f dB").""" . + +units:symbol + a rdf:Property , + owl:DatatypeProperty ; + rdfs:label "unit symbol" ; + rdfs:domain units:Unit ; + rdfs:range xsd:string ; + rdfs:comment "The abbreviated symbol for the unit (e.g. dB)." . + +units:Conversion + a rdfs:Class , + owl:Class ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onProperty units:to ; + owl:cardinality 1 ; + rdfs:comment "A conversion MUST have exactly 1 units:to property." + ] ; + rdfs:label "Conversion" ; + rdfs:comment "A conversion from one unit to another." . + +units:conversion + a rdf:Property , + owl:ObjectProperty ; + rdfs:domain units:Unit ; + rdfs:range units:Conversion ; + rdfs:label "conversion" ; + rdfs:comment "A conversion from this unit to another." . + +units:prefixConversion + a rdf:Property , + owl:ObjectProperty ; + rdfs:subPropertyOf units:conversion ; + rdfs:domain units:Unit ; + rdfs:range units:Conversion ; + rdfs:label "prefix conversion" ; + rdfs:comment """A conversion from this unit to the same unit but with a different SI prefix (e.g. Hz to kHz).""" . + +units:to + a rdf:Property , + owl:ObjectProperty ; + rdfs:domain units:Conversion ; + rdfs:range units:Unit ; + rdfs:label "conversion target" ; + rdfs:comment "The target unit this conversion converts to." . + +units:factor + a rdf:Property , + owl:DatatypeProperty ; + rdfs:domain units:Conversion ; + rdfs:label "conversion factor" ; + rdfs:comment """The factor to multiply the source value by in order to convert to the target unit.""" . + +units:s + a units:Unit ; + units:conversion [ + units:factor 0.0166666666 ; + units:to units:min + ] ; + rdfs:label "seconds" ; + units:prefixConversion [ + units:factor 1000 ; + units:to units:ms + ] ; + units:render "%f s" ; + units:symbol "s" . + +units:ms + a units:Unit ; + rdfs:label "milliseconds" ; + units:prefixConversion [ + units:factor 0.001 ; + units:to units:s + ] ; + units:render "%f ms" ; + units:symbol "ms" . + +units:min + a units:Unit ; + units:conversion [ + units:factor 60.0 ; + units:to units:s + ] ; + rdfs:label "minutes" ; + units:render "%f mins" ; + units:symbol "min" . + +units:bar + a units:Unit ; + rdfs:label "bars" ; + units:render "%f bars" ; + units:symbol "bars" . + +units:beat + a units:Unit ; + rdfs:label "beats" ; + units:render "%f beats" ; + units:symbol "beats" . + +units:frame + a units:Unit ; + rdfs:label "audio frames" ; + units:render "%f frames" ; + units:symbol "frames" . + +units:m + a units:Unit ; + units:conversion [ + units:factor 39.37 ; + units:to units:inch + ] ; + rdfs:label "metres" ; + units:prefixConversion [ + units:factor 100 ; + units:to units:cm + ] , [ + units:factor 1000 ; + units:to units:mm + ] , [ + units:factor 0.001 ; + units:to units:km + ] ; + units:render "%f m" ; + units:symbol "m" . + +units:cm + a units:Unit ; + units:conversion [ + units:factor 0.3937 ; + units:to units:inch + ] ; + rdfs:label "centimetres" ; + units:prefixConversion [ + units:factor 0.01 ; + units:to units:m + ] , [ + units:factor 10 ; + units:to units:mm + ] , [ + units:factor 0.00001 ; + units:to units:km + ] ; + units:render "%f cm" ; + units:symbol "cm" . + +units:mm + a units:Unit ; + units:conversion [ + units:factor 0.03937 ; + units:to units:inch + ] ; + rdfs:label "millimetres" ; + units:prefixConversion [ + units:factor 0.001 ; + units:to units:m + ] , [ + units:factor 0.1 ; + units:to units:cm + ] , [ + units:factor 0.000001 ; + units:to units:km + ] ; + units:render "%f mm" ; + units:symbol "mm" . + +units:km + a units:Unit ; + units:conversion [ + units:factor 0.62138818 ; + units:to units:mile + ] ; + rdfs:label "kilometres" ; + units:prefixConversion [ + units:factor 1000 ; + units:to units:m + ] , [ + units:factor 100000 ; + units:to units:cm + ] , [ + units:factor 1000000 ; + units:to units:mm + ] ; + units:render "%f km" ; + units:symbol "km" . + +units:inch + a units:Unit ; + units:conversion [ + units:factor 2.54 ; + units:to units:cm + ] ; + rdfs:label "inches" ; + units:render """%f\"""" ; + units:symbol "in" . + +units:mile + a units:Unit ; + units:conversion [ + units:factor 1.6093 ; + units:to units:km + ] ; + rdfs:label "miles" ; + units:render "%f mi" ; + units:symbol "mi" . + +units:db + a units:Unit ; + rdfs:label "decibels" ; + units:render "%f dB" ; + units:symbol "dB" . + +units:pc + a units:Unit ; + units:conversion [ + units:factor 0.01 ; + units:to units:coef + ] ; + rdfs:label "percent" ; + units:render "%f%%" ; + units:symbol "%" . + +units:coef + a units:Unit ; + units:conversion [ + units:factor 100 ; + units:to units:pc + ] ; + rdfs:label "coefficient" ; + units:render "* %f" ; + units:symbol "" . + +units:hz + a units:Unit ; + rdfs:label "hertz" ; + units:prefixConversion [ + units:factor 0.001 ; + units:to units:khz + ] , [ + units:factor 0.000001 ; + units:to units:mhz + ] ; + units:render "%f Hz" ; + units:symbol "Hz" . + +units:khz + a units:Unit ; + rdfs:label "kilohertz" ; + units:prefixConversion [ + units:factor 1000 ; + units:to units:hz + ] , [ + units:factor 0.001 ; + units:to units:mhz + ] ; + units:render "%f kHz" ; + units:symbol "kHz" . + +units:mhz + a units:Unit ; + rdfs:label "megahertz" ; + units:prefixConversion [ + units:factor 1000000 ; + units:to units:hz + ] , [ + units:factor 0.001 ; + units:to units:khz + ] ; + units:render "%f MHz" ; + units:symbol "MHz" . + +units:bpm + a units:Unit ; + rdfs:label "beats per minute" ; + units:prefixConversion [ + units:factor 0.0166666666 ; + units:to units:hz + ] ; + units:render "%f BPM" ; + units:symbol "BPM" . + +units:oct + a units:Unit ; + units:conversion [ + units:factor 12.0 ; + units:to units:semitone12TET + ] ; + rdfs:label "octaves" ; + units:render "%f octaves" ; + units:symbol "oct" . + +units:cent + a units:Unit ; + units:conversion [ + units:factor 0.01 ; + units:to units:semitone12TET + ] ; + rdfs:label "cents" ; + units:render "%f ct" ; + units:symbol "ct" . + +units:semitone12TET + a units:Unit ; + units:conversion [ + units:factor 0.083333333 ; + units:to units:oct + ] ; + rdfs:label "semitones" ; + units:render "%f semi" ; + units:symbol "semi" . + +units:degree + a units:Unit ; + rdfs:label "degrees" ; + units:render "%f deg" ; + units:symbol "deg" . + +units:midiNote + a units:Unit ; + rdfs:label "MIDI note" ; + units:render "MIDI note %d" ; + units:symbol "note" . |