Compare commits
2 commits
09e69ba7b8
...
762b8f81ca
Author | SHA1 | Date | |
---|---|---|---|
762b8f81ca | |||
3fd5fd0b70 |
287
assets/duetnoteslyrics.svg
Normal file
|
@ -0,0 +1,287 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Creator: CorelDRAW X5 -->
|
||||
|
||||
<svg
|
||||
xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
|
||||
xml:space="preserve"
|
||||
viewBox="0 0 4000 4000"
|
||||
version="1.1"
|
||||
id="svg837"
|
||||
sodipodi:docname="duetnoteslyrics.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
width="4000"
|
||||
height="4000"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview839"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.096743465"
|
||||
inkscape:cx="-5533.2293"
|
||||
inkscape:cy="5250.1841"
|
||||
inkscape:window-x="2552"
|
||||
inkscape:window-y="1072"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg837"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<defs
|
||||
id="defs830">
|
||||
<style
|
||||
type="text/css"
|
||||
id="style828">
|
||||
.fil0 {fill:black}
|
||||
</style>
|
||||
</defs>
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
transform="translate(383.07114,136.99379)">
|
||||
<path
|
||||
class="fil0"
|
||||
d="M 1714,2044 C 1714,1454 1330,976 857,976 384,976 0,1454 0,2044 c 0,92 384,167 857,167 473,0 857,-75 857,-167 z M 857,0 c 258,0 467,209 467,467 0,258 -209,467 -467,467 C 599,934 390,725 390,467 390,209 599,0 857,0 Z"
|
||||
id="path832"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" />
|
||||
</g>
|
||||
<metadata
|
||||
id="metadata835"><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /><dc:publisher><cc:Agent
|
||||
rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher><dc:title></dc:title></cc:Work><cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><g
|
||||
transform="matrix(10.176514,0,0,10.176514,-2647.2254,1460.5477)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1"><g
|
||||
id="g3941"><g
|
||||
id="g3675"><path
|
||||
d="m 291.68135,174.49459 c 31.703,-22.41099 64.34217,-65.17177 96.89565,-52.84759 14.74318,5.58151 5.33002,37.08446 20,42.857 19.34757,7.61314 47.39366,-2.33559 72.22462,-15.44699"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
sodipodi:nodetypes="cssc"
|
||||
id="path2816"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 291.78301,184.15651 c 31.67476,-22.42629 63.91307,-64.6155 96.43699,-52.30251 14.74318,5.58151 5.33002,37.08446 20,42.857 19.70452,7.7536 48.43146,-2.70865 73.59558,-16.1758"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
sodipodi:nodetypes="cssc"
|
||||
id="path2816-9"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 291.71813,194.70229 c 32.01462,-22.22966 64.33613,-65.29299 97.21587,-52.84529 14.74318,5.58151 5.33002,37.08446 20,42.857 19.7367,7.76626 48.52532,-2.74288 73.71885,-16.24181"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
sodipodi:nodetypes="cssc"
|
||||
id="path2816-7"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 291.0798,206.78971 c 31.98988,-22.2449 64.28637,-65.2306 97.1402,-52.79271 14.74318,5.58151 5.33002,37.08446 20,42.857 20.18416,7.94234 49.83536,-3.22879 75.42671,-17.16438"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
sodipodi:nodetypes="cssc"
|
||||
id="path2816-5"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 291.14,217.19 c 31.53799,-22.49773 63.98524,-64.02179 96.366,-51.763 14.74318,5.58151 5.33002,37.08446 20,42.857 20.60023,8.10606 51.04942,-3.94792 76.9916,-18.28"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
sodipodi:nodetypes="cssc"
|
||||
id="path2816-54"
|
||||
inkscape:connector-curvature="0" /></g><g
|
||||
transform="matrix(0.96741,-0.25321,0.25321,0.96741,-19.363,15.795)"
|
||||
id="g3733"><ellipse
|
||||
transform="matrix(0.80217,0.27436,0.24665,-0.89229,191.08,342.3)"
|
||||
style="color:#000000;fill:#000000"
|
||||
id="path2874-4"
|
||||
cx="150.35715"
|
||||
cy="197.36218"
|
||||
rx="8.9285717"
|
||||
ry="5.7142859" /><path
|
||||
d="m 354.12,204.69 -14.028,41.671 c 17.229,-6.2125 14.629,-7.4468 14.543,-18.641 7.7854,15.797 -1.695,16.744 -14.702,18.775"
|
||||
style="fill:#000000;stroke:#000000;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:round"
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path3684-88"
|
||||
inkscape:connector-curvature="0" /></g><g
|
||||
transform="translate(195.16,-91.314)"
|
||||
id="g3823"><ellipse
|
||||
transform="matrix(0.78619,0,0,0.83335,127.4,129.94)"
|
||||
style="color:#000000;fill:#000000"
|
||||
id="path2874-8"
|
||||
cx="150.35715"
|
||||
cy="197.36218"
|
||||
rx="8.9285717"
|
||||
ry="5.7142859" /><ellipse
|
||||
transform="matrix(0.78619,0,0,0.83335,147.61,122.89)"
|
||||
style="color:#000000;fill:#000000"
|
||||
id="path2874-8-2"
|
||||
cx="150.35715"
|
||||
cy="197.36218"
|
||||
rx="8.9285717"
|
||||
ry="5.7142859" /><path
|
||||
d="m 251.77,294.21 -2.1351,-35.293 20.827,-5.2223 -20.212,6.5279 19.619,-5.0358 2.1233,31.715"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.70000005"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path3800"
|
||||
inkscape:connector-curvature="0" /></g><g
|
||||
transform="matrix(-0.84355,0,0,-0.88405,541.16,423.06)"
|
||||
id="g3823-1"><ellipse
|
||||
transform="matrix(0.78619,0,0,0.83335,127.4,129.94)"
|
||||
style="color:#000000;fill:#000000"
|
||||
id="path2874-8-1"
|
||||
cx="150.35715"
|
||||
cy="197.36218"
|
||||
rx="8.9285717"
|
||||
ry="5.7142859" /><ellipse
|
||||
transform="matrix(0.78619,0,0,0.83335,147.61,122.89)"
|
||||
style="color:#000000;fill:#000000"
|
||||
id="path2874-8-2-0"
|
||||
cx="150.35715"
|
||||
cy="197.36218"
|
||||
rx="8.9285717"
|
||||
ry="5.7142859" /><path
|
||||
d="m 251.62,294.51 -1.9852,-35.593 20.675,-5.2223 -20.059,6.5279 19.619,-5.0358 2.2498,32.151"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.96860003"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path3800-3"
|
||||
inkscape:connector-curvature="0" /></g><path
|
||||
d="M 291.10277,217.59952 291.8709,174.067"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
id="path3881"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
d="m 481.00968,148.65141 3.48792,41.67857"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path3917"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 345.57,136.85 c 4.9886,4.568 4.0714,9.4869 4.4538,10.103 l 7.8975,3.895 c -11.357,-2.5808 -8.029,9.8877 1.3513,12.421 -9.5726,-10.73 -5.6408,-8.0368 0.86038,-12.08 -6.5385,-5.5984 -2.3748,-9.3138 -4.4455,-10.429 l -10.118,-3.9094 h 5e-5 z"
|
||||
style="fill:#000000"
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
id="path3931"
|
||||
inkscape:connector-curvature="0" /><g
|
||||
transform="translate(54.61,-59.086)"
|
||||
id="g3937"><path
|
||||
d="m 367.64,233.4 c -4.9555,2.4597 -7.9704,-2.1826 -9.3032,-2.8985 -1.294,-0.69507 -3.2452,1.4315 -3.3192,2.8985 -0.0667,1.3213 0.98646,3.2708 2.431,3.366 6.3801,-0.69042 10.35,-2.6032 17.204,-8.789 l -17.484,38.054"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px"
|
||||
sodipodi:nodetypes="cssccc"
|
||||
id="path3933"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 356.9,236.17 c -0.73798,-0.4419 -1.3609,-1.4449 -1.4732,-2.3721 -0.16636,-1.3734 1.5082,-3.3844 2.5887,-3.1088 0.12842,0.0327 0.74267,0.49725 1.365,1.0322 1.9995,1.7188 3.2228,2.4456 4.6869,2.7848 l 0.80015,0.18539 -0.92276,0.3236 c -1.3319,0.46708 -3.1146,0.90153 -4.6608,1.1358 -1.6636,0.25211 -1.9904,0.25473 -2.384,0.019 z"
|
||||
style="color:#000000;fill:#000000"
|
||||
id="path3935"
|
||||
inkscape:connector-curvature="0" /></g></g></g><g
|
||||
id="g1016"
|
||||
transform="translate(83.309279,33.627631)"><switch
|
||||
transform="matrix(9.1058381,0,0,9.1058381,1994.57,2186.6803)"
|
||||
id="switch953">
|
||||
<foreignObject
|
||||
y="0"
|
||||
x="0"
|
||||
height="1"
|
||||
width="1"
|
||||
requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
|
||||
</foreignObject>
|
||||
<g
|
||||
i:extraneous="self"
|
||||
id="g951">
|
||||
<g
|
||||
style="clip-rule:evenodd;fill-rule:evenodd"
|
||||
id="g949">
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 166.38,132.42 56.85,148.6 H 56.7 v 0.2 C 49.067,159 45.266,170.617 45.3,183.651 v 0.3 c 0.034,1.6 0.067,3.233 0.1,4.899 C 39.9,148.25 34.417,107.651 28.95,67.05 27.717,51.783 31.483,38.367 40.25,26.8 v 0.05 l 114.05,-16.8 17.3,121.65 -4.199,0.55 c -0.014,-0.068 -0.047,-0.135 -0.101,-0.2 -0.091,-0.112 -0.208,-0.179 -0.35,-0.2 -0.13,-0.018 -0.247,0.016 -0.351,0.101 -0.112,0.091 -0.179,0.208 -0.199,0.35 0,0.04 -0.01,0.08 -0.02,0.12 z M 40.25,26.85 56.7,148.6 Z"
|
||||
id="path927" />
|
||||
<linearGradient
|
||||
id="SVGID_1_"
|
||||
y2="139.28"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="-603.57001"
|
||||
gradientTransform="matrix(-0.1058,-0.9944,0.9919,-0.1289,-100.9,-468.66)"
|
||||
y1="139.28"
|
||||
x1="-663.60999">
|
||||
<stop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0"
|
||||
id="stop929" />
|
||||
<stop
|
||||
style="stop-color:#000000"
|
||||
offset="1"
|
||||
id="stop931" />
|
||||
</linearGradient>
|
||||
<path
|
||||
style="fill:url(#SVGID_1_)"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 158.12,164.15 c -0.033,-0.115 -0.074,-0.232 -0.125,-0.351 l 0.025,0.025 c -0.061,-0.155 -0.094,-0.264 -0.101,-0.325 0.073,-0.026 0.206,-0.026 0.4,0 l -0.2,0.65 z m 1.23,-4.35 -0.6,2.15 -0.15,0.55 c -0.034,0.004 -0.068,0.004 -0.1,0 -0.672,-0.07 -1.113,0.047 -1.325,0.35 -0.31,0.264 -0.343,0.706 -0.1,1.325 l 0.024,0.025 c 0.273,0.674 0.24,1.391 -0.1,2.149 -0.062,0.125 -0.07,0.25 -0.025,0.375 0.054,0.128 0.146,0.22 0.275,0.275 0.018,0.008 0.033,0.017 0.05,0.025 l -0.2,0.675 -111.81,16.25 v -0.3 c -0.033,-13.03 3.767,-24.65 11.4,-34.85 l 0.1,0.3 -0.1,-0.3 c 0.066,-0.066 0.117,-0.134 0.15,-0.2 l 109.52,-16.175 c -0.154,1.298 -0.18,2.007 -0.075,2.125 h -0.024 c -0.359,-0.112 -0.877,0.188 -1.551,0.9 v 0.024 c -0.574,0.639 -0.783,1.438 -0.625,2.4 0.129,0.795 0.196,1.32 0.2,1.575 0.001,0.137 0.052,0.253 0.15,0.35 0.097,0.099 0.213,0.149 0.35,0.15 0.05,-0.001 0.099,-0.009 0.15,-0.025 l -0.101,0.375 -0.024,-0.024 c -0.108,-0.092 -0.233,-0.134 -0.375,-0.125 -0.132,0.011 -0.24,0.068 -0.325,0.175 -0.092,0.108 -0.134,0.233 -0.125,0.375 0.02,0.375 -0.089,0.884 -0.325,1.524 -0.267,0.75 -0.501,1.517 -0.7,2.301 -0.177,0.703 -0.469,1.261 -0.875,1.675 l -0.024,0.024 c -0.548,0.625 -0.739,1.334 -0.575,2.125 l 0.025,0.025 c 0.138,0.586 0.088,1.262 -0.15,2.025 -0.218,0.732 -0.359,1.149 -0.425,1.25 -0.112,0.082 -0.179,0.189 -0.2,0.324 -0.018,0.139 0.016,0.264 0.1,0.375 0.082,0.113 0.19,0.18 0.325,0.2 0.081,0.011 0.156,0.003 0.226,-0.024 l -0.11,0.38 c -0.081,-0.09 -0.182,-0.141 -0.3,-0.15 -0.141,-0.009 -0.266,0.033 -0.375,0.125 -0.105,0.084 -0.164,0.192 -0.175,0.325 -0.066,0.806 -0.1,1.239 -0.101,1.3 -0.509,-0.021 -0.859,0.571 -1.05,1.775 v 0.024 c -0.104,0.897 -0.104,1.88 0,2.95 v 0.025 c 0.03,0.17 0.05,0.35 0.06,0.52 z m 5.9,-20.98 c -0.03,-0.291 -0.08,-0.657 -0.15,-1.101 -0.107,-0.638 0.018,-1.171 0.375,-1.6 v 0.025 c 0.331,-0.359 0.548,-0.559 0.65,-0.601 l -0.05,-0.024 c 0.038,0.012 0.071,0.02 0.1,0.024 l -0.93,3.28 z m -2.7,9.66 c -0.021,-0.12 -0.046,-0.236 -0.075,-0.35 l 0.025,0.025 c -0.1,-0.464 0,-0.881 0.3,-1.25 l 0.025,-0.025 c 0.089,-0.09 0.172,-0.181 0.25,-0.275 l -0.52,1.88 z m -2.25,8 c -0.003,-0.023 -0.003,-0.049 0,-0.074 0.079,-0.537 0.13,-0.838 0.15,-0.9 0.043,0.002 0.085,0.002 0.125,0 l -0.28,0.97 z"
|
||||
id="path934" />
|
||||
<linearGradient
|
||||
id="SVGID_2_"
|
||||
y2="88.695"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x2="-572.71002"
|
||||
gradientTransform="matrix(-0.1133,-0.9936,0.9908,-0.1379,-103.08,-470.12)"
|
||||
y1="88.695"
|
||||
x1="-675.34003">
|
||||
<stop
|
||||
style="stop-color:#FFFFFF"
|
||||
offset="0"
|
||||
id="stop936" />
|
||||
<stop
|
||||
style="stop-color:#000000"
|
||||
offset="1"
|
||||
id="stop938" />
|
||||
</linearGradient>
|
||||
<path
|
||||
style="fill:url(#SVGID_2_)"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 56.85,148.6 c -0.033,0.066 -0.083,0.134 -0.15,0.2 v -0.2 z"
|
||||
id="path941" />
|
||||
<polygon
|
||||
style="fill:#ffffcc"
|
||||
points="45.45,189.4 45.4,189.3 45.45,189.3 "
|
||||
id="polygon943" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 166.38,132.42 c 0.012,-0.04 0.02,-0.082 0.025,-0.125 0.021,-0.142 0.087,-0.259 0.199,-0.35 0.104,-0.085 0.221,-0.118 0.351,-0.101 0.142,0.021 0.259,0.088 0.35,0.2 0.054,0.065 0.087,0.132 0.101,0.2 0.006,0.052 0.006,0.102 0,0.15 -0.264,2.129 -0.672,3.18 -1.226,3.149 -0.028,-0.005 -0.062,-0.013 -0.1,-0.024 l 0.05,0.024 c -0.103,0.042 -0.319,0.241 -0.65,0.601 v -0.025 c -0.357,0.429 -0.482,0.962 -0.375,1.6 0.07,0.443 0.12,0.81 0.15,1.101 0.035,0.279 0.053,0.487 0.05,0.625 -0.001,0.137 -0.051,0.253 -0.149,0.35 -0.063,0.063 -0.129,0.105 -0.2,0.125 -0.052,0.017 -0.101,0.024 -0.15,0.025 -0.137,-0.001 -0.253,-0.052 -0.35,-0.15 -0.099,-0.097 -0.149,-0.213 -0.15,-0.35 -0.004,-0.255 -0.071,-0.78 -0.2,-1.575 -0.158,-0.963 0.051,-1.762 0.625,-2.4 v -0.024 c 0.674,-0.713 1.191,-1.013 1.551,-0.9 h 0.024 c -0.09,-0.11 -0.07,-0.82 0.09,-2.12 z m -5.08,20.48 0.025,0.024 c 0.092,0.11 0.134,0.235 0.125,0.375 -0.126,1.368 -0.417,2.103 -0.875,2.2 -0.04,0.002 -0.082,0.002 -0.125,0 -0.021,0.063 -0.071,0.363 -0.15,0.9 -0.003,0.025 -0.003,0.051 0,0.074 -0.093,0.812 -0.093,1.695 0,2.65 0.138,1.08 0.171,2.037 0.101,2.875 -0.063,0.955 -0.538,1.463 -1.426,1.525 -0.178,0.006 -0.369,-0.002 -0.574,-0.025 -0.029,-0.004 -0.055,-0.004 -0.075,0 -0.194,-0.026 -0.327,-0.026 -0.4,0 0.007,0.062 0.04,0.17 0.101,0.325 l -0.02,-0.02 c 0.051,0.118 0.092,0.235 0.125,0.351 0.252,0.825 0.177,1.691 -0.225,2.6 -0.057,0.129 -0.147,0.221 -0.275,0.275 -0.108,0.038 -0.217,0.038 -0.325,0 -0.017,-0.009 -0.032,-0.018 -0.05,-0.025 -0.13,-0.056 -0.222,-0.147 -0.275,-0.275 -0.045,-0.125 -0.036,-0.25 0.025,-0.375 0.34,-0.759 0.373,-1.476 0.1,-2.149 l -0.024,-0.025 c -0.243,-0.619 -0.21,-1.062 0.1,-1.325 0.212,-0.303 0.653,-0.42 1.325,-0.35 0.031,0.004 0.065,0.004 0.1,0 0.08,0.01 0.155,0.01 0.226,0 0.339,-0.045 0.53,-0.244 0.575,-0.6 0.051,-0.627 0.034,-1.326 -0.051,-2.101 -0.01,-0.173 -0.026,-0.348 -0.05,-0.524 v -0.025 c -0.104,-1.07 -0.104,-2.053 0,-2.95 v -0.024 c 0.19,-1.204 0.541,-1.796 1.05,-1.775 0.001,-0.061 0.034,-0.494 0.101,-1.3 0.011,-0.133 0.069,-0.241 0.175,-0.325 0.109,-0.092 0.234,-0.134 0.375,-0.125 0.12,0 0.22,0.05 0.3,0.14 z m 1.78,-6.3 c -0.078,0.095 -0.161,0.186 -0.25,0.275 l -0.03,0.02 c -0.3,0.369 -0.399,0.786 -0.3,1.25 l -0.025,-0.025 c 0.029,0.113 0.055,0.229 0.075,0.35 0.101,0.66 0.026,1.402 -0.225,2.226 -0.316,1.068 -0.575,1.651 -0.775,1.75 -0.046,0.034 -0.097,0.06 -0.149,0.075 -0.069,0.027 -0.145,0.035 -0.226,0.024 -0.135,-0.021 -0.243,-0.087 -0.325,-0.2 -0.084,-0.111 -0.117,-0.236 -0.1,-0.375 0.021,-0.135 0.088,-0.242 0.2,-0.324 0.065,-0.101 0.207,-0.518 0.425,-1.25 0.238,-0.764 0.288,-1.439 0.15,-2.025 l -0.025,-0.025 c -0.164,-0.791 0.027,-1.5 0.575,-2.125 l 0.024,-0.024 c 0.406,-0.414 0.698,-0.972 0.875,-1.675 0.199,-0.784 0.434,-1.551 0.7,-2.301 0.236,-0.641 0.345,-1.149 0.325,-1.524 -0.009,-0.142 0.033,-0.267 0.125,-0.375 0.085,-0.106 0.193,-0.164 0.325,-0.175 0.142,-0.009 0.267,0.033 0.375,0.125 l 0.024,0.024 c 0.09,0.077 0.141,0.178 0.15,0.3 0.047,0.492 -0.078,1.15 -0.375,1.976 -0.266,0.717 -0.5,1.45 -0.7,2.2 -0.18,0.75 -0.46,1.35 -0.84,1.84 z"
|
||||
id="path945" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:3"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 45.4,188.85 C 39.9,148.25 34.417,107.651 28.95,67.05 27.717,51.783 31.483,38.367 40.25,26.8 v 0.05 l 114.05,-16.8 17.3,121.65 -4.199,0.55 m -8.42,31.27 1.275,9.024 -114.06,16.81 -0.75,-0.05 v 0.101 l -0.05,-0.1 v -0.45 m 11.45,-40.25 h -0.15 v 0.2 c 0.067,-0.07 0.117,-0.13 0.15,-0.2 l 109.52,-16.175 m -109.67,16.38 0.1,0.3 m -11.5,34.85 c 0.034,1.6 0.067,3.233 0.1,4.899 m 0,0.45 h 0.05 m -0.15,-5.35 v -0.3 c -0.033,-13.03 3.767,-24.65 11.4,-34.85 m 102.05,13.15 0.075,0.55 m -1.52,4.52 -0.2,0.675 -111.8,16.25 m -5.05,-157.1 16.45,121.75"
|
||||
stroke-miterlimit="3"
|
||||
id="path947" />
|
||||
</g>
|
||||
</g>
|
||||
</switch><text
|
||||
transform="rotate(-8.925618)"
|
||||
id="text979"
|
||||
y="3407.6045"
|
||||
x="1980.4675"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:73.24398041px;line-height:1.25;font-family:MuOnline;-inkscape-font-specification:MuOnline;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.74664927"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:263.67831421px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold Italic';stroke-width:2.74664927"
|
||||
y="3407.6045"
|
||||
x="1980.4675"
|
||||
id="tspan977"
|
||||
sodipodi:role="line">LYRICS</tspan></text>
|
||||
</g><g
|
||||
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
|
||||
id="Layer_x0020_1-1"
|
||||
transform="translate(1758.7802,146.81254)"><path
|
||||
inkscape:connector-curvature="0"
|
||||
class="fil0"
|
||||
d="M 1714,2044 C 1714,1454 1330,976 857,976 384,976 0,1454 0,2044 c 0,92 384,167 857,167 473,0 857,-75 857,-167 z M 857,0 c 258,0 467,209 467,467 0,258 -209,467 -467,467 C 599,934 390,725 390,467 390,209 599,0 857,0 Z"
|
||||
id="path832-1"
|
||||
style="fill:#000000" /></g></svg>
|
After Width: | Height: | Size: 18 KiB |
12
assets/pawn.svg
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Creator: CorelDRAW X5 -->
|
||||
<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ns1="http://sozi.baierouge.fr" xmlns:cc="http://web.resource.org/cc/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" style="fill-rule:evenodd;text-rendering:geometricPrecision;image-rendering:optimizeQuality;clip-rule:evenodd;shape-rendering:geometricPrecision" xml:space="preserve" viewBox="0 0 1714 2211">
|
||||
<defs>
|
||||
<style type="text/css">
|
||||
.fil0 {fill:black}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Layer_x0020_1">
|
||||
<path class="fil0" d="m1714 2044c0-590-384-1068-857-1068s-857 478-857 1068c0 92 384 167 857 167s857-75 857-167zm-857-2044c258 0 467 209 467 467s-209 467-467 467-467-209-467-467 209-467 467-467z"/>
|
||||
</g>
|
||||
<metadata><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/><dc:publisher><cc:Agent rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher></cc:Work><cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/><cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/><cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/></cc:License></rdf:RDF></metadata></svg>
|
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/songlisticons/duet.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
assets/songlisticons/duet50.png
Normal file
After Width: | Height: | Size: 912 B |
BIN
assets/songlisticons/duetlyrics.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
assets/songlisticons/duetlyrics50.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/songlisticons/duetnoteslyrics.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
assets/songlisticons/duetnoteslyrics50.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/songlisticons/solo.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/songlisticons/solo50.png
Normal file
After Width: | Height: | Size: 760 B |
BIN
assets/songlisticons/sololyrics.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
assets/songlisticons/sololyrics50.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/songlisticons/solonoteslyrics.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
assets/songlisticons/solonoteslyrics50.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
|
@ -31,7 +31,9 @@ steps:
|
|||
commands:
|
||||
- mkdir -p tmp
|
||||
- cd tmp
|
||||
- wget https://github.com/ytdl-org/youtube-dl/releases/download/2020.09.14/youtube-dl.exe
|
||||
# riaa getting greedy again : original url : https://github.com/ytdl-org/youtube-dl/releases/download/2020.09.14/youtube-dl.exe
|
||||
# google took advantage too and broke the 09.14 release, so yeah... arms race now.
|
||||
- wget -o youtube-dl.exe https://nextcloud.martyn.berlin/s/t59bd4GBaiiqKqb/download
|
||||
|
||||
- name: build_godot_windows
|
||||
image: barichello/godot-ci:3.2.3
|
||||
|
|
|
@ -36,6 +36,7 @@ func convertFile(sourceFileName string, destinationFilename string) error {
|
|||
|
||||
os.Remove(destinationFilename)
|
||||
DurationRe := regexp.MustCompile(`DURATION *: ([0-9]+):([0-9]+):([0-9]+)\.([0-9]+)`)
|
||||
OtherDurationRe := regexp.MustCompile(`Duration: ([0-9]+):([0-9]+):([0-9]+)\.([0-9]+)`)
|
||||
FrameRe := regexp.MustCompile(`frame= ?([0-9]+) `)
|
||||
FPSValue := 0.0
|
||||
finalFramesValue := 0.0
|
||||
|
@ -62,20 +63,27 @@ func convertFile(sourceFileName string, destinationFilename string) error {
|
|||
if len(fpses) > 0 {
|
||||
fmt.Printf("FPS' is %v\n", fpses)
|
||||
FPSValue, _ = strconv.ParseFloat(fpses[0][1], 64)
|
||||
fmt.Printf("\nSet fps to %0.2f\n", FPSValue)
|
||||
if lastDurationSeconds != 0 {
|
||||
finalFramesValue = lastDurationSeconds * FPSValue
|
||||
}
|
||||
}
|
||||
durations := DurationRe.FindAllStringSubmatch(line, 1)
|
||||
if len(durations) < 1 {
|
||||
durations = OtherDurationRe.FindAllStringSubmatch(line, 1)
|
||||
}
|
||||
if len(durations) > 0 {
|
||||
fmt.Printf("Durations is %v\n", durations)
|
||||
// we have an fps, we can work out max frames!
|
||||
hrs, _ := strconv.ParseFloat(durations[0][1], 64)
|
||||
mins, _ := strconv.ParseFloat(durations[0][2], 64)
|
||||
secs, _ := strconv.ParseFloat(durations[0][3], 64)
|
||||
aaand, _ := strconv.ParseFloat("0."+durations[0][4], 64)
|
||||
lastDurationSeconds = (hrs * 60 * 60) + (mins * 60) + secs + aaand
|
||||
if FPSValue != 0.0 {
|
||||
// we have an fps, we can work out max frames!
|
||||
hrs, _ := strconv.ParseFloat(durations[0][1], 64)
|
||||
mins, _ := strconv.ParseFloat(durations[0][2], 64)
|
||||
secs, _ := strconv.ParseFloat(durations[0][3], 64)
|
||||
aaand, _ := strconv.ParseFloat("0."+durations[0][4], 64)
|
||||
lastDurationSeconds = (hrs * 60 * 60) + (mins * 60) + secs + aaand
|
||||
finalFramesValue = lastDurationSeconds * FPSValue
|
||||
fmt.Printf("%0f:%0f:%0f%0.4f * %0.2f = %0.2f seconds = %0.2f frames\n", hrs, mins, secs, aaand, FPSValue, lastDurationSeconds, finalFramesValue)
|
||||
}
|
||||
fmt.Printf("%0f:%0f:%0f%0.4f * %0.2f = %0.2f seconds = %0.2f frames\n", hrs, mins, secs, aaand, FPSValue, lastDurationSeconds, finalFramesValue)
|
||||
}
|
||||
currentFrames := FrameRe.FindAllStringSubmatch(line, 1)
|
||||
if len(currentFrames) > 0 {
|
||||
|
@ -170,6 +178,10 @@ func downloadFile(sourceURL string, outputFile string, statusChannel chan float6
|
|||
fmt.Printf(" > Failed with error: %v\n", err)
|
||||
return err
|
||||
}
|
||||
if lastFilename == "" {
|
||||
// we probably didn't get a merge into a single file, so it probably just streamed to the output without an extension
|
||||
lastFilename = "test"
|
||||
}
|
||||
return convertFile(lastFilename, "converted.webm")
|
||||
}
|
||||
|
||||
|
|
31
godot/Components/SongList.gd
Normal file
|
@ -0,0 +1,31 @@
|
|||
extends Control
|
||||
|
||||
const SongElement = preload("res://Components/SongListItem.tscn")
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
var songlist = "https://pastebin.pl/view/raw/40dfc4fc"
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
$HTTPRequest.request(songlist)
|
||||
print(songlist)
|
||||
# var ItemListContent = ["We shall go this way","We shall go that way","which way shall we go?","I think we're lost"]
|
||||
# for ItemID in range(4):
|
||||
# $ItemList.add_item(ItemListContent[ItemID],null,true)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
|
||||
func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
||||
var json = JSON.parse(body.get_string_from_utf8())
|
||||
if json.result != null:
|
||||
#print(json.result)
|
||||
for song in json.result:
|
||||
var thesongelement = SongElement.instance()
|
||||
thesongelement.setObject(song)
|
||||
$ScrollContainer/GridContainer.add_child(thesongelement)
|
27
godot/Components/SongList.tscn
Normal file
|
@ -0,0 +1,27 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Components/SongList.gd" type="Script" id=1]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="HTTPRequest" type="HTTPRequest" parent="."]
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
scroll_horizontal_enabled = false
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="ScrollContainer"]
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
[connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"]
|
74
godot/Components/SongListItem.gd
Normal file
|
@ -0,0 +1,74 @@
|
|||
extends HBoxContainer
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
var duet = true
|
||||
var lyrics = true
|
||||
var score = true
|
||||
var jsonObject = {}
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
func setSongName(songname):
|
||||
$SongName.text = songname
|
||||
|
||||
func setSongArtists(songtitle):
|
||||
$SongArtists.text = songtitle
|
||||
|
||||
func setDuet(hasDuetMarked):
|
||||
if hasDuetMarked:
|
||||
duet = true
|
||||
else:
|
||||
duet = false
|
||||
setIcon()
|
||||
|
||||
func setLyrics(hasLyrics):
|
||||
if hasLyrics:
|
||||
lyrics = true
|
||||
else:
|
||||
lyrics = false
|
||||
setIcon()
|
||||
|
||||
func setScore(hasScore):
|
||||
if hasScore:
|
||||
score = true
|
||||
else:
|
||||
score = false
|
||||
setIcon()
|
||||
|
||||
func setIcon():
|
||||
var filename = ""
|
||||
if duet:
|
||||
filename += "duet"
|
||||
else:
|
||||
filename += "solo"
|
||||
if score:
|
||||
filename += "notes"
|
||||
if lyrics:
|
||||
filename += "lyrics"
|
||||
filename += "50"
|
||||
$SongIcon.texture_normal = load("UI/src/"+filename+".png")
|
||||
|
||||
func setObject(fullObject):
|
||||
jsonObject = fullObject
|
||||
setDuet(fullObject.duetmarks)
|
||||
setLyrics(fullObject.lyrics)
|
||||
setScore(fullObject.score)
|
||||
setSongName(fullObject.title)
|
||||
var artists = PoolStringArray(fullObject.artists).join(", ")
|
||||
setSongArtists(artists)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
|
||||
func _on_SongIcon_pressed():
|
||||
Globals.setSongObject(jsonObject)
|
||||
get_tree().change_scene("res://download_video.tscn")
|
41
godot/Components/SongListItem.tscn
Normal file
|
@ -0,0 +1,41 @@
|
|||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://Components/SongListItem.gd" type="Script" id=1]
|
||||
[ext_resource path="res://UI/src/duetnoteslyrics50.png" type="Texture" id=2]
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer"]
|
||||
margin_right = 883.0
|
||||
margin_bottom = 50.0
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="SongIcon" type="TextureButton" parent="."]
|
||||
margin_right = 75.0
|
||||
margin_bottom = 50.0
|
||||
rect_min_size = Vector2( 75, 0 )
|
||||
texture_normal = ExtResource( 2 )
|
||||
|
||||
[node name="SongName" type="ToolButton" parent="."]
|
||||
margin_left = 79.0
|
||||
margin_right = 479.0
|
||||
margin_bottom = 50.0
|
||||
rect_min_size = Vector2( 400, 0 )
|
||||
text = "Don't Give Up"
|
||||
clip_text = true
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="SongArtists" type="ToolButton" parent="."]
|
||||
margin_left = 483.0
|
||||
margin_right = 883.0
|
||||
margin_bottom = 50.0
|
||||
rect_min_size = Vector2( 400, 0 )
|
||||
text = "Peter Gabriel & Kate Bush"
|
||||
clip_text = true
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
[connection signal="pressed" from="SongIcon" to="." method="_on_SongIcon_pressed"]
|
|
@ -10,6 +10,7 @@ var config = ConfigFile.new()
|
|||
# var a = 2
|
||||
# var b = "text"
|
||||
var providers = { "mastodon" : []}
|
||||
var songObject = {}
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
|
@ -67,3 +68,8 @@ func saveConfig():
|
|||
config.set_value("providers","mastodon",providers.mastodon)
|
||||
config.save("user://settings.cfg")
|
||||
|
||||
func setSongObject(theObject):
|
||||
songObject = theObject
|
||||
|
||||
func getSongObject():
|
||||
return songObject
|
||||
|
|
20
godot/SongListScene.gd
Normal file
|
@ -0,0 +1,20 @@
|
|||
extends Control
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
|
||||
func _on_Quit_pressed():
|
||||
get_tree().change_scene("res://main_menu.tscn")
|
110
godot/SongListScene.tscn
Normal file
|
@ -0,0 +1,110 @@
|
|||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://SongListScene.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Components/SongList.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://UI/src/duetnoteslyrics50.png" type="Texture" id=3]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
rect_pivot_offset = Vector2( -491.278, 0 )
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 5.0
|
||||
margin_top = 5.0
|
||||
margin_right = -5.0
|
||||
margin_bottom = -5.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 590.0
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 20.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
|
||||
margin_right = 990.0
|
||||
margin_bottom = 20.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer"]
|
||||
margin_right = 990.0
|
||||
margin_bottom = 15.0
|
||||
size_flags_horizontal = 3
|
||||
bbcode_enabled = true
|
||||
bbcode_text = "[center]SONG LIST[/center]"
|
||||
text = "SONG LIST"
|
||||
fit_content_height = true
|
||||
scroll_active = false
|
||||
|
||||
[node name="Quit" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
|
||||
margin_left = 994.0
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 20.0
|
||||
text = "X"
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="MarginContainer/VBoxContainer"]
|
||||
margin_top = 24.0
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 146.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="RichTextLabel2" type="RichTextLabel" parent="MarginContainer/VBoxContainer/GridContainer"]
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 60.0
|
||||
size_flags_horizontal = 3
|
||||
text = "This is a community-created list of backing tracks and karaoke songs published on YouTube, Vimeo, Peertube instances and elsewhere. They are not hosted by ASingCrow, and no responsibility is taken for the original uploader having permission to upload them.
|
||||
|
||||
Click a song below to sing along, unlike other apps, you don't select solo/duet etc. until you are ready to publish."
|
||||
fit_content_height = true
|
||||
scroll_active = false
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer/GridContainer"]
|
||||
margin_top = 64.0
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 122.0
|
||||
|
||||
[node name="ToolButton" type="ToolButton" parent="MarginContainer/VBoxContainer/GridContainer/HBoxContainer"]
|
||||
margin_right = 75.0
|
||||
margin_bottom = 58.0
|
||||
rect_min_size = Vector2( 75, 0 )
|
||||
icon = ExtResource( 3 )
|
||||
|
||||
[node name="ToolButton2" type="ToolButton" parent="MarginContainer/VBoxContainer/GridContainer/HBoxContainer"]
|
||||
margin_left = 79.0
|
||||
margin_right = 479.0
|
||||
margin_bottom = 58.0
|
||||
rect_min_size = Vector2( 400, 0 )
|
||||
text = "Song Title"
|
||||
|
||||
[node name="ToolButton3" type="ToolButton" parent="MarginContainer/VBoxContainer/GridContainer/HBoxContainer"]
|
||||
margin_left = 483.0
|
||||
margin_right = 883.0
|
||||
margin_bottom = 58.0
|
||||
rect_min_size = Vector2( 400, 0 )
|
||||
text = "Artist(s)"
|
||||
|
||||
[node name="Control" parent="MarginContainer/VBoxContainer" instance=ExtResource( 2 )]
|
||||
anchor_right = 0.0
|
||||
anchor_bottom = 0.0
|
||||
margin_top = 150.0
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 590.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer2/Quit" to="." method="_on_Quit_pressed"]
|
BIN
godot/UI/src/duet50.png
Normal file
After Width: | Height: | Size: 912 B |
34
godot/UI/src/duet50.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/duet50.png-edb0ff2589be90d0d59864f9eeefba6f.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://UI/src/duet50.png"
|
||||
dest_files=[ "res://.import/duet50.png-edb0ff2589be90d0d59864f9eeefba6f.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
BIN
godot/UI/src/duetlyrics50.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
34
godot/UI/src/duetlyrics50.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/duetlyrics50.png-68ed5f957cd7c1d2d4b6c65b4bf06f74.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://UI/src/duetlyrics50.png"
|
||||
dest_files=[ "res://.import/duetlyrics50.png-68ed5f957cd7c1d2d4b6c65b4bf06f74.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
BIN
godot/UI/src/duetnoteslyrics50.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
34
godot/UI/src/duetnoteslyrics50.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/duetnoteslyrics50.png-49610dc0883ac4fec0b8c358e4abc946.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://UI/src/duetnoteslyrics50.png"
|
||||
dest_files=[ "res://.import/duetnoteslyrics50.png-49610dc0883ac4fec0b8c358e4abc946.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
BIN
godot/UI/src/solo50.png
Normal file
After Width: | Height: | Size: 760 B |
34
godot/UI/src/solo50.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/solo50.png-4ed64106d61e2725fa73f6ea7d1f241c.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://UI/src/solo50.png"
|
||||
dest_files=[ "res://.import/solo50.png-4ed64106d61e2725fa73f6ea7d1f241c.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
BIN
godot/UI/src/sololyrics50.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
34
godot/UI/src/sololyrics50.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/sololyrics50.png-0f0e2a4e271f57f4cc90cbc611d417a7.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://UI/src/sololyrics50.png"
|
||||
dest_files=[ "res://.import/sololyrics50.png-0f0e2a4e271f57f4cc90cbc611d417a7.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
BIN
godot/UI/src/solonoteslyrics50.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
34
godot/UI/src/solonoteslyrics50.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/solonoteslyrics50.png-7469c211001b33b9236e6735d4ca441a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://UI/src/solonoteslyrics50.png"
|
||||
dest_files=[ "res://.import/solonoteslyrics50.png-7469c211001b33b9236e6735d4ca441a.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
|
@ -6,9 +6,17 @@ extends Control
|
|||
# var b = "text"
|
||||
|
||||
var lastcheck = 0
|
||||
var songObject = {}
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
songObject = Globals.getSongObject()
|
||||
if ("url" in songObject) and (songObject.url != null) and (songObject.url != ""):
|
||||
$HBoxContainer/TextEdit.text = songObject.url
|
||||
$HBoxContainer.visible = false
|
||||
_on_Button_pressed()
|
||||
else:
|
||||
$HBoxContainer.visible = true
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
|
@ -42,7 +50,7 @@ func _on_Control_ready():
|
|||
|
||||
|
||||
func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
||||
#print(result)
|
||||
print(result)
|
||||
#print(response_code)
|
||||
#print(headers)
|
||||
#print(body.get_string_from_utf8())
|
||||
|
@ -51,7 +59,10 @@ func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
|||
$VBoxContainer2/DownloadProgress.value = json.result["percentage"]
|
||||
if json.result["percentage"] == 100:
|
||||
#Globals.video_duration = json.result["duration_seconds"]
|
||||
get_tree().change_scene("res://justplayer.tscn")
|
||||
if $HBoxContainer.visible:
|
||||
get_tree().change_scene("res://justplayer.tscn")
|
||||
else:
|
||||
get_tree().change_scene("res://PlayVideoRecordAudio.tscn")
|
||||
#print(json.result)
|
||||
#print(json.result["percentage"])
|
||||
#pass
|
||||
|
|
|
@ -33,3 +33,7 @@ func _on_DownloadPlayVid2_pressed():
|
|||
|
||||
func _on_Settings_pressed():
|
||||
get_tree().change_scene("res://GlobalSettings.tscn")
|
||||
|
||||
|
||||
func _on_Songlist_pressed():
|
||||
get_tree().change_scene("res://SongListScene.tscn")
|
||||
|
|
|
@ -57,7 +57,7 @@ script = ExtResource( 1 )
|
|||
[node name="GridContainer" type="GridContainer" parent="MarginContainer/VBoxContainer"]
|
||||
margin_top = 24.0
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 135.0
|
||||
margin_bottom = 159.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
@ -97,8 +97,15 @@ margin_top = 91.0
|
|||
margin_right = 1014.0
|
||||
margin_bottom = 111.0
|
||||
text = "Settings"
|
||||
|
||||
[node name="Songlist" type="Button" parent="MarginContainer/VBoxContainer/GridContainer"]
|
||||
margin_top = 115.0
|
||||
margin_right = 1014.0
|
||||
margin_bottom = 135.0
|
||||
text = "Song list!"
|
||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer2/Quit" to="MarginContainer/VBoxContainer/HBoxContainer2/Quit" method="_on_Quit_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/GridContainer/DownloadPlayVid" to="." method="_on_Button_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/GridContainer/DownloadPlayVid2" to="." method="_on_DownloadPlayVid2_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/GridContainer/MicTest" to="." method="_on_MicTest_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/GridContainer/Settings" to="." method="_on_Settings_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/GridContainer/Songlist" to="." method="_on_Songlist_pressed"]
|
||||
|
|