| 
					
				 | 
			
			
				@@ -0,0 +1,167 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<!DOCTYPE html> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<html lang="en"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<head> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <meta charset="UTF-8"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <title>Document</title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <script src="./opensheetmusicdisplay.min.js"></script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      margin: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      padding: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    body { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      padding-bottom: 60px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      height: 600px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      overflow: hidden; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /* .vf-text { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      display: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #cursorImg-0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      display: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</head> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<body> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div id="osmdContainer" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    var osmd = new opensheetmusicdisplay.OpenSheetMusicDisplay("osmdContainer"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.setOptions({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      backend: "svg", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // drawTitle: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // drawPartNames: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // drawLyricist: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawTitle: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawPartNames: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawLyricist: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      followCursor: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      autoResize: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawSubtitle: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawTitle: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      autoBeam: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawMetronomeMarks: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawMeasureNumbers: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      drawComposer: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      autoGenerateMutipleRestMeasuresFromRestMeasures: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      autoGenerateMultipleRestMeasuresFromRestMeasures: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.RenderMultipleRestMeasures = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.CompactMode = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.PageTopMarginNarrow = 6.0; // for compact mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.PageBottomMargin = 15.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.PageLeftMargin = 1.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.PageRightMargin = 1.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log('osmd.EngravingRules', osmd.EngravingRules) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // osmd.EngravingRules.StaffDistance = 1.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // osmd.EngravingRules.BetweenStaffDistance = 1.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // osmd.EngravingRules.MinimumStaffLineDistance = 1.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //osmd.EngravingRules.MinSkyBottomDistBetweenStaves = 1.0; // default 1.0. this can cause collisions with slurs and dynamics sometimes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.MinSkyBottomDistBetweenSystems = 3.0; // default 5.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // note that osmd.EngravingRules === osmd.rules, since it's passed as a reference 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.EngravingRules.MinimumDistanceBetweenSystems = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    osmd.setPageFormat('794x1123') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // osmd.setPageFormat('650x884') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function getSvgPngToSize(osmd) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (osmd) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (osmd.Drawer.Backends.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          var imgList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          for (var idx = 0, len = osmd.Drawer.Backends.length; idx < len; idx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var backend = osmd.Drawer.Backends[idx] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var state = backend.ctx.state; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var width = backend.ctx.width / state.scale.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var height = backend.ctx.height / state.scale.y; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var cont = new XMLSerializer().serializeToString( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              backend.ctx.svg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            imgList.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              img: cont, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              width: width, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              height: height, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return imgList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('没有OSMD') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function render() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      osmd.render(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // console.log(getSvgPngToSize(osmd), 'getSvgPngToSize(osmd)') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      window.parent.postMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        api: 'musicStaffRender', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        osmdImg: getSvgPngToSize(osmd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, '*'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function renderXml(xmlUrl, partIndex, isComberRender) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      osmd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .load(xmlUrl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .then( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 是否合并显示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!isComberRender) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              for (let i = 0; i < osmd.Sheet.Instruments.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                osmd.Sheet.Instruments[i].Visible = i === partIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            osmd.zoom = .5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            render(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function resetRender(partIndex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (let i = 0; i < osmd.Sheet.Instruments.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        osmd.Sheet.Instruments[i].Visible = i === partIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      render(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function resetRenderPage(type, xmlUrl) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let str = 'staff' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (type === 'first') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        str = 'jianpu' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        window.sett = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          keySignature: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else if (type === 'fixed') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        str = 'jianpu' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        window.sett = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          keySignature: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      osmd.EngravingRules.DYMusicScoreType = str 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // console.log(type, xmlUrl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      osmd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .load(xmlUrl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .then( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // for (let i = 0; i < osmd.Sheet.Instruments.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   // console.log(osmd.Sheet.Instruments[i].Name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   osmd.Sheet.Instruments[i].Visible = i === partIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            osmd.zoom = .5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            render(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</body> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</html> 
			 |