aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/time
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/time')
-rw-r--r--lv2/time/lv2-time.doap.ttl51
-rw-r--r--lv2/time/manifest.ttl9
-rw-r--r--lv2/time/time.h53
-rw-r--r--lv2/time/time.ttl143
4 files changed, 256 insertions, 0 deletions
diff --git a/lv2/time/lv2-time.doap.ttl b/lv2/time/lv2-time.doap.ttl
new file mode 100644
index 0000000..c380d46
--- /dev/null
+++ b/lv2/time/lv2-time.doap.ttl
@@ -0,0 +1,51 @@
+@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/ext/time>
+ a doap:Project ;
+ doap:name "LV2 Time" ;
+ doap:shortdesc "Properties for describing time." ;
+ doap:created "2011-10-05" ;
+ doap:developer <http://drobilla.net/drobilla#me> ;
+ doap:release [
+ doap:revision "1.5" ;
+ doap:created "2018-05-21" ;
+ dcs:blame <http://drobilla.net/drobilla#me> ;
+ dcs:changeset [
+ dcs:item [
+ rdfs:label "Clarify time:beat origin."
+ ]
+ ]
+ ] , [
+ doap:revision "1.4" ;
+ doap:created "2016-07-31" ;
+ 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 "Define LV2_TIME_PREFIX."
+ ]
+ ]
+ ] , [
+ doap:revision "1.2" ;
+ 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 "Use consistent label style."
+ ]
+ ]
+ ] , [
+ doap:revision "1.0" ;
+ 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 "Initial release."
+ ]
+ ]
+ ] .
diff --git a/lv2/time/manifest.ttl b/lv2/time/manifest.ttl
new file mode 100644
index 0000000..3a8bfee
--- /dev/null
+++ b/lv2/time/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/time>
+ a lv2:Specification ;
+ lv2:minorVersion 1 ;
+ lv2:microVersion 5 ;
+ rdfs:seeAlso <time.ttl> .
+
diff --git a/lv2/time/time.h b/lv2/time/time.h
new file mode 100644
index 0000000..ec5007c
--- /dev/null
+++ b/lv2/time/time.h
@@ -0,0 +1,53 @@
+/*
+ Copyright 2011-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 time Time
+
+ Properties for describing time, see <http://lv2plug.in/ns/ext/time> for
+ details.
+
+ Note the time extension is purely data, this header merely defines URIs for
+ convenience.
+
+ @{
+*/
+
+#ifndef LV2_TIME_H
+#define LV2_TIME_H
+
+#define LV2_TIME_URI "http://lv2plug.in/ns/ext/time" ///< http://lv2plug.in/ns/ext/time
+#define LV2_TIME_PREFIX LV2_TIME_URI "#" ///< http://lv2plug.in/ns/ext/time#
+
+#define LV2_TIME__Time LV2_TIME_PREFIX "Time" ///< http://lv2plug.in/ns/ext/time#Time
+#define LV2_TIME__Position LV2_TIME_PREFIX "Position" ///< http://lv2plug.in/ns/ext/time#Position
+#define LV2_TIME__Rate LV2_TIME_PREFIX "Rate" ///< http://lv2plug.in/ns/ext/time#Rate
+#define LV2_TIME__position LV2_TIME_PREFIX "position" ///< http://lv2plug.in/ns/ext/time#position
+#define LV2_TIME__barBeat LV2_TIME_PREFIX "barBeat" ///< http://lv2plug.in/ns/ext/time#barBeat
+#define LV2_TIME__bar LV2_TIME_PREFIX "bar" ///< http://lv2plug.in/ns/ext/time#bar
+#define LV2_TIME__beat LV2_TIME_PREFIX "beat" ///< http://lv2plug.in/ns/ext/time#beat
+#define LV2_TIME__beatUnit LV2_TIME_PREFIX "beatUnit" ///< http://lv2plug.in/ns/ext/time#beatUnit
+#define LV2_TIME__beatsPerBar LV2_TIME_PREFIX "beatsPerBar" ///< http://lv2plug.in/ns/ext/time#beatsPerBar
+#define LV2_TIME__beatsPerMinute LV2_TIME_PREFIX "beatsPerMinute" ///< http://lv2plug.in/ns/ext/time#beatsPerMinute
+#define LV2_TIME__frame LV2_TIME_PREFIX "frame" ///< http://lv2plug.in/ns/ext/time#frame
+#define LV2_TIME__framesPerSecond LV2_TIME_PREFIX "framesPerSecond" ///< http://lv2plug.in/ns/ext/time#framesPerSecond
+#define LV2_TIME__speed LV2_TIME_PREFIX "speed" ///< http://lv2plug.in/ns/ext/time#speed
+
+/**
+ @}
+*/
+
+#endif /* LV2_TIME_H */
diff --git a/lv2/time/time.ttl b/lv2/time/time.ttl
new file mode 100644
index 0000000..13137af
--- /dev/null
+++ b/lv2/time/time.ttl
@@ -0,0 +1,143 @@
+@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 time: <http://lv2plug.in/ns/ext/time#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<http://lv2plug.in/ns/ext/time>
+ a owl:Ontology ;
+ rdfs:seeAlso <time.h> ,
+ <lv2-time.doap.ttl> ;
+ lv2:documentation """
+<p>This is a vocabulary for precisely describing a position in time and the
+passage of time itself, in both real and musical terms.</p>
+
+<p>In addition to real time (e.g. seconds), two units of time are used:
+<q>frames</q> and <q>beats</q>. A frame is a numbered quantum of time. Frame
+time is related to real-time by the <q>frame rate</q> or <q>sample rate</q>,
+time:framesPerSecond. A beat is a single pulse of musical time. Beat time is
+related to real-time by the <q>tempo</q>, time:beatsPerMinute.</p>
+
+<p>Musical time additionally has a <q>meter</q> which describes passage of time
+in terms of musical <q>bars</q>. A bar is a higher level grouping of beats.
+The meter describes how many beats are in one bar.</p>
+""" .
+
+time:Time
+ a rdfs:Class ;
+ rdfs:subClassOf time:Position ;
+ rdfs:label "Time" ;
+ rdfs:comment "A point in time in some unit/dimension." .
+
+time:Position
+ a rdfs:Class ;
+ rdfs:label "Position" ;
+ lv2:documentation """
+<p>A point in time and/or the speed at which time is passing. A position is
+both a point and a speed, which precisely defines a time within a timeline.</p>
+""" .
+
+time:Rate
+ a rdfs:Class ;
+ rdfs:subClassOf time:Position ;
+ rdfs:label "Rate" ;
+ lv2:documentation """
+<p>The rate of passage of time in terms of one unit with respect to
+another.</p> """ .
+
+time:position
+ a rdf:Property ,
+ owl:ObjectProperty ,
+ owl:FunctionalProperty ;
+ rdfs:range time:Position ;
+ rdfs:label "position" .
+
+time:barBeat
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Time ;
+ rdfs:range xsd:float ;
+ rdfs:label "beat within bar" ;
+ rdfs:comment "The beat number within the bar, from 0 to beatsPerBar." .
+
+time:bar
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Time ;
+ rdfs:range xsd:long ;
+ rdfs:label "bar" .
+
+time:beat
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Time ;
+ rdfs:range xsd:double ;
+ rdfs:label "beat" ;
+ rdfs:comment """
+The global running beat number. This is not the beat within a bar like barBeat,
+but relative to the same origin as time:bar and monotonically increases unless
+the transport is repositioned.
+""" .
+
+time:beatUnit
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Rate ;
+ rdfs:range xsd:nonNegativeInteger ;
+ lv2:documentation """
+<p>Beat unit, the note value that counts as one beat. This is the bottom number
+in a time signature: 2 for half note, 4 for quarter note, and so on.</p>
+""" .
+
+time:beatsPerBar
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Rate ;
+ rdfs:range xsd:float ;
+ rdfs:label "beats per bar" .
+
+time:beatsPerMinute
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Rate ;
+ rdfs:range xsd:float ;
+ rdfs:label "beats per minute" ;
+ rdfs:comment "Tempo in beats per minute." .
+
+time:frame
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Time ;
+ rdfs:range xsd:long ;
+ rdfs:label "frame" .
+
+time:framesPerSecond
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Rate ;
+ rdfs:range xsd:float ;
+ rdfs:label "frames per second" ;
+ rdfs:comment "Frame rate in frames per second." .
+
+time:speed
+ a rdf:Property ,
+ owl:DatatypeProperty ,
+ owl:FunctionalProperty ;
+ rdfs:domain time:Rate ;
+ rdfs:range xsd:float ;
+ rdfs:label "speed" ;
+ lv2:documentation """
+<p>The rate of the progress of time as a fraction of normal speed. For
+example, a rate of 0.0 is stopped, 1.0 is rolling at normal speed, 0.5 is
+rolling at half speed, -1.0 is reverse, and so on.
+</p>
+""" .