Functions to parse and manipulate time duration values
ES6:
import { DurationValue } from "tonal";
node:
const { DurationValue } = require("tonal");
single module:
import DurationValue from "@tonaljs/duration-value";
Return all duration names
DurationValue.names(); // => ["large", "duplex longa", ...]
Return all duration value shorthands
DurationValue.shorthands(); // => ["dl", "l", "d", "w", "h", "q", "e", "s", "t", "sf", "h", "th"]
Get a duration value object from name:
DurationValue.get("quarter"); // =>
// {
// empty: false,
// name: 'q',
// value: 0.25,
// fraction: [ 1, 4 ],
// shorthand: 'q',
// dots: '',
// names: [ 'quarter', 'crotchet' ]
// }
The name accepts an arbitrary number of dots:
DurationValue.get("quarter.."); // =>
// {
// empty: false,
// name: 'q..',
// value: 0.4375,
// fraction: [ 7, 16 ],
// shorthand: 'q',
// dots: '..',
// names: [ 'quarter', 'crotchet' ]
// }
Short names are accepted:
DurationValue.get("q") == DurationValue.get("quarter");
DurationValue.get("q.") == DurationValue.get("quarter.");
DurationValue.get("q..") == DurationValue.get("quarter..");
Some aliases (value
and fraction
) are provided:
DurationValue.value("q.."); // => 0.4375
DurationValue.fraction("q.."); // => [ 7, 16 ]