aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/units
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/units')
-rw-r--r--lv2/units/manifest.ttl9
-rw-r--r--lv2/units/units.h70
-rw-r--r--lv2/units/units.meta.ttl154
-rw-r--r--lv2/units/units.ttl379
4 files changed, 612 insertions, 0 deletions
diff --git a/lv2/units/manifest.ttl b/lv2/units/manifest.ttl
new file mode 100644
index 0000000..c6c9286
--- /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..caea38d
--- /dev/null
+++ b/lv2/units/units.h
@@ -0,0 +1,70 @@
+/*
+ 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
+ @ingroup lv2
+
+ 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/extensions/units#Conversion
+#define LV2_UNITS__Unit LV2_UNITS_PREFIX "Unit" ///< http://lv2plug.in/ns/extensions/units#Unit
+#define LV2_UNITS__bar LV2_UNITS_PREFIX "bar" ///< http://lv2plug.in/ns/extensions/units#bar
+#define LV2_UNITS__beat LV2_UNITS_PREFIX "beat" ///< http://lv2plug.in/ns/extensions/units#beat
+#define LV2_UNITS__bpm LV2_UNITS_PREFIX "bpm" ///< http://lv2plug.in/ns/extensions/units#bpm
+#define LV2_UNITS__cent LV2_UNITS_PREFIX "cent" ///< http://lv2plug.in/ns/extensions/units#cent
+#define LV2_UNITS__cm LV2_UNITS_PREFIX "cm" ///< http://lv2plug.in/ns/extensions/units#cm
+#define LV2_UNITS__coef LV2_UNITS_PREFIX "coef" ///< http://lv2plug.in/ns/extensions/units#coef
+#define LV2_UNITS__conversion LV2_UNITS_PREFIX "conversion" ///< http://lv2plug.in/ns/extensions/units#conversion
+#define LV2_UNITS__db LV2_UNITS_PREFIX "db" ///< http://lv2plug.in/ns/extensions/units#db
+#define LV2_UNITS__degree LV2_UNITS_PREFIX "degree" ///< http://lv2plug.in/ns/extensions/units#degree
+#define LV2_UNITS__frame LV2_UNITS_PREFIX "frame" ///< http://lv2plug.in/ns/extensions/units#frame
+#define LV2_UNITS__hz LV2_UNITS_PREFIX "hz" ///< http://lv2plug.in/ns/extensions/units#hz
+#define LV2_UNITS__inch LV2_UNITS_PREFIX "inch" ///< http://lv2plug.in/ns/extensions/units#inch
+#define LV2_UNITS__khz LV2_UNITS_PREFIX "khz" ///< http://lv2plug.in/ns/extensions/units#khz
+#define LV2_UNITS__km LV2_UNITS_PREFIX "km" ///< http://lv2plug.in/ns/extensions/units#km
+#define LV2_UNITS__m LV2_UNITS_PREFIX "m" ///< http://lv2plug.in/ns/extensions/units#m
+#define LV2_UNITS__mhz LV2_UNITS_PREFIX "mhz" ///< http://lv2plug.in/ns/extensions/units#mhz
+#define LV2_UNITS__midiNote LV2_UNITS_PREFIX "midiNote" ///< http://lv2plug.in/ns/extensions/units#midiNote
+#define LV2_UNITS__mile LV2_UNITS_PREFIX "mile" ///< http://lv2plug.in/ns/extensions/units#mile
+#define LV2_UNITS__min LV2_UNITS_PREFIX "min" ///< http://lv2plug.in/ns/extensions/units#min
+#define LV2_UNITS__mm LV2_UNITS_PREFIX "mm" ///< http://lv2plug.in/ns/extensions/units#mm
+#define LV2_UNITS__ms LV2_UNITS_PREFIX "ms" ///< http://lv2plug.in/ns/extensions/units#ms
+#define LV2_UNITS__name LV2_UNITS_PREFIX "name" ///< http://lv2plug.in/ns/extensions/units#name
+#define LV2_UNITS__oct LV2_UNITS_PREFIX "oct" ///< http://lv2plug.in/ns/extensions/units#oct
+#define LV2_UNITS__pc LV2_UNITS_PREFIX "pc" ///< http://lv2plug.in/ns/extensions/units#pc
+#define LV2_UNITS__prefixConversion LV2_UNITS_PREFIX "prefixConversion" ///< http://lv2plug.in/ns/extensions/units#prefixConversion
+#define LV2_UNITS__render LV2_UNITS_PREFIX "render" ///< http://lv2plug.in/ns/extensions/units#render
+#define LV2_UNITS__s LV2_UNITS_PREFIX "s" ///< http://lv2plug.in/ns/extensions/units#s
+#define LV2_UNITS__semitone12TET LV2_UNITS_PREFIX "semitone12TET" ///< http://lv2plug.in/ns/extensions/units#semitone12TET
+#define LV2_UNITS__symbol LV2_UNITS_PREFIX "symbol" ///< http://lv2plug.in/ns/extensions/units#symbol
+#define LV2_UNITS__unit LV2_UNITS_PREFIX "unit" ///< http://lv2plug.in/ns/extensions/units#unit
+
+#endif /* LV2_UNITS_H */
+
+/**
+ @}
+*/
diff --git a/lv2/units/units.meta.ttl b/lv2/units/units.meta.ttl
new file mode 100644
index 0000000..bb40547
--- /dev/null
+++ b/lv2/units/units.meta.ttl
@@ -0,0 +1,154 @@
+@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#> .
+@prefix units: <http://lv2plug.in/ns/extensions/units#> .
+
+<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> ;
+ lv2:documentation """
+
+This is a vocabulary for units typically used for control values in audio
+processing.
+
+For example, to say that a gain control is in decibels:
+
+ :::turtle
+ @prefix units: &lt;http://lv2plug.in/ns/extensions/units#&gt; .
+ @prefix eg: &lt;http://example.org/&gt; .
+
+ eg:plugin lv2:port [
+ a lv2:ControlPort , lv2:InputPort ;
+ lv2:index 0 ;
+ lv2:symbol "gain" ;
+ lv2:name "Gain" ;
+ units:unit units:db
+ ] .
+
+Using the same form, plugins may also specify one-off units inline, to give
+better display hints to hosts:
+
+ :::turtle
+ 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"
+ ]
+ ] .
+
+It is also possible to define conversions between various units, which makes it
+possible for hosts to automatically convert between units where possible. The
+units defined in this extension include conversion definitions where it makes
+sense to do so.
+
+"""^^lv2:Markdown .
+
diff --git a/lv2/units/units.ttl b/lv2/units/units.ttl
new file mode 100644
index 0000000..959c063
--- /dev/null
+++ b/lv2/units/units.ttl
@@ -0,0 +1,379 @@
+@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 ;
+ rdfs:label "LV2 Units" ;
+ rdfs:comment "Units for LV2 values." ;
+ rdfs:seeAlso <units.h> ,
+ <units.meta.ttl> .
+
+units:Unit
+ a rdfs:Class ,
+ owl:Class ;
+ rdfs:label "Unit" ;
+ rdfs:comment "A unit for a control value." .
+
+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 (e.g., "%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 this 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 another with the same base but a different prefix." .
+
+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" ;
+ rdfs:comment "Seconds, the SI base unit for time." ;
+ units:prefixConversion [
+ units:factor 1000 ;
+ units:to units:ms
+ ] ;
+ units:render "%f s" ;
+ units:symbol "s" .
+
+units:ms
+ a units:Unit ;
+ rdfs:label "milliseconds" ;
+ rdfs:comment "Milliseconds (thousandths of seconds)." ;
+ 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" ;
+ rdfs:comment "Minutes (60s of seconds and 60ths of an hour)." ;
+ units:render "%f mins" ;
+ units:symbol "min" .
+
+units:bar
+ a units:Unit ;
+ rdfs:label "bars" ;
+ rdfs:comment "Musical bars or measures." ;
+ units:render "%f bars" ;
+ units:symbol "bars" .
+
+units:beat
+ a units:Unit ;
+ rdfs:label "beats" ;
+ rdfs:comment "Musical beats." ;
+ units:render "%f beats" ;
+ units:symbol "beats" .
+
+units:frame
+ a units:Unit ;
+ rdfs:label "audio frames" ;
+ rdfs:comment "Audio frames or samples." ;
+ 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" ;
+ rdfs:comment "Metres, the SI base unit for length." ;
+ 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" ;
+ rdfs:comment "Centimetres (hundredths of metres)." ;
+ 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" ;
+ rdfs:comment "Millimetres (thousandths of metres)." ;
+ 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" ;
+ rdfs:comment "Kilometres (thousands of metres)." ;
+ 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 0.0254 ;
+ units:to units:m
+ ] ;
+ rdfs:label "inches" ;
+ rdfs:comment "An inch, defined as exactly 0.0254 metres." ;
+ units:render "%f\"" ;
+ units:symbol "in" .
+
+units:mile
+ a units:Unit ;
+ units:conversion [
+ units:factor 1609.344 ;
+ units:to units:m
+ ] ;
+ rdfs:label "miles" ;
+ rdfs:comment "A mile, defined as exactly 1609.344 metres." ;
+ units:render "%f mi" ;
+ units:symbol "mi" .
+
+units:db
+ a units:Unit ;
+ rdfs:label "decibels" ;
+ rdfs:comment "Decibels, a logarithmic relative unit where 0 is unity." ;
+ 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" ;
+ rdfs:comment "Percentage, a ratio as a fraction of 100." ;
+ units:render "%f%%" ;
+ units:symbol "%" .
+
+units:coef
+ a units:Unit ;
+ units:conversion [
+ units:factor 100 ;
+ units:to units:pc
+ ] ;
+ rdfs:label "coefficient" ;
+ rdfs:comment "A scale coefficient where 1 is unity, or 100 percent." ;
+ units:render "* %f" ;
+ units:symbol "" .
+
+units:hz
+ a units:Unit ;
+ rdfs:label "hertz" ;
+ rdfs:comment "Hertz, or inverse seconds, the SI derived unit for frequency." ;
+ 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" ;
+ rdfs:comment "Kilohertz (thousands of Hertz)." ;
+ 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" ;
+ rdfs:comment "Megahertz (millions of Hertz)." ;
+ 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" ;
+ rdfs:comment "Beats Per Minute (BPM), the standard unit for musical tempo." ;
+ 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" ;
+ rdfs:comment "Octaves, relative musical pitch where +1 octave doubles the frequency." ;
+ 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" ;
+ rdfs:comment "Cents (hundredths of semitones)." ;
+ 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" ;
+ rdfs:comment "A semitone in the 12-tone equal temperament scale." ;
+ units:render "%f semi" ;
+ units:symbol "semi" .
+
+units:degree
+ a units:Unit ;
+ rdfs:label "degrees" ;
+ rdfs:comment "An angle where 360 degrees is one full rotation." ;
+ units:render "%f deg" ;
+ units:symbol "deg" .
+
+units:midiNote
+ a units:Unit ;
+ rdfs:label "MIDI note" ;
+ rdfs:comment "A MIDI note number." ;
+ units:render "MIDI note %d" ;
+ units:symbol "note" .
+