@tonaljs/duration-value

Musical duration values

Usage no npm install needed!

<script type="module">
  import tonaljsDurationValue from 'https://cdn.skypack.dev/@tonaljs/duration-value';
</script>

README

@tonaljs/duration-value tonal npm version

Functions to parse and manipulate time duration values

Usage

ES6:

import { DurationValue } from "@tonaljs/tonal";

node:

const { DurationValue } = require("@tonaljs/tonal");

single module:

import DurationValue from "@tonaljs/duration-value";

API

DurationValue.names() => string[]

Return all duration names

DurationValue.names(); // => ["large", "duplex longa", ...]

DurationValue.shorthands() => string[]

Return all duration value shorthands

DurationValue.shorthands(); // => ["dl", "l", "d", "w", "h", "q", "e", "s", "t", "sf", "h", "th"]

DurationValue.get(name: string) // => object

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 ]

References