File size: 2,911 Bytes
af6912c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!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">
  <link rel="icon" href="favicon.ico" type="image/x-icon"/>
  <link rel="stylesheet" href="examples-styles.css"/>

  <title>abcjs: Basic Demo</title>
  <script src="../dist/abcjs-basic.js" type="text/javascript"></script>
  <script type="text/javascript">
	  var abc = "T: Cooley's\n" +
		  "%%measurenb 1\n" +
		  "M: 4/4\n" +
		  "L: 1/8\n" +
		  "R: reel\n" +
		  "K: Emin\n" +
		  "EB{c}BA B2 EB|~B2 AB dBAG|FDAD BDAD|FDAD dAFD|\n" +
		  "EBBA B2 EB|B2 AB defg|afe^c dBAF|DEFD E2D2|\n" +
		  "EB{c}BA B2 EB|~B2 AB dBAG|FDAD BDAD|FDAD dAFD|\n" +
		  "EBBA B2 EB|B2 AB defg|afe^c dBAF|DEFD E2gf|\n" +
		  "eB B2 efge|eB B2 gedB|A2 FA DAFA|A2 FA defg|\n" +
		  "eB B2 eBgB|eB B2 defg|afe^c dBAF|DEFD E2gf|\n" +
		  "eB B2 efge|eB B2 gedB|A2 FA DAFA|A2 FA defg|\n" +
		  "eB B2 eBgB|eB B2 defg|afe^c dBAF|DEFD E2|]";

    var minSpacing = 1.8;
    var maxSpacing = 2.8;
    var preferredMeasuresPerLine = 4;
    var staffwidth = 900;

    function redraw() {
      ABCJS.renderAbc("paper", abc, {
        wrap: {
          minSpacing: minSpacing,
          maxSpacing: maxSpacing,
          preferredMeasuresPerLine: preferredMeasuresPerLine
        },
        staffwidth: staffwidth
      });
    }

    function load() {
      var el = document.querySelector("#parameters");
      el.addEventListener("submit", changeParameters);
      redraw();
    }

    function changeParameters(ev) {
      ev.preventDefault();
      var data = new FormData( ev.target);
      minSpacing = data.get("min");
      maxSpacing = data.get("max");
      preferredMeasuresPerLine = data.get("measures");
      staffwidth = data.get("width");
      redraw();
    }

  </script>
  <style>
    #paper {
      display: flex;
      justify-content: center;
      width: auto;
    }
    form {
      margin: 0 auto 30px auto;
      max-width: 800px;
		display: flex;
    }
    label {
      margin: 0 3px;
    }
  </style>
</head>
<body onload="load()">
  <header>
    <img src="https://paulrosen.github.io/abcjs/img/abcjs_comp_extended_08.svg" alt="abcjs logo">
    <h1>Wrap</h1>
  </header>
    <form id="parameters">
      <label>Total width: <input id="width" name="width" type="number" min="300" max="2000" step="10" value="900"></label>
      <label>Preferred measures per line: <input id="measures" name="measures" type="number" min="0" max="32" step="1" value="4"></label>
      <label>Minimum spacing: <input id="min" name="min" type="number" min="0" max="5" step=".1" value="1.8"></label>
      <label>Maximum spacing: <input id="max" name="max" type="number" min="0" max="5" step=".1" value="2.8"></label>
      <button type="submit">Redraw</button>
    </form>
  <div id="paper" class="visible-background"></div>
</body>
</html>