|
@@ -671,7 +671,7 @@ export abstract class MusicSheetCalculator {
|
|
|
|
|
|
// visible 2D-MeasureList
|
|
|
const visibleMeasureList: GraphicalMeasure[][] = [];
|
|
|
- for (let idx: number = 0, len: number = allMeasures.length; idx < len; ++idx) {
|
|
|
+ for (let idx: number = 0, len: number = allMeasures.length; idx < len && idx < EngravingRules.Rules.MaxMeasureToDrawIndex; ++idx) {
|
|
|
const graphicalMeasures: GraphicalMeasure[] = allMeasures[idx];
|
|
|
const visiblegraphicalMeasures: GraphicalMeasure[] = [];
|
|
|
for (let idx2: number = 0, len2: number = graphicalMeasures.length; idx2 < len2; ++idx2) {
|
|
@@ -2380,7 +2380,9 @@ export abstract class MusicSheetCalculator {
|
|
|
this.calculateDashes(startStaffLine, startX, endX, y);
|
|
|
|
|
|
// calculate Dashes for the second StaffLine (only if endStaffEntry isn't the first StaffEntry of the StaffLine)
|
|
|
- if (!(endStaffentry === endStaffentry.parentMeasure.staffEntries[0] &&
|
|
|
+ if (nextStaffLine &&
|
|
|
+ endStaffentry.parentMeasure.ParentStaffLine &&
|
|
|
+ !(endStaffentry === endStaffentry.parentMeasure.staffEntries[0] &&
|
|
|
endStaffentry.parentMeasure === endStaffentry.parentMeasure.ParentStaffLine.Measures[0])) {
|
|
|
const secondStartX: number = nextStaffLine.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x;
|
|
|
const secondEndX: number = endStaffentry.parentMeasure.PositionAndShape.RelativePosition.x +
|
|
@@ -2568,7 +2570,8 @@ export abstract class MusicSheetCalculator {
|
|
|
}
|
|
|
|
|
|
private calculateDynamicExpressions(): void {
|
|
|
- for (let i: number = 0; i < this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length; i++) {
|
|
|
+ const maxIndex: number = Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length, EngravingRules.Rules.MaxMeasureToDrawIndex);
|
|
|
+ for (let i: number = 0; i < maxIndex; i++) {
|
|
|
const sourceMeasure: SourceMeasure = this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[i];
|
|
|
for (let j: number = 0; j < sourceMeasure.StaffLinkedExpressions.length; j++) {
|
|
|
if (this.graphicalMusicSheet.MeasureList[i][j].ParentStaff.ParentInstrument.Visible) {
|
|
@@ -2648,7 +2651,8 @@ export abstract class MusicSheetCalculator {
|
|
|
}
|
|
|
|
|
|
private calculateTempoExpressions(): void {
|
|
|
- for (let i: number = 0; i < this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length; i++) {
|
|
|
+ const maxIndex: number = Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length, EngravingRules.Rules.MaxMeasureToDrawIndex);
|
|
|
+ for (let i: number = 0; i < maxIndex; i++) {
|
|
|
const sourceMeasure: SourceMeasure = this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[i];
|
|
|
for (let j: number = 0; j < sourceMeasure.TempoExpressions.length; j++) {
|
|
|
this.calculateTempoExpressionsForMultiTempoExpression(sourceMeasure, sourceMeasure.TempoExpressions[j], i);
|