| 
					
				 | 
			
			
				@@ -566,32 +566,35 @@ export class GraphicalSlur extends GraphicalCurve { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const startStaffEntry: GraphicalStaffEntry = this.staffEntries[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const endStaffEntry: GraphicalStaffEntry = this.staffEntries[this.staffEntries.length - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // Deactivated: single Voice, opposite to StemDirection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // if (startStaffEntry.hasStem() && endStaffEntry.hasStem() && startStaffEntry.getStemDirection() === endStaffEntry.getStemDirection()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     this.placement = (startStaffEntry.getStemDirection() === StemDirectionType.Up) ? PlacementEnum.Below : PlacementEnum.Above; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // Placement at the side with the minimum border 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let sX: number = startStaffEntry.PositionAndShape.BorderLeft + startStaffEntry.PositionAndShape.RelativePosition.x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    + startStaffEntry.parentMeasure.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let eX: number = endStaffEntry.PositionAndShape.BorderRight + endStaffEntry.PositionAndShape.RelativePosition.x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    + endStaffEntry.parentMeasure.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.graceStart) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sX += endStaffEntry.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (this.graceEnd) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            eX += endStaffEntry.staffEntryParent.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // single Voice, opposite to StemDirection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // here should only be one voiceEntry, so we can take graphicalVoiceEntries[0]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const startStemDirection: StemDirectionType = startStaffEntry.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const endStemDirection: StemDirectionType = endStaffEntry.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (startStemDirection  === 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            endStemDirection) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.placement = (startStemDirection === StemDirectionType.Up) ? PlacementEnum.Below : PlacementEnum.Above; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // Placement at the side with the minimum border 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let sX: number = startStaffEntry.PositionAndShape.BorderLeft + startStaffEntry.PositionAndShape.RelativePosition.x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        + startStaffEntry.parentMeasure.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let eX: number = endStaffEntry.PositionAndShape.BorderRight + endStaffEntry.PositionAndShape.RelativePosition.x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        + endStaffEntry.parentMeasure.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.graceStart) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sX += endStaffEntry.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.graceEnd) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                eX += endStaffEntry.staffEntryParent.PositionAndShape.RelativePosition.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // get SkyBottomLine borders 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const minAbove: number = skyBottomLineCalculator.getSkyLineMinInRange(sX, eX) * -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const maxBelow: number = skyBottomLineCalculator.getBottomLineMaxInRange(sX, eX) - staffLine.StaffHeight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // get SkyBottomLine borders 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const minAbove: number = skyBottomLineCalculator.getSkyLineMinInRange(sX, eX) * -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const maxBelow: number = skyBottomLineCalculator.getBottomLineMaxInRange(sX, eX) - staffLine.StaffHeight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (maxBelow > minAbove) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.placement = PlacementEnum.Above; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { this.placement = PlacementEnum.Below; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (maxBelow > minAbove) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.placement = PlacementEnum.Above; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { this.placement = PlacementEnum.Below; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 |