Skip to content

Instantly share code, notes, and snippets.

@timelyportfolio
Last active August 29, 2015 14:16
Show Gist options
  • Save timelyportfolio/d986116e741bfa85601c to your computer and use it in GitHub Desktop.
Save timelyportfolio/d986116e741bfa85601c to your computer and use it in GitHub Desktop.
Musical Notation in R with V8 and Verovio

Why?

I'm not sure why, but I guess because we can now with V8 and the emscriptenized Verovio. If you have any reason to need musical notation in SVG format in R, you will love this.

Code

library(V8)
library(htmltools)
library(pipeR)

ct = new_context("window")
# make a phony addEventListener function
ct$eval("window.addEventListener = function(){}")
# get the javascript
ct$source("http://rism-ch.github.io/verovio/javascript/verovio-toolkit.js")
# get a reference to the toolkit
ct$eval(
  "
  var vrvToolkit = new verovio.toolkit();
"
)
# assign data this way to avoid escaped character problems
ct$assign(  
  'data'
  ,"@clef:G-2\n\
    @keysig:xFCGD\n\
    @timesig:3/8\n\
    @data:'6B/{8B+(6B''E'B})({AFD})/{6.E3G},8B-/({6'EGF})({FAG})({GEB})/"
)

# get our svg
ct$eval(
  "
  vrvToolkit.renderData( 
    data,
    JSON.stringify({ inputFormat: 'pae' })
  );
"
) %>>%
  (
    tagList(
      tags$h1("Make Music in R with "
        ,tags$a(href = "https://www.opencpu.org/posts/v8-release-0-5/", "V8")
        ," and "
        ,tags$a(href = "http://rism-ch.github.io/verovio/index.xhtml","Verovio")
      )  
      ,HTML( . )
    )
  ) %>>%
  html_print %>>% ~ hf

Thanks @jeroenooms for V8 and @sckott/ROpenSci for gistr.

library(V8)
library(htmltools)
library(pipeR)
ct = new_context("window")
# make a phony addEventListener function
ct$eval("window.addEventListener = function(){}")
# get the javascript
ct$source("http://rism-ch.github.io/verovio/javascript/verovio-toolkit.js")
# get a reference to the toolkit
ct$eval(
"
var vrvToolkit = new verovio.toolkit();
"
)
# assign data this way to avoid escaped character problems
ct$assign(
'data'
,"@clef:G-2\n\
@keysig:xFCGD\n\
@timesig:3/8\n\
@data:'6B/{8B+(6B''E'B})({AFD})/{6.E3G},8B-/({6'EGF})({FAG})({GEB})/"
)
# get our svg
ct$eval(
"
vrvToolkit.renderData(
data,
JSON.stringify({ inputFormat: 'pae' })
);
"
) %>>%
(
tagList(
tags$h1("Make Music in R with "
,tags$a(href = "https://www.opencpu.org/posts/v8-release-0-5/", "V8")
," and "
,tags$a(href = "http://rism-ch.github.io/verovio/index.xhtml","Verovio")
)
,HTML( . )
)
) %>>%
html_print %>>% ~ hf
#library(gistr)
#gist_auth(reauth=T)
#gist_create(hf,description="Musical Notation in R with V8 and Verovio")
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body style="background-color:white;">
<h1>
Make Music in R with
<a href="https://www.opencpu.org/posts/v8-release-0-5/">V8</a>
and
<a href="http://rism-ch.github.io/verovio/index.xhtml">Verovio</a>
</h1>
<svg width="2100px" height="2970px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible">
<defs>
<symbol id="E050" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M441 -245c-23 -4 -48 -6 -76 -6c-59 0 -102 7 -130 20c-88 42 -150 93 -187 154c-26 44 -43 103 -48 176c-4 60 11 123 44 189c29 57 65 106 110 148s96 85 153 127c-3 16 -8 46 -13 92c-4 43 -5 73 -5 89c0 117 16 172 69 257c34 54 64 82 89 82c21 0 43 -30 69 -92 s39 -115 41 -159c2 -120 -19 -173 -67 -256c-13 -20 -63 -90 -98 -118c-13 -9 -25 -19 -37 -29l31 -181c8 1 18 2 28 2c58 0 102 -12 133 -35c59 -43 92 -104 98 -184c11 -135 -80 -229 -180 -270c8 -57 17 -110 25 -162c5 -31 6 -58 6 -80c0 -30 -5 -53 -14 -70 c-35 -64 -88 -99 -158 -103c-42 -3 -83 6 -124 26c-50 24 -77 59 -80 105c-2 34 5 63 20 87c18 28 45 42 79 44c51 4 99 -40 103 -87c4 -56 -30 -94 -105 -115c17 -24 51 -36 102 -36c62 0 116 43 140 85c9 16 13 41 13 74c0 20 -1 42 -5 67c-8 53 -18 106 -26 159zM461 939 c-95 0 -135 -175 -135 -286c0 -24 2 -48 5 -71c50 39 92 82 127 128c43 57 63 106 60 148c-4 54 -23 82 -57 81zM406 119l54 -326c80 27 116 88 109 184c-7 99 -62 146 -163 142zM382 117c-74 -2 -132 -50 -128 -127c2 -46 43 -99 75 -115c-3 -2 -7 -5 -10 -10 c-70 33 -116 88 -123 172c-5 73 42 135 88 170c23 17 49 29 78 36l-29 170c-21 -13 -52 -37 -92 -73c-50 -44 -86 -84 -109 -119c-49 -75 -71 -140 -67 -195c5 -68 35 -127 93 -176s125 -73 203 -73c25 0 50 3 75 9c-19 111 -36 221 -54 331z" />
</g>
</symbol>
<symbol id="E262" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M136 186v169h17v-164l44 14v-91l-44 -14v-165l44 12v-91l-44 -13v-155h-17v150l-76 -22v-155h-17v149l-43 -13v90l43 14v167l-43 -14v92l43 13v169h17v-163zM60 73v-167l76 22v168z" />
</g>
</symbol>
<symbol id="E083" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M188 250c97 0 177 -52 177 -116c0 -69 -40 -111 -118 -125c56 -5 125 -44 125 -116c0 -31 -10 -57 -31 -78c-19 -21 -45 -38 -78 -49l-50 -11c-15 -3 -36 -7 -55 -7c-50 0 -86 16 -113 38c-16 10 -23 18 -34 34c-7 13 -11 25 -11 38c0 43 27 83 68 83l3 -2 c61 0 75 -42 75 -70c0 -19 -24 -42 -26 -57c7 -17 20 -25 37 -25c44 0 94 29 94 78c0 75 -34 125 -138 125v36c84 0 131 22 131 98c0 54 -37 88 -87 88c-26 0 -43 -7 -51 -22c15 -22 44 -16 44 -70c0 -37 -37 -62 -71 -62c-22 0 -69 15 -69 76c0 79 101 116 178 116z" />
</g>
</symbol>
<symbol id="E088" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M185 -214c76 0 88 58 90 68c0 34 -35 60 -57 73l-52 29c-21 10 -32 17 -34 20c-39 -33 -58 -54 -62 -92c5 -23 23 -98 115 -98zM291 135c0 61 -72 76 -113 76c-40 0 -77 -17 -77 -51c3 -21 15 -38 26 -50c17 -15 33 -26 48 -34l65 -28c34 27 51 56 51 87zM166 -250 c-57 0 -166 26 -166 132c0 47 30 86 89 116c-33 15 -79 60 -79 119c0 79 85 132 178 132h18c5 0 21 1 28 -1c25 0 126 -30 126 -110c0 -37 -23 -76 -69 -116c43 -25 83 -71 83 -119c0 -101 -118 -153 -208 -153z" />
</g>
</symbol>
<symbol id="E0A4" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M0 -39c0 68 73 172 200 172c66 0 114 -37 114 -95c0 -84 -106 -171 -218 -171c-64 0 -96 30 -96 94z" />
</g>
</symbol>
<symbol id="E241" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M253 493c16 -37 23 -74 23 -111c0 -45 -12 -89 -35 -132c-20 -37 -49 -74 -87 -109c-48 -46 -104 -100 -154 -139v176c40 7 69 13 87 18c88 27 168 95 168 200c0 58 -24 118 -49 152c-5 7 -12 16 -15 26c0 3 2 5 5 5s7 -2 13 -7c19 -23 28 -43 44 -79z" />
</g>
</symbol>
<symbol id="E883" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M161 326c52 0 94 -17 94 -68c0 -50 -40 -76 -82 -94c26 -21 39 -42 39 -64c0 -52 -56 -100 -118 -100h-12c-40 0 -82 23 -82 56c0 30 12 49 37 49c17 0 31 -16 34 -31c0 -5 -4 -12 -11 -21c-7 -5 -13 -10 -13 -21l11 -9l17 -4c21 0 40 12 56 37c13 21 19 45 19 70 c-9 30 -28 35 -66 35l6 23c34 0 60 4 77 13c20 11 30 35 30 70c0 28 -12 38 -39 40l-20 -3c-8 -3 -12 -9 -12 -16c2 -7 4 -11 5 -14l4 -11l3 -10l-3 -12c-5 -6 -11 -11 -20 -13c-18 -4 -36 10 -36 27c0 39 43 71 82 71z" />
</g>
</symbol>
<symbol id="E240" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M206 -548c24 34 49 94 49 152c0 105 -80 173 -168 200c-18 5 -47 11 -87 18v176c16 -13 34 -28 53 -45c4 -3 38 -35 101 -94c62 -58 122 -137 122 -241c0 -37 -8 -74 -23 -111c-14 -35 -22 -53 -44 -79c-6 -5 -10 -7 -13 -7s-5 2 -5 5l4 10c1 3 5 9 11 16z" />
</g>
</symbol>
<symbol id="E4E6" viewBox="0 0 1000 1000" overflow="inherit">
<g transform="scale(1,-1)">
<path d="M0 123c7 34 33 56 69 60c29 -3 43 -9 53 -29c4 -8 7 -15 10 -22c0 -21 -1 -25 -11 -35c-5 -8 -18 -14 -40 -20l12 -3l15 -1c44 0 97 26 122 56c10 11 18 26 24 42c7 1 15 2 22 3l-140 -424h-36l111 330c-10 -6 -27 -12 -53 -16l-52 -8h-10l-20 1c-1 0 -8 3 -21 6 c-37 9 -55 28 -55 60z" />
</g>
</symbol>
</defs>
<style type="text/css">
@font-face {
font-family: 'VerovioText';
src: url(data:application/x-font-woff;charset=utf-8;base64,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
) format('woff');
font-weight: normal;
font-style: normal;
}
</style>
<svg id="definition-scale" viewBox="0 0 21000 29700">
<g class="page-margin" transform="translate(500, 500)">
<g class="system" id="system-000000025169254" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="measure" id="measure-000000186036548" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="staff" id="staff-000000001822959" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M0 1940 L2624 1940" style="stroke-width: 30;" />
<path d="M0 2120 L2624 2120" style="stroke-width: 30;" />
<path d="M0 2300 L2624 2300" style="stroke-width: 30;" />
<path d="M0 2480 L2624 2480" style="stroke-width: 30;" />
<path d="M0 2660 L2624 2660" style="stroke-width: 30;" />
<g class="layer" id="layer-000000092931294" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="clef" id="clef-000000011513102" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E050" x="90" y="2480" height="720px" width="720px" />
</g>
<g class="keySig" id="ksig-000000203708152" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E262" x="735" y="1940" height="720px" width="720px" />
<use xlink:href="#E262" x="905" y="2210" height="720px" width="720px" />
<use xlink:href="#E262" x="1075" y="1850" height="720px" width="720px" />
<use xlink:href="#E262" x="1246" y="2120" height="720px" width="720px" />
</g>
<g class="meterSig" id="msig-000000122269850" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E083" x="1658" y="2120" height="720px" width="720px" />
<use xlink:href="#E088" x="1657" y="2480" height="720px" width="720px" />
</g>
<g class="note" id="note-000000072119719" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="2196" y="2300" height="720px" width="720px" />
<rect x="2196" y="2322" width="20" height="608" rx="0" style="stroke-width: 0;" />
<use xlink:href="#E241" x="2196" y="3020" height="720px" width="720px" />
<use xlink:href="#E241" x="2196" y="2840" height="720px" width="720px" />
</g>
</g>
</g>
<g class="barline" id="bline-000000160414788" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M2609 1925 L2609 2675" style="stroke-width: 30;" />
</g>
</g>
<g class="measure" id="measure-000000092546557" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="staff" id="staff-000000155428741" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M2624 1940 L5352 1940" style="stroke-width: 30;" />
<path d="M2624 2120 L5352 2120" style="stroke-width: 30;" />
<path d="M2624 2300 L5352 2300" style="stroke-width: 30;" />
<path d="M2624 2480 L5352 2480" style="stroke-width: 30;" />
<path d="M2624 2660 L5352 2660" style="stroke-width: 30;" />
<g class="layer" id="layer-000000177056811" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="beam" id="beam-000000188138528" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="note" id="note-000000023211954" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="2894" y="2300" height="720px" width="720px" />
<g class="tie" id="tie-000000179858584" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M3007,2156 C3119,1916 3343,1916 3457,2156 C3343,1976 3119,1976 3007,2156" style="fill:#000; fill-opacity:1.0; stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-opacity:1.0; stroke-width: 10" />
</g>
</g>
<g class="tuplet" id="tuplet-000000106438942" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="note" id="note-000000133190668" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="3344" y="2300" height="720px" width="720px" />
</g>
<g class="note" id="note-000000105141976" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="3660" y="2030" height="720px" width="720px" />
</g>
<g class="note" id="note-000000073590840" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="3976" y="2300" height="720px" width="720px" />
</g>
<use xlink:href="#E883" x="3579" y="3373" height="720px" width="720px" />
</g>
<path d="M2904 2322 L2904 3043" style="stroke-width: 20;" />
<path d="M3354 2322 L3354 3007" style="stroke-width: 20;" />
<path d="M3670 2052 L3670 2981" style="stroke-width: 20;" />
<path d="M3986 2322 L3986 2955" style="stroke-width: 20;" />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="2894,3063 3996,2975 3996,2885 2894,2973 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="3354,2892 3670,2866 3670,2776 3354,2802 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="3670,2866 3996,2840 3996,2750 3670,2776 " />
</g>
<g class="beam" id="beam-000000055405932" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="tuplet" id="tuplet-000000167816018" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="note" id="note-000000024450773" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="4292" y="2390" height="720px" width="720px" />
</g>
<g class="note" id="note-000000196993468" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="4608" y="2570" height="720px" width="720px" />
</g>
<g class="note" id="note-000000173379877" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="4924" y="2750" height="720px" width="720px" />
</g>
<use xlink:href="#E883" x="4733" y="2159" height="720px" width="720px" />
</g>
<path d="M4508 2368 L4508 1735" style="stroke-width: 20;" />
<path d="M4824 2548 L4824 1767" style="stroke-width: 20;" />
<path d="M5140 2728 L5140 1799" style="stroke-width: 20;" />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="4498,1715 5150,1779 5150,1869 4498,1805 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="4498,1850 5150,1914 5150,2004 4498,1940 " />
</g>
</g>
</g>
<g class="barline" id="bline-000000201455511" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M5337 1925 L5337 2675" style="stroke-width: 30;" />
</g>
</g>
<g class="measure" id="measure-000000097279619" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="staff" id="staff-000000059293918" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M5352 1940 L7538 1940" style="stroke-width: 30;" />
<path d="M5352 2120 L7538 2120" style="stroke-width: 30;" />
<path d="M5352 2300 L7538 2300" style="stroke-width: 30;" />
<path d="M5352 2480 L7538 2480" style="stroke-width: 30;" />
<path d="M5352 2660 L7538 2660" style="stroke-width: 30;" />
<g class="layer" id="layer-000000150911329" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="beam" id="beam-000000030031458" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="note" id="note-000000001129819" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="5622" y="2660" height="720px" width="720px" />
<ellipse cx="5960" cy="2570" rx="36" ry="36" />
</g>
<g class="note" id="note-000000093172774" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="6086" y="2480" height="720px" width="720px" />
</g>
<path d="M5838 2638 L5838 1737" style="stroke-width: 20;" />
<path d="M6302 2458 L6302 1690" style="stroke-width: 20;" />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="5828,1717 6312,1670 6312,1760 5828,1807 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="5828,1852 6312,1805 6312,1895 5828,1942 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="6150,1956 6312,1940 6312,2030 6150,2046 " />
</g>
<g class="note" id="note-000000129694048" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="6466" y="2930" height="720px" width="720px" />
<rect x="6672" y="2390" width="20" height="518" rx="0" style="stroke-width: 0;" />
<use xlink:href="#E240" x="6672" y="2300" height="720px" width="720px" />
<path d="M6417 2840 L6741 2840" style="stroke-width: 30;" />
</g>
<g class="rest" id="rest-000000033663832" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E4E6" x="6960" y="2300" height="720px" width="720px" />
</g>
</g>
</g>
<g class="barline" id="bline-000000123656615" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M7523 1925 L7523 2675" style="stroke-width: 30;" />
</g>
</g>
<g class="measure" id="measure-000000175529197" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="staff" id="staff-000000179548155" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M7538 1940 L10764 1940" style="stroke-width: 30;" />
<path d="M7538 2120 L10764 2120" style="stroke-width: 30;" />
<path d="M7538 2300 L10764 2300" style="stroke-width: 30;" />
<path d="M7538 2480 L10764 2480" style="stroke-width: 30;" />
<path d="M7538 2660 L10764 2660" style="stroke-width: 30;" />
<g class="layer" id="layer-000000098270473" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="beam" id="beam-000000192452391" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="tuplet" id="tuplet-000000063290459" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="note" id="note-000000179376265" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="7808" y="2660" height="720px" width="720px" />
</g>
<g class="note" id="note-000000207762412" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="8124" y="2480" height="720px" width="720px" />
</g>
<g class="note" id="note-000000112726293" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="8440" y="2570" height="720px" width="720px" />
</g>
<use xlink:href="#E883" x="8249" y="2217" height="720px" width="720px" />
</g>
<path d="M8024 2638 L8024 1857" style="stroke-width: 20;" />
<path d="M8340 2458 L8340 1825" style="stroke-width: 20;" />
<path d="M8656 2548 L8656 1794" style="stroke-width: 20;" />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="8014,1837 8666,1774 8666,1864 8014,1927 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="8014,1972 8666,1909 8666,1999 8014,2062 " />
</g>
<g class="beam" id="beam-000000142337246" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="tuplet" id="tuplet-000000063236714" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="note" id="note-000000105934154" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="8756" y="2570" height="720px" width="720px" />
</g>
<g class="note" id="note-000000036641788" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="9072" y="2390" height="720px" width="720px" />
</g>
<g class="note" id="note-000000000234615" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="9388" y="2480" height="720px" width="720px" />
</g>
<use xlink:href="#E883" x="9197" y="2127" height="720px" width="720px" />
</g>
<path d="M8972 2548 L8972 1767" style="stroke-width: 20;" />
<path d="M9288 2368 L9288 1735" style="stroke-width: 20;" />
<path d="M9604 2458 L9604 1704" style="stroke-width: 20;" />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="8962,1747 9614,1684 9614,1774 8962,1837 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="8962,1882 9614,1819 9614,1909 8962,1972 " />
</g>
<g class="beam" id="beam-000000139707923" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="tuplet" id="tuplet-000000138381214" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<g class="note" id="note-000000135657114" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="9704" y="2480" height="720px" width="720px" />
</g>
<g class="note" id="note-000000142189783" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="10020" y="2660" height="720px" width="720px" />
</g>
<g class="note" id="note-000000178440134" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<use xlink:href="#E0A4" x="10336" y="2300" height="720px" width="720px" />
</g>
<use xlink:href="#E883" x="10145" y="2069" height="720px" width="720px" />
</g>
<path d="M9920 2458 L9920 1709" style="stroke-width: 20;" />
<path d="M10236 2638 L10236 1677" style="stroke-width: 20;" />
<path d="M10552 2278 L10552 1645" style="stroke-width: 20;" />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="9910,1689 10562,1625 10562,1715 9910,1779 " />
<polygon style="fill-rule:nonzero;" stroke-width="0" points="9910,1824 10562,1760 10562,1850 9910,1914 " />
</g>
</g>
</g>
<g class="barline" id="bline-000000139262573" style="stroke: #000000; stroke-opacity: 1.000000; fill: #000000; fill-opacity: 1.000000;">
<path d="M10749 1925 L10749 2675" style="stroke-width: 30;" />
</g>
</g>
</g>
</g>
</svg>
</svg>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment