|
@@ -192,6 +192,8 @@ export class InstrumentReader {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ noteDuration = this.getNoteDurationFromTypeNode(xmlNode);
|
|
}
|
|
}
|
|
|
|
|
|
let musicTimestamp: Fraction = currentFraction.clone();
|
|
let musicTimestamp: Fraction = currentFraction.clone();
|
|
@@ -208,6 +210,7 @@ export class InstrumentReader {
|
|
if (!this.currentVoiceGenerator.hasVoiceEntry()
|
|
if (!this.currentVoiceGenerator.hasVoiceEntry()
|
|
|| (!isChord && !isGraceNote && !lastNoteWasGrace)
|
|
|| (!isChord && !isGraceNote && !lastNoteWasGrace)
|
|
|| (isGraceNote && !lastNoteWasGrace)
|
|
|| (isGraceNote && !lastNoteWasGrace)
|
|
|
|
+ || (!isGraceNote && lastNoteWasGrace)
|
|
) {
|
|
) {
|
|
this.currentVoiceGenerator.createVoiceEntry(musicTimestamp, this.currentStaffEntry, !restNote, isGraceNote, graceNoteSlash);
|
|
this.currentVoiceGenerator.createVoiceEntry(musicTimestamp, this.currentStaffEntry, !restNote, isGraceNote, graceNoteSlash);
|
|
}
|
|
}
|
|
@@ -237,21 +240,16 @@ export class InstrumentReader {
|
|
if (this.activeRhythm !== undefined) {
|
|
if (this.activeRhythm !== undefined) {
|
|
// (*) this.musicSheet.SheetPlaybackSetting.Rhythm = this.activeRhythm.Rhythm;
|
|
// (*) this.musicSheet.SheetPlaybackSetting.Rhythm = this.activeRhythm.Rhythm;
|
|
}
|
|
}
|
|
- if (isTuplet) {
|
|
|
|
- this.currentVoiceGenerator.read(
|
|
|
|
- xmlNode, noteDuration, restNote,
|
|
|
|
- this.currentStaffEntry, this.currentMeasure,
|
|
|
|
- measureStartAbsoluteTimestamp,
|
|
|
|
- this.maxTieNoteFraction, isChord, guitarPro
|
|
|
|
- );
|
|
|
|
- } else {
|
|
|
|
- this.currentVoiceGenerator.read(
|
|
|
|
- xmlNode, new Fraction(noteDivisions, 4 * this.divisions),
|
|
|
|
- restNote, this.currentStaffEntry,
|
|
|
|
- this.currentMeasure, measureStartAbsoluteTimestamp,
|
|
|
|
- this.maxTieNoteFraction, isChord, guitarPro
|
|
|
|
- );
|
|
|
|
|
|
+ if (!isTuplet && !isGraceNote) {
|
|
|
|
+ noteDuration = new Fraction(noteDivisions, 4 * this.divisions);
|
|
}
|
|
}
|
|
|
|
+ this.currentVoiceGenerator.read(
|
|
|
|
+ xmlNode, noteDuration, restNote,
|
|
|
|
+ this.currentStaffEntry, this.currentMeasure,
|
|
|
|
+ measureStartAbsoluteTimestamp,
|
|
|
|
+ this.maxTieNoteFraction, isChord, guitarPro
|
|
|
|
+ );
|
|
|
|
+
|
|
const notationsNode: IXmlElement = xmlNode.element("notations");
|
|
const notationsNode: IXmlElement = xmlNode.element("notations");
|
|
if (notationsNode !== undefined && notationsNode.element("dynamics") !== undefined) {
|
|
if (notationsNode !== undefined && notationsNode.element("dynamics") !== undefined) {
|
|
// (*) let expressionReader: ExpressionReader = this.expressionReaders[this.readExpressionStaffNumber(xmlNode) - 1];
|
|
// (*) let expressionReader: ExpressionReader = this.expressionReaders[this.readExpressionStaffNumber(xmlNode) - 1];
|