|
@@ -668,6 +668,10 @@ export abstract class MusicSheetCalculator {
|
|
|
if (allMeasures === undefined) {
|
|
|
return;
|
|
|
}
|
|
|
+ if (EngravingRules.Rules.MinMeasureToDrawIndex > allMeasures.length - 1) {
|
|
|
+ log.debug("minimum measure to draw index out of range. resetting min measure index to limit.");
|
|
|
+ EngravingRules.Rules.MinMeasureToDrawIndex = allMeasures.length - 1;
|
|
|
+ }
|
|
|
|
|
|
// visible 2D-MeasureList
|
|
|
const visibleMeasureList: GraphicalMeasure[][] = [];
|
|
@@ -1359,7 +1363,10 @@ export abstract class MusicSheetCalculator {
|
|
|
let relative: PointF2D = new PointF2D();
|
|
|
|
|
|
if (multiTempoExpression.ContinuousTempo || multiTempoExpression.InstantaneousTempo) {
|
|
|
- // TempoExpressions always on the first visible System's StaffLine
|
|
|
+ // TempoExpressions always on the first visible System's StaffLine // TODO is it though?
|
|
|
+ if (EngravingRules.Rules.MinMeasureToDrawIndex > 0) {
|
|
|
+ return; // assuming that the tempo is always in measure 1 (idx 0), this causes issues when we don't draw measure 1
|
|
|
+ }
|
|
|
let staffLine: StaffLine = measures[0].ParentStaffLine;
|
|
|
let firstVisibleMeasureX: number = measures[0].PositionAndShape.RelativePosition.x;
|
|
|
let verticalIndex: number = 0;
|
|
@@ -2601,7 +2608,7 @@ export abstract class MusicSheetCalculator {
|
|
|
|
|
|
private calculateDynamicExpressions(): void {
|
|
|
const maxIndex: number = Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length, EngravingRules.Rules.MaxMeasureToDrawIndex);
|
|
|
- const minIndex: number = EngravingRules.Rules.MinMeasureToDrawIndex;
|
|
|
+ const minIndex: number = Math.min(EngravingRules.Rules.MinMeasureToDrawIndex, this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length);
|
|
|
for (let i: number = minIndex; i < maxIndex; i++) {
|
|
|
const sourceMeasure: SourceMeasure = this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[i];
|
|
|
for (let j: number = 0; j < sourceMeasure.StaffLinkedExpressions.length; j++) {
|
|
@@ -2683,8 +2690,7 @@ export abstract class MusicSheetCalculator {
|
|
|
|
|
|
private calculateTempoExpressions(): void {
|
|
|
const maxIndex: number = Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length, EngravingRules.Rules.MaxMeasureToDrawIndex);
|
|
|
- const minIndex: number = EngravingRules.Rules.MinMeasureToDrawIndex;
|
|
|
- for (let i: number = minIndex; i < maxIndex; i++) {
|
|
|
+ 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);
|