| 
					
				 | 
			
			
				@@ -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); 
			 |