Diatonic size: 1 = unison, 2 = second, ... 8 = octave, and beyond.
Quality label: 'P', 'M', 'm', or repeated 'A'/'d'.
Signed semitone span.
A readable label composed of quality and number, e.g. 'P5' or 'M3'.
StaticbetweenStaticofBuild an interval from explicit components.
Diatonic size: 1 = unison, 2 = second, ... 8 = octave.
Quality label: 'P', 'M', 'm', or repeated 'A'/'d'.
Signed semitone span.
The interval.
The plain interval data, for JSON serialization.
Private class fields do not serialize, so an explicit toJSON keeps
JSON.stringify(interval) from collapsing to {}.
The diatonic number, quality, and semitone span.
An immutable spelled interval value: a diatonic number, a quality label, and a signed semitone span. A thin convenience wrapper over the pitch module's plain interval result.
Example