diff options
author | David Robillard <d@drobilla.net> | 2012-02-28 10:13:23 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-02-28 10:13:23 +0000 |
commit | 1b909186f4946d07abcd363b5d5231f9e241100d (patch) | |
tree | 5ad760b8ebd61afb09e26c81ae6269430f44b02c /lv2/lv2plug.in/ns/ext/time/time.ttl | |
parent | 9881756c176aacffd93e6ca4508eee07f222235b (diff) | |
download | lv2-1b909186f4946d07abcd363b5d5231f9e241100d.tar.xz |
Redefine time extension generically.
Diffstat (limited to 'lv2/lv2plug.in/ns/ext/time/time.ttl')
-rw-r--r-- | lv2/lv2plug.in/ns/ext/time/time.ttl | 123 |
1 files changed, 103 insertions, 20 deletions
diff --git a/lv2/lv2plug.in/ns/ext/time/time.ttl b/lv2/lv2plug.in/ns/ext/time/time.ttl index 40bfdbb..41611ac 100644 --- a/lv2/lv2plug.in/ns/ext/time/time.ttl +++ b/lv2/lv2plug.in/ns/ext/time/time.ttl @@ -1,5 +1,5 @@ # LV2 Time Extension -# Copyright 2011 David Robillard <d@drobilla.net> +# Copyright 2011-2012 David Robillard <d@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 @@ -24,34 +24,117 @@ <http://lv2plug.in/ns/ext/time> a lv2:Specification ; doap:name "LV2 Time" ; - doap:shortdesc "A data type for transport speed and position." ; + doap:shortdesc "Properties for describing time." ; doap:maintainer [ a foaf:Person ; foaf:name "David Robillard" ; foaf:homepage <http://drobilla.net/> ; - rdfs:seeAlso <http://drobilla.net/drobilla.rdf> + rdfs:seeAlso <http://drobilla.net/drobilla.rdf> ; ] ; lv2:documentation """ -<p>This extension defines a structure type, LV2_Time_Position, which -describes a tempo and position along a timeline. This can be used as -an event payload by the host to notify plugins about the current -tempo and position.</p> +<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>, <a +href="#framesPerSecond">time:framesPerSecond</a>. A beat is a single pulse of +musical time. Beat time is related to real-time by the <q>tempo</q>, <a +href="#beatsPerMinute">time:beatsPerMinute</a>.</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 "A point in time" ; + rdfs:comment "A point in time in some unit/dimension." . + time:Position a rdfs:Class ; - rdfs:label "LV2 time position" ; lv2:documentation """ -<p>Type for an LV2_Time_Position struct. This can be mapped to an integer and -used as the type field of an event to indicate that the event payload is an -LV2_Time_Positon struct. Plugins SHOULD indicate that a port supports time -information using the ev:supports predicate, e.g.:</p> -<pre class="turtle-code"> -<plugin> lv2:port [ - a lv2:InputPort , ev:EventPort ; - lv2:name "control" ; - lv2:index 0 ; - ev:supportsEvent time:Position -] . -</pre> +<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 ; + rdfs:range time:Position ; + rdfs:label "Position in time" . + +time:barBeat + a rdf:Property ; + rdfs:domain time:Time ; + rdfs:range xsd:float ; + rdfs:label "Beat within this bar" ; + rdfs:comment "The beat number within the bar, from 0 to beatsPerBar." . + +time:bar + a rdf:Property ; + rdfs:domain time:Time ; + rdfs:range xsd:long ; + rdfs:label "Global position in bars" . + +time:beat + a rdf:Property ; + rdfs:domain time:Time ; + rdfs:range xsd:double ; + rdfs:label "Global position in beats" . + +time:beatUnit + a rdf:Property ; + rdfs:domain time:Rate ; + rdfs:range xsd:double ; + 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 ; + rdfs:domain time:Rate ; + rdfs:range xsd:float ; + rdfs:label "Beats per bar" . + +time:beatsPerMinute + a rdf:Property ; + 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 ; + rdfs:domain time:Time ; + rdfs:range xsd:long ; + rdfs:label "Global position in frames" . + +time:framesPerSecond + a rdf:Property ; + 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 ; + 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> """ . |