UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

38 lines (37 loc) 1.13 kB
export class Tuplet { config; log; number; phase; showNumber; placement; constructor(config, log, number, phase, showNumber, placement) { this.config = config; this.log = log; this.number = number; this.phase = phase; this.showNumber = showNumber; this.placement = placement; } static create(config, log, musicXML) { let phase; switch (musicXML.tuplet.getType()) { case 'start': phase = 'start'; break; default: phase = 'stop'; break; } const number = musicXML.tuplet.getNumber(); const showNumber = musicXML.tuplet.getShowNumber() === 'both'; const placement = musicXML.tuplet.getPlacement(); return new Tuplet(config, log, number, phase, showNumber, placement); } parse(voiceEntryCtx) { if (this.phase === 'start') { return voiceEntryCtx.beginTuplet(this.number, this.showNumber, this.placement); } return voiceEntryCtx.closeTuplet(this.number); } }