Humdrum Representation for Duration

REPRESENTATION

**dur -- duration (time-span) representation

DESCRIPTION

The **dur representation can be used to encode a sequence of time-spans or successive durations. Units may be seconds, minutes, hours, days, months, and/or years.

In the **dur representation, duration information is encoded according to the following basic syntax:

years/months/days/hours:minutes:seconds.decimal

Duration information may be encoded in full, or may consist of isolated elements or parts. The following table shows the most succinct ways of encoding single duration values within **dur:

.1111 one-hundredths of a second
1111 seconds
11:11 minutes
11::11 hours
11/11 years
/1111 months
//1111 days
Examples of **dur components
Notice that if a single numerical value appears, it is interpreted as seconds. For example, the data token 32 represents a duration of 32 seconds. If a single value appears followed by a slash, it is interpreted as the number of years; if a single value appears followed by a colon, it is interpreted as the number of minutes. Days and hours require two leading or two trailing delimiters respectively. In general, abbreviated forms of **dur representations tend to favor the two extremes of durations: in seconds and in years.

The data token 1:15:10 represents a duration of one hour fifteen minutes and 10 seconds. It is also possible to encode such durations in seconds alone as in the equivalent -- 4510. If only a single colon is encountered, it is presumed to delineate minutes and seconds as in 5:33 (five minutes and 33 seconds).

The data token 53/ means an elapsed duration of 53 years, whereas /9// means a duration of 9 months. The data token //730/ means 730 days.

The **dur representation provides a means for representing approximate durations. It also provides a means for representing uncertainty, as well as mechanisms for representing time boundaries (prior to ...; after ...).

If a duration token is preceded by the tilde (~) signifier, the entire data token is taken to be approximate. Hence, the token ~1/ signifies a duration of about 1 year and the token ~3 means a duration of about 3 seconds.

If a duration token is preceded by the question mark (?), the duration is taken to be uncertain. Hence, the token ?3: signifies a duration of perhaps 3 minutes.

The **dur representation does not support the `x' and `z' signifies used by related representations such as **date and **Zeit. However, **dur is able to represent shorter-than (<) and longer-than (>) indications. For example, the data token <1: means a duration of less than one minute.

Barlines are represented using the "common system" for barlines -- see barlines.

FILE TYPE

It is recommended that files containing predominantly **dur data should be given names with the distinguishing `.dur' extension.

SIGNIFIERS

The following table summarizes the **dur mappings of signifiers and signifieds.
0-9decimal values
/years-months, months-days and days-hours delimiter
:hours-minutes and minutes-seconds delimiter
.fractional second delimiter; null token
?duration uncertain
~duration approximate
<duration shorter than
>duration longer than
=barlines
==double barline
Summary of **dur Signifiers

EXAMPLES

A sample document is given below:
!! Gustav Holst
**dur
*M5/4
=1
.3
.3
.3
1
1.
0.5
0.5
1.0
=2
*-

PERTINENT COMMANDS

The following Humdrum command produces **dur data as output:
durchange canonical durations (**recip) to elapsed time in seconds

TANDEM INTERPRETATIONS

The following tandem interpretations can be used in conjunction with **dur:
MIDI channel*Ch1
meter signatures*M6/8
tempo*MM96.3
timebase*tb32
Tandem interpretations for **dur

SEE ALSO

barlines, **date, **metpos, **ordo, **recip, **takt, **time, **Zeit