@stringsync/vexml
Version:
MusicXML to Vexflow
98 lines (97 loc) • 3.68 kB
JavaScript
;
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;