@stringsync/vexml
Version:
MusicXML to Vexflow
23 lines (22 loc) • 920 B
JavaScript
import { ElementDescriber } from './elementdescriber';
export class HintDescriber {
elementDescriber;
constructor(elementDescriber) {
this.elementDescriber = elementDescriber;
}
static noop() {
return new HintDescriber(ElementDescriber.noop());
}
describe(hint) {
switch (hint.type) {
case 'start':
return `start(${this.elementDescriber.describe(hint.element)})`;
case 'stop':
return `stop(${this.elementDescriber.describe(hint.element)})`;
case 'retrigger':
return `retrigger(${this.elementDescriber.describe(hint.untriggerElement)}, ${this.elementDescriber.describe(hint.retriggerElement)})`;
case 'sustain':
return `sustain(${this.elementDescriber.describe(hint.previousElement)}, ${this.elementDescriber.describe(hint.currentElement)})`;
}
}
}