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