From 1b909186f4946d07abcd363b5d5231f9e241100d Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 28 Feb 2012 10:13:23 +0000 Subject: Redefine time extension generically. --- lv2/lv2plug.in/ns/ext/time/time.ttl | 123 ++++++++++++++++++++++++++++++------ 1 file changed, 103 insertions(+), 20 deletions(-) (limited to 'lv2/lv2plug.in/ns/ext/time/time.ttl') 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 +# Copyright 2011-2012 David Robillard # # 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 @@ 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 ; - rdfs:seeAlso + rdfs:seeAlso ; ] ; lv2:documentation """ -

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.

+

This is a vocabulary for precisely describing a position in time and the +passage of time itself, in both real and musical terms.

+ +

In addition to real time (e.g. seconds), two units of time are used: +frames and beats. A frame is a numbered quantum of time. Frame +time is related to real-time by the frame rate or sample rate, time:framesPerSecond. A beat is a single pulse of +musical time. Beat time is related to real-time by the tempo, time:beatsPerMinute.

+ +

Musical time additionally has a meter which describes passage of time +in terms of musical bars. A bar is a higher level grouping of beats. +The meter describes how many beats are in one bar.

""" . +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 """ -

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.:

-
-<plugin> lv2:port [
-    a lv2:InputPort , ev:EventPort ;
-    lv2:name "control" ;
-    lv2:index 0 ;
-    ev:supportsEvent time:Position
-] .
-
+

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.

+""" . + +time:Rate + a rdfs:Class ; + rdfs:subClassOf time:Position ; + rdfs:label "Rate" ; + lv2:documentation """ +

The rate of passage of time in terms of one unit with respect to +another.

""" . + +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 """ +

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.

+""" . + +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 """ +

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. +

""" . -- cgit v1.2.1