UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

98 lines (97 loc) 3.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Articulations = void 0; const enums_1 = require("./enums"); /** * The `<articulations>` element groups together articulations and accents. * * See https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/articulations/ */ class Articulations { element; constructor(element) { this.element = element; } /** Returns the accent articulations. */ getAccents() { return this.element.all('accent').map((element) => ({ type: 'accent', placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the strong accent articulations. */ getStrongAccents() { return this.element.all('strong-accent').map((element) => ({ type: 'strongaccent', placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the staccato articulations. */ getStaccatos() { return this.element.all('staccato').map((element) => ({ type: 'staccato', placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the tenuto articulations. */ getTenutos() { return this.element.all('tenuto').map((element) => ({ type: 'tenuto', placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the detached legato articulations. */ getDetachedLegatos() { return this.element.all('detached-legato').map((element) => ({ type: 'detachedlegato', placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the staccatissimo articulations. */ getStaccatissimos() { return this.element.all('staccatissimo').map((element) => ({ type: 'staccatissimo', placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the scoop articulations. */ getScoops() { return this.element.all('scoop').map((element) => ({ type: 'scoop', lineType: element.attr('line-type').withDefault('solid').enum(enums_1.LINE_TYPES), placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the plop articulations. */ getPlops() { return this.element.all('plop').map((element) => ({ type: 'plop', lineType: element.attr('line-type').withDefault('solid').enum(enums_1.LINE_TYPES), placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the doit articulations. */ getDoits() { return this.element.all('doit').map((element) => ({ type: 'doit', lineType: element.attr('line-type').withDefault('solid').enum(enums_1.LINE_TYPES), placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the falloff articulations. */ getFalloffs() { return this.element.all('falloff').map((element) => ({ type: 'falloff', lineType: element.attr('line-type').withDefault('solid').enum(enums_1.LINE_TYPES), placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } /** Returns the breath mark articulations. */ getBreathMarks() { return this.element.all('breath-mark').map((element) => ({ type: 'breathmark', placement: element.attr('placement').enum(enums_1.ABOVE_BELOW), })); } } exports.Articulations = Articulations;