|  | @@ -65,6 +65,7 @@ export class VexFlowMeasure extends StaffMeasure {
 | 
	
		
			
				|  |  |              space_above_staff_ln: 0,
 | 
	
		
			
				|  |  |              space_below_staff_ln: 0,
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | +        this.beginModifiers = [];
 | 
	
		
			
				|  |  |          this.updateInstructionWidth();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -81,16 +82,18 @@ export class VexFlowMeasure extends StaffMeasure {
 | 
	
		
			
				|  |  |       * @returns {SystemLinesEnum} the x-width
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      public getLineWidth(line: SystemLinesEnum): number {
 | 
	
		
			
				|  |  | -        // FIXME: See values in VexFlow's stavebarline.js
 | 
	
		
			
				|  |  | -        const vfline: any = VexFlowConverter.line(line);
 | 
	
		
			
				|  |  | -        switch (vfline) {
 | 
	
		
			
				|  |  | -            case Vex.Flow.StaveConnector.type.SINGLE:
 | 
	
		
			
				|  |  | -                return 1.0 / unitInPixels;
 | 
	
		
			
				|  |  | -            case Vex.Flow.StaveConnector.type.DOUBLE:
 | 
	
		
			
				|  |  | -                return 3.0 / unitInPixels;
 | 
	
		
			
				|  |  | -            default:
 | 
	
		
			
				|  |  | -                return 0;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        // don't return here any value, as the line width will be considered at the updateInstructionWidth() method using the stavemodifiers.
 | 
	
		
			
				|  |  | +        return 0;
 | 
	
		
			
				|  |  | +        // See values in VexFlow's stavebarline.js
 | 
	
		
			
				|  |  | +        // const vfline: any = VexFlowConverter.line(line);
 | 
	
		
			
				|  |  | +        // switch (vfline) {
 | 
	
		
			
				|  |  | +        //     case Vex.Flow.StaveConnector.type.SINGLE:
 | 
	
		
			
				|  |  | +        //         return 1.0 / unitInPixels;
 | 
	
		
			
				|  |  | +        //     case Vex.Flow.StaveConnector.type.DOUBLE:
 | 
	
		
			
				|  |  | +        //         return 3.0 / unitInPixels;
 | 
	
		
			
				|  |  | +        //     default:
 | 
	
		
			
				|  |  | +        //         return 0;
 | 
	
		
			
				|  |  | +        // }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -413,30 +416,20 @@ export class VexFlowMeasure extends StaffMeasure {
 | 
	
		
			
				|  |  |          return this.stave;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    //private increaseBeginInstructionWidth(): void {
 | 
	
		
			
				|  |  | -    //    let modifiers: StaveModifier[] = this.stave.getModifiers();
 | 
	
		
			
				|  |  | -    //    let modifier: StaveModifier = modifiers[modifiers.length - 1];
 | 
	
		
			
				|  |  | -    //    //let padding: number = modifier.getCategory() === "keysignatures" ? modifier.getPadding(2) : 0;
 | 
	
		
			
				|  |  | -    //    let padding: number = modifier.getPadding(20);
 | 
	
		
			
				|  |  | -    //    let width: number = modifier.getWidth();
 | 
	
		
			
				|  |  | -    //    this.beginInstructionsWidth += (padding + width) / UnitInPixels;
 | 
	
		
			
				|  |  | -    //}
 | 
	
		
			
				|  |  | -    //
 | 
	
		
			
				|  |  | -    //private increaseEndInstructionWidth(): void {
 | 
	
		
			
				|  |  | -    //    let modifiers: StaveModifier[] = this.stave.getModifiers();
 | 
	
		
			
				|  |  | -    //    let modifier: StaveModifier = modifiers[modifiers.length - 1];
 | 
	
		
			
				|  |  | -    //    let padding: number = 0;
 | 
	
		
			
				|  |  | -    //    let width: number = modifier.getWidth();
 | 
	
		
			
				|  |  | -    //    this.endInstructionsWidth += (padding + width) / UnitInPixels;
 | 
	
		
			
				|  |  | -    //
 | 
	
		
			
				|  |  | -    //}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * After re-running the formatting on the VexFlow Stave, update the
 | 
	
		
			
				|  |  |       * space needed by Instructions (in VexFlow: StaveModifiers)
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      private updateInstructionWidth(): void {
 | 
	
		
			
				|  |  | -        this.beginInstructionsWidth = (this.stave.getNoteStartX() - this.stave.getX()) / unitInPixels;
 | 
	
		
			
				|  |  | +        let beginInstructionsWidth: number = 0;
 | 
	
		
			
				|  |  | +        const modifiers: Vex.Flow.StaveModifier[] = this.stave.getModifiers();
 | 
	
		
			
				|  |  | +        for (const mod of modifiers) {
 | 
	
		
			
				|  |  | +            if (mod.getPosition() === Vex.Flow.StaveModifier.Position.BEGIN) {
 | 
	
		
			
				|  |  | +                beginInstructionsWidth += mod.getWidth() + mod.getPadding(undefined);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        this.beginInstructionsWidth = beginInstructionsWidth / unitInPixels; // (this.stave.getNoteStartX() - this.stave.getX()) / unitInPixels;
 | 
	
		
			
				|  |  |          this.endInstructionsWidth = (this.stave.getX() + this.stave.getWidth() - this.stave.getNoteEndX()) / unitInPixels;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |