|
|
<!DOCTYPE html>
|
|
|
<html>
|
|
|
<head>
|
|
|
<meta charset="utf-8">
|
|
|
<title>Pushing the Score</title>
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
<link rel="stylesheet" href="style.css">
|
|
|
<body style="background-color: #e6ffe6;">
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
|
<div id="header"><h1>
|
|
|
This experiment analyses and measures data from people’s motion and explores how we humans become an extension of technology, adapting ourselves to immaterial environments by seeking information-control, performing sounds.
|
|
|
</h1></div>
|
|
|
|
|
|
<div id="container">
|
|
|
|
|
|
<h2><div class="mobile icon"></div></h2>
|
|
|
<h2><div class="laptop icon"></div></h2>
|
|
|
<h2><div class="tablet icon"></div></h2>
|
|
|
|
|
|
|
|
|
<div id="title">
|
|
|
<h2>PUSHING THE SCORE</h2>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div id="buttons"><h2>
|
|
|
<a href="#concept">CONCEPT ⟶</a>
|
|
|
<br>
|
|
|
<a href="#body">BODY ⟶</a>
|
|
|
<br>
|
|
|
<a href="#samples">SAMPLES ⟶</a>
|
|
|
<br></h2>
|
|
|
</div>
|
|
|
|
|
|
<div id="links">
|
|
|
<h2>TGC #3 @DePlayer @XPUB</h2>
|
|
|
</div>
|
|
|
|
|
|
<div id="rotate"><h2>
|
|
|
www.issue.xpub.nl/02/ www.deplayer.nl/
|
|
|
</h2></div>
|
|
|
|
|
|
|
|
|
<!-- Labels -->
|
|
|
|
|
|
<h2><div id="concept"><table>
|
|
|
<td>CONCEPT</td>
|
|
|
</table></div></h2>
|
|
|
|
|
|
<h2><div id="body"><table>
|
|
|
<td>BODY</td>
|
|
|
</table></div></h2>
|
|
|
|
|
|
<h2><div id="samples"><table>
|
|
|
<td>SAMPLES</td>
|
|
|
</table></div></h2>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<!-- svg file -->
|
|
|
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
|
viewBox="0 0 1280 3193" style="enable-background:new 0 0 1280 3193;" xml:space="preserve">
|
|
|
<style type="text/css">
|
|
|
.st0{fill:#FFFFFF;}
|
|
|
.st1{fill:none;}
|
|
|
.st2{font-family:'Times-Roman';}
|
|
|
.st3{font-size:19px;}
|
|
|
.st4{letter-spacing:54;}
|
|
|
.st5{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;}
|
|
|
.st6{fill:none;stroke:#000000;stroke-miterlimit:10;}
|
|
|
.st7{font-family:'TimesNewRomanPSMT';}
|
|
|
.st8{letter-spacing:81;}
|
|
|
.st9{font-family:'Courier';}
|
|
|
.st10{letter-spacing:74;}
|
|
|
.st11{font-size:18px;}
|
|
|
.st12{font-size:13.8376px;}
|
|
|
.st13{font-size:7.8111px;}
|
|
|
.st14{font-size:10.4208px;}
|
|
|
.st15{font-size:14.3056px;}
|
|
|
.st16{letter-spacing:2;}
|
|
|
.st17{fill:none;stroke:#000000;stroke-width:1.0721;stroke-linecap:round;stroke-miterlimit:10;}
|
|
|
.st18{fill:none;stroke:#000000;stroke-width:2.3848;stroke-miterlimit:10;}
|
|
|
.st19{fill:none;stroke:#000000;stroke-width:1.7105;stroke-miterlimit:10;}
|
|
|
.st20{fill:none;stroke:#00FF00;stroke-width:1.5909;stroke-miterlimit:10;}
|
|
|
.st21{fill:#292929;stroke:#FFFFFF;stroke-width:1.202;stroke-miterlimit:10;}
|
|
|
.st22{fill:#292929;stroke:#FFFFFF;stroke-width:0.7508;stroke-miterlimit:10;}
|
|
|
.st23{fill:#979696;}
|
|
|
.st24{font-family:'Interval-Book';}
|
|
|
.st25{font-size:10px;}
|
|
|
.st26{fill:#FFFFFF;stroke:#000000;stroke-width:1.8568;stroke-miterlimit:10;}
|
|
|
.st27{fill:#FFFFFF;stroke:#000000;stroke-width:1.9441;stroke-miterlimit:10;}
|
|
|
.st28{fill:#FFFFFF;stroke:#000000;stroke-width:1.9885;stroke-miterlimit:10;}
|
|
|
.st29{fill:#FFFFFF;stroke:#000000;stroke-width:2.0896;stroke-miterlimit:10;}
|
|
|
.st30{fill:#FFFFFF;stroke:#000000;stroke-width:2.2897;stroke-miterlimit:10;}
|
|
|
.st31{fill:none;stroke:#000000;stroke-width:2.4707;stroke-miterlimit:10;}
|
|
|
</style>
|
|
|
<g id="Layer_1">
|
|
|
|
|
|
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/11.jpg" transform="matrix(0.3943 0 0 0.3943 326.0681 1692.0435)">
|
|
|
</image>
|
|
|
<rect y="2036.5" class="st0" width="640" height="1156.5"/>
|
|
|
|
|
|
<image style="overflow:visible;" width="606" height="378" xlink:href="3.gif" transform="matrix(0.6491 0 0 0.6491 187.8319 2322.4502)">
|
|
|
</image>
|
|
|
<image style="overflow:visible;" width="1280" height="851" xlink:href="noise.gif" transform="matrix(1 0 0 1 0 -425.5)">
|
|
|
</image>
|
|
|
|
|
|
<image style="overflow:visible;" width="711" height="720" xlink:href="floppy-final2.png" transform="matrix(0.7066 0 0 0.7066 695.9426 574.8033)">
|
|
|
</image>
|
|
|
<rect x="50.6" y="575.8" class="st1" width="547.5" height="524.1"/>
|
|
|
<text transform="matrix(1 0 0 1 50.6133 588.7969)"><tspan x="0" y="0" class="st2 st3">Technology is providing us new ways to shape our perception of space, </tspan><tspan x="0" y="23" class="st2 st3">while at the same time it is transforming our bodies into gadgets. This </tspan><tspan x="0" y="46" class="st2 st3">is not only changing our spatial awareness but it’s also extending our </tspan><tspan x="0" y="69" class="st2 st3">senses beyond given nature. Moreover, control systems that regulate </tspan><tspan x="0" y="92" class="st2 st3">and command specific behaviours can be very practical tools to </tspan><tspan x="0" y="115" class="st2 st3">improve physical functionalities or translate its data. For instance, this </tspan><tspan x="0" y="138" class="st2 st3">experiment employs “Optical Flow” sensor which detects motion from </tspan><tspan x="0" y="161" class="st2 st3">image objects between frames, and “Open Sound Control (OSC)” </tspan><tspan x="0" y="184" class="st2 st3">which enables to exchange and format data from different devices, for </tspan><tspan x="0" y="207" class="st2 st3">instance, from Python to Puredata.</tspan><tspan x="0" y="230" class="st2 st3 st4"> </tspan><tspan x="58.9" y="230" class="st2 st3">Although the unique possibilities to improving human physical </tspan><tspan x="0" y="253" class="st2 st3">or cognitive limitations by plugging a body to an electronic or </tspan><tspan x="0" y="276" class="st2 st3">mechanical device are yet very hypothetical and might extend beyond </tspan><tspan x="0" y="299" class="st2 st3">our imagination, nevertheless technology is continuously transforming </tspan><tspan x="0" y="322" class="st2 st3">the abstract or fictional conception of “cybernetics” to a more realistic </tspan><tspan x="0" y="345" class="st2 st3">evidence. The communication between both automated and living </tspan><tspan x="0" y="368" class="st2 st3">systems is continuously evolving, upgrading and rising up more </tspan><tspan x="0" y="391" class="st2 st3">sophisticated engineered tools that might enable us to increase our </tspan><tspan x="0" y="414" class="st2 st3">knowledge, morphing our perception through deeper experiences.</tspan><tspan x="0" y="437" class="st2 st3 st4"> </tspan><tspan x="58.9" y="437" class="st2 st3">In this experiment, the potential for controlling data through </tspan><tspan x="0" y="460" class="st2 st3">motion on space while becoming independent of physicality, opens up </tspan><tspan x="0" y="483" class="st2 st3">new creative and pragmatic alternatives for facing both technological </tspan><tspan x="0" y="506" class="st2 st3">and communication constraints.</tspan></text>
|
|
|
<line class="st5" x1="41.6" y1="425.4" x2="1238.4" y2="425.4"/>
|
|
|
<line class="st6" x1="667.1" y1="1762" x2="1256.4" y2="1762"/>
|
|
|
<line class="st6" x1="31.4" y1="2036.5" x2="620.7" y2="2036.5"/>
|
|
|
<line class="st6" x1="29.7" y1="1134.6" x2="619" y2="1134.6"/>
|
|
|
<rect x="696.9" y="1333.4" class="st1" width="547.5" height="384.6"/>
|
|
|
<text transform="matrix(1 0 0 1 696.9243 1346.5609)"><tspan x="0" y="0" class="st7 st3">This body analyses human motion on space and detects it using </tspan><tspan x="0" y="23" class="st7 st3">“Opitcal Flow” in “Python”, using a series of predesigned </tspan><tspan x="0" y="46" class="st7 st3">multidirectional interpreters. These interpreters are made up of a </tspan><tspan x="0" y="69" class="st7 st3">series of points (intersections), forming a grid which intersects with </tspan><tspan x="0" y="92" class="st7 st3">movement. This is detected in form of numeric values, which are </tspan><tspan x="0" y="115" class="st7 st3">automatically transmitted and formatted to a graphic array in Puredata. </tspan><tspan x="0" y="138" class="st7 st3 st8"> </tspan><tspan x="86.1" y="138" class="st7 st3">This array arrange these values and generates a polygonal </tspan><tspan x="0" y="161" class="st7 st3">waveform based on these received coordinates (which numbers ranges </tspan><tspan x="0" y="184" class="st7 st3">between "x", having values from 0 to 10, and "y" from -1 to 1). This </tspan><tspan x="0" y="207" class="st7 st3">activates an “oscillator” object which defines the frequency of the tone, </tspan><tspan x="0" y="230" class="st7 st3">together with “metro” object, which time spans its duration in </tspan><tspan x="0" y="253" class="st7 st3">miliseconds, consequently iterating the audio (re-writting it in the </tspan><tspan x="0" y="276" class="st7 st3">display).</tspan><tspan x="0" y="299" class="st9 st3 st10"> </tspan><tspan x="86.1" y="299" class="st9 st11" style="text-decoration: underline;">The intersections and the graphic array </tspan><tspan x="0" y="322" class="st9 st11" style="text-decoration: underline;">(together with the entire Puredata patch) become </tspan><tspan x="0" y="345" class="st9 st11" style="text-decoration: underline;">an interactive notation system, while people </tspan><tspan x="0" y="368" class="st9 st11" style="text-decoration: underline;">become the instrument/tool that triggers it</tspan><tspan x="464.5" y="368" class="st9 st11">. </tspan></text>
|
|
|
<text transform="matrix(1 0 1.000000e-05 1 723.7227 1107.457)" class="st7 st12">X / Y INTERSECTIONS</text>
|
|
|
<g>
|
|
|
<text transform="matrix(1 0 0 1 1012.4771 1254.7754)"><tspan x="0" y="0" class="st9 st13">5 PUREDATA EXTENDED</tspan><tspan x="0" y="9.4" class="st9 st13">6 OSC MSG RECEIVE</tspan><tspan x="0" y="18.7" class="st9 st13">7 GRAPHIC ARRAY</tspan><tspan x="0" y="28.1" class="st9 st13">8 OSC / METRO</tspan><tspan x="0" y="37.5" class="st9 st13"> </tspan></text>
|
|
|
</g>
|
|
|
<g>
|
|
|
<text transform="matrix(1 0 0 1 908.5388 1233.2344)"><tspan x="0" y="0" class="st9 st14">SYSTEM;</tspan><tspan x="0" y="21.9" class="st9 st13">1 PYTHON</tspan><tspan x="0" y="31.3" class="st9 st13">2 OPTICAL FLOW</tspan><tspan x="0" y="40.6" class="st9 st13">2 INTERSECTIONS</tspan><tspan x="0" y="50" class="st9 st13">3 OSC MSG SEND</tspan></text>
|
|
|
</g>
|
|
|
<rect x="703.3" y="575.8" class="st5" width="490.9" height="717.6"/>
|
|
|
<text transform="matrix(1 0 0 1 1064.6499 1140.2852)"><tspan x="0" y="0" class="st7 st15">Y range</tspan><tspan x="45.7" y="0" class="st7 st15 st16"> </tspan><tspan x="51.5" y="0" class="st7 st15">= -1 to 1</tspan></text>
|
|
|
<text transform="matrix(1 0 0 1 1063.5178 1114.0996)"><tspan x="0" y="0" class="st7 st15">X range</tspan><tspan x="45.7" y="0" class="st7 st15 st16"> </tspan><tspan x="51.5" y="0" class="st7 st15">= 0 to 10</tspan></text>
|
|
|
<text transform="matrix(1 0 0 1 1064.6499 1174.5107)" class="st7 st15">Waveform</text>
|
|
|
<g>
|
|
|
<polyline class="st17" points="912.4,1173.5 918.5,1164.6 924.3,1173.5 "/>
|
|
|
<polyline class="st17" points="924.3,1173.5 930.6,1164.6 936.2,1173.5 "/>
|
|
|
<polyline class="st17" points="936.5,1173.5 942.6,1164.6 948.4,1173.5 "/>
|
|
|
<polyline class="st17" points="948.4,1173.5 954.7,1164.6 960.3,1173.5 "/>
|
|
|
<polyline class="st17" points="960.4,1173.5 966.7,1164.6 972.3,1173.5 "/>
|
|
|
<polyline class="st17" points="972.7,1173.5 978.7,1164.6 984.5,1173.5 "/>
|
|
|
<polyline class="st17" points="984.5,1173.5 990.8,1164.6 996.4,1173.5 "/>
|
|
|
<polyline class="st17" points="996.6,1173.5 1002.8,1164.6 1008.5,1173.5 "/>
|
|
|
<polyline class="st17" points="1008.8,1173.5 1014.9,1164.6 1020.7,1173.5 "/>
|
|
|
<polyline class="st17" points="1020.7,1173.5 1026.9,1164.6 1032.5,1173.5 "/>
|
|
|
</g>
|
|
|
<line class="st18" x1="1177.5" y1="1196.7" x2="911.9" y2="1196.7"/>
|
|
|
<g>
|
|
|
<line class="st19" x1="914.7" y1="1110.7" x2="914.7" y2="1114.1"/>
|
|
|
<line class="st19" x1="916.5" y1="1112.4" x2="912.9" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="926.6" y1="1110.7" x2="926.6" y2="1114.1"/>
|
|
|
<line class="st19" x1="928.4" y1="1112.4" x2="924.8" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="938.5" y1="1110.7" x2="938.5" y2="1114.1"/>
|
|
|
<line class="st19" x1="940.3" y1="1112.4" x2="936.7" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="949.7" y1="1110.7" x2="949.7" y2="1114.1"/>
|
|
|
<line class="st19" x1="951.5" y1="1112.4" x2="947.9" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="960.5" y1="1110.7" x2="960.5" y2="1114.1"/>
|
|
|
<line class="st19" x1="962.3" y1="1112.4" x2="958.7" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="972.2" y1="1110.7" x2="972.2" y2="1114.1"/>
|
|
|
<line class="st19" x1="974" y1="1112.4" x2="970.5" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="983.8" y1="1110.7" x2="983.8" y2="1114.1"/>
|
|
|
<line class="st19" x1="985.6" y1="1112.4" x2="982" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="996.2" y1="1110.7" x2="996.2" y2="1114.1"/>
|
|
|
<line class="st19" x1="998" y1="1112.4" x2="994.4" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="1007" y1="1110.7" x2="1007" y2="1114.1"/>
|
|
|
<line class="st19" x1="1008.8" y1="1112.4" x2="1005.2" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="1018" y1="1110.7" x2="1018" y2="1114.1"/>
|
|
|
<line class="st19" x1="1019.8" y1="1112.4" x2="1016.2" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="1029.9" y1="1110.7" x2="1029.9" y2="1114.1"/>
|
|
|
<line class="st19" x1="1031.7" y1="1112.4" x2="1028.1" y2="1112.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="914.7" y1="1136.9" x2="914.7" y2="1140.3"/>
|
|
|
<line class="st19" x1="916.5" y1="1138.6" x2="912.9" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="926.6" y1="1136.9" x2="926.6" y2="1140.3"/>
|
|
|
<line class="st19" x1="928.4" y1="1138.6" x2="924.8" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="938.5" y1="1136.9" x2="938.5" y2="1140.3"/>
|
|
|
<line class="st19" x1="940.3" y1="1138.6" x2="936.7" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="949.7" y1="1136.9" x2="949.7" y2="1140.3"/>
|
|
|
<line class="st19" x1="951.5" y1="1138.6" x2="947.9" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="960.5" y1="1136.9" x2="960.5" y2="1140.3"/>
|
|
|
<line class="st19" x1="962.3" y1="1138.6" x2="958.7" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="972.2" y1="1136.9" x2="972.2" y2="1140.3"/>
|
|
|
<line class="st19" x1="974" y1="1138.6" x2="970.5" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="983.8" y1="1136.9" x2="983.8" y2="1140.3"/>
|
|
|
<line class="st19" x1="985.6" y1="1138.6" x2="982" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="996.2" y1="1136.9" x2="996.2" y2="1140.3"/>
|
|
|
<line class="st19" x1="998" y1="1138.6" x2="994.4" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="1007" y1="1136.9" x2="1007" y2="1140.3"/>
|
|
|
<line class="st19" x1="1008.8" y1="1138.6" x2="1005.2" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="1018" y1="1136.9" x2="1018" y2="1140.3"/>
|
|
|
<line class="st19" x1="1019.8" y1="1138.6" x2="1016.2" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st19" x1="1029.9" y1="1136.9" x2="1029.9" y2="1140.3"/>
|
|
|
<line class="st19" x1="1031.7" y1="1138.6" x2="1028.1" y2="1138.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st20" x1="773.5" y1="842.4" x2="773.5" y2="845.5"/>
|
|
|
<line class="st20" x1="775.1" y1="843.9" x2="771.8" y2="843.9"/>
|
|
|
<line class="st20" x1="808.3" y1="842.4" x2="808.2" y2="845.5"/>
|
|
|
<line class="st20" x1="809.9" y1="843.9" x2="806.6" y2="843.9"/>
|
|
|
<line class="st20" x1="843.1" y1="842.4" x2="843" y2="845.5"/>
|
|
|
<line class="st20" x1="844.7" y1="843.9" x2="841.4" y2="843.9"/>
|
|
|
<line class="st20" x1="877.9" y1="842.4" x2="877.8" y2="845.5"/>
|
|
|
<line class="st20" x1="879.5" y1="843.9" x2="876.2" y2="843.9"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="912.7" y1="842.4" x2="912.6" y2="845.5"/>
|
|
|
<line class="st20" x1="914.3" y1="843.9" x2="911" y2="843.9"/>
|
|
|
<line class="st20" x1="947.5" y1="842.4" x2="947.4" y2="845.5"/>
|
|
|
<line class="st20" x1="949.1" y1="843.9" x2="945.8" y2="843.9"/>
|
|
|
<line class="st20" x1="982.3" y1="842.4" x2="982.2" y2="845.5"/>
|
|
|
<line class="st20" x1="983.9" y1="843.9" x2="980.6" y2="843.9"/>
|
|
|
<line class="st20" x1="1017" y1="842.4" x2="1017" y2="845.5"/>
|
|
|
<line class="st20" x1="1018.7" y1="843.9" x2="1015.4" y2="843.9"/>
|
|
|
</g>
|
|
|
<line class="st20" x1="1051.8" y1="842.4" x2="1051.8" y2="845.5"/>
|
|
|
<line class="st20" x1="1053.5" y1="843.9" x2="1050.2" y2="843.9"/>
|
|
|
<line class="st20" x1="1086.6" y1="842.4" x2="1086.6" y2="845.5"/>
|
|
|
<line class="st20" x1="1088.3" y1="843.9" x2="1085" y2="843.9"/>
|
|
|
<line class="st20" x1="1121.4" y1="842.4" x2="1121.4" y2="845.5"/>
|
|
|
<line class="st20" x1="1123.1" y1="843.9" x2="1119.8" y2="843.9"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st20" x1="773.1" y1="875.1" x2="773.1" y2="878.2"/>
|
|
|
<line class="st20" x1="774.7" y1="876.7" x2="771.4" y2="876.7"/>
|
|
|
<line class="st20" x1="807.9" y1="875.1" x2="807.9" y2="878.2"/>
|
|
|
<line class="st20" x1="809.5" y1="876.7" x2="806.2" y2="876.7"/>
|
|
|
<line class="st20" x1="842.7" y1="875.1" x2="842.6" y2="878.2"/>
|
|
|
<line class="st20" x1="844.3" y1="876.7" x2="841" y2="876.7"/>
|
|
|
<line class="st20" x1="877.5" y1="875.1" x2="877.4" y2="878.2"/>
|
|
|
<line class="st20" x1="879.1" y1="876.7" x2="875.8" y2="876.7"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="912.3" y1="875.1" x2="912.2" y2="878.2"/>
|
|
|
<line class="st20" x1="913.9" y1="876.7" x2="910.6" y2="876.7"/>
|
|
|
<line class="st20" x1="947.1" y1="875.1" x2="947" y2="878.2"/>
|
|
|
<line class="st20" x1="948.7" y1="876.7" x2="945.4" y2="876.7"/>
|
|
|
<line class="st20" x1="981.9" y1="875.1" x2="981.8" y2="878.2"/>
|
|
|
<line class="st20" x1="983.5" y1="876.7" x2="980.2" y2="876.7"/>
|
|
|
<line class="st20" x1="1016.7" y1="875.1" x2="1016.6" y2="878.2"/>
|
|
|
<line class="st20" x1="1018.3" y1="876.7" x2="1015" y2="876.7"/>
|
|
|
</g>
|
|
|
<line class="st20" x1="1051.4" y1="875.1" x2="1051.4" y2="878.2"/>
|
|
|
<line class="st20" x1="1053.1" y1="876.7" x2="1049.8" y2="876.7"/>
|
|
|
<line class="st20" x1="1086.2" y1="875.1" x2="1086.2" y2="878.2"/>
|
|
|
<line class="st20" x1="1087.9" y1="876.7" x2="1084.6" y2="876.7"/>
|
|
|
<line class="st20" x1="1121" y1="875.1" x2="1121" y2="878.2"/>
|
|
|
<line class="st20" x1="1122.7" y1="876.7" x2="1119.4" y2="876.7"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="772.7" y1="907.9" x2="772.7" y2="911"/>
|
|
|
<line class="st20" x1="774.3" y1="909.4" x2="771" y2="909.4"/>
|
|
|
<line class="st20" x1="807.5" y1="907.9" x2="807.5" y2="911"/>
|
|
|
<line class="st20" x1="809.1" y1="909.4" x2="805.8" y2="909.4"/>
|
|
|
<line class="st20" x1="842.3" y1="907.9" x2="842.3" y2="911"/>
|
|
|
<line class="st20" x1="843.9" y1="909.4" x2="840.6" y2="909.4"/>
|
|
|
<line class="st20" x1="877.1" y1="907.9" x2="877.1" y2="911"/>
|
|
|
<line class="st20" x1="878.7" y1="909.4" x2="875.4" y2="909.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="911.9" y1="907.9" x2="911.8" y2="911"/>
|
|
|
<line class="st20" x1="913.5" y1="909.4" x2="910.2" y2="909.4"/>
|
|
|
<line class="st20" x1="946.7" y1="907.9" x2="946.6" y2="911"/>
|
|
|
<line class="st20" x1="948.3" y1="909.4" x2="945" y2="909.4"/>
|
|
|
<line class="st20" x1="981.5" y1="907.9" x2="981.4" y2="911"/>
|
|
|
<line class="st20" x1="983.1" y1="909.4" x2="979.8" y2="909.4"/>
|
|
|
<line class="st20" x1="1016.3" y1="907.9" x2="1016.2" y2="911"/>
|
|
|
<line class="st20" x1="1017.9" y1="909.4" x2="1014.6" y2="909.4"/>
|
|
|
</g>
|
|
|
<line class="st20" x1="1051.1" y1="907.9" x2="1051" y2="911"/>
|
|
|
<line class="st20" x1="1052.7" y1="909.4" x2="1049.4" y2="909.4"/>
|
|
|
<line class="st20" x1="1085.9" y1="907.9" x2="1085.8" y2="911"/>
|
|
|
<line class="st20" x1="1087.5" y1="909.4" x2="1084.2" y2="909.4"/>
|
|
|
<g>
|
|
|
<line class="st20" x1="1120.6" y1="907.9" x2="1120.6" y2="911"/>
|
|
|
<line class="st20" x1="1122.3" y1="909.4" x2="1119" y2="909.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="1120.3" y1="940.7" x2="1120.2" y2="943.8"/>
|
|
|
<line class="st20" x1="1121.9" y1="942.3" x2="1118.6" y2="942.3"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="1119.9" y1="973.4" x2="1119.8" y2="976.5"/>
|
|
|
<line class="st20" x1="1121.5" y1="974.9" x2="1118.2" y2="974.9"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="1119.5" y1="1006.1" x2="1119.4" y2="1009.2"/>
|
|
|
<line class="st20" x1="1121.1" y1="1007.7" x2="1117.8" y2="1007.7"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st20" x1="772.3" y1="940.6" x2="772.3" y2="943.7"/>
|
|
|
<line class="st20" x1="774" y1="942.2" x2="770.6" y2="942.2"/>
|
|
|
<line class="st20" x1="807.1" y1="940.6" x2="807.1" y2="943.7"/>
|
|
|
<line class="st20" x1="808.7" y1="942.2" x2="805.4" y2="942.2"/>
|
|
|
<line class="st20" x1="841.9" y1="940.6" x2="841.9" y2="943.7"/>
|
|
|
<line class="st20" x1="843.5" y1="942.2" x2="840.2" y2="942.2"/>
|
|
|
<line class="st20" x1="876.7" y1="940.6" x2="876.7" y2="943.7"/>
|
|
|
<line class="st20" x1="878.3" y1="942.2" x2="875" y2="942.2"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="911.5" y1="940.6" x2="911.5" y2="943.7"/>
|
|
|
<line class="st20" x1="913.1" y1="942.2" x2="909.8" y2="942.2"/>
|
|
|
<line class="st20" x1="946.3" y1="940.6" x2="946.2" y2="943.7"/>
|
|
|
<line class="st20" x1="947.9" y1="942.2" x2="944.6" y2="942.2"/>
|
|
|
<line class="st20" x1="981.1" y1="940.6" x2="981" y2="943.7"/>
|
|
|
<line class="st20" x1="982.7" y1="942.2" x2="979.4" y2="942.2"/>
|
|
|
<line class="st20" x1="1015.9" y1="940.6" x2="1015.8" y2="943.7"/>
|
|
|
<line class="st20" x1="1017.5" y1="942.2" x2="1014.2" y2="942.2"/>
|
|
|
</g>
|
|
|
<line class="st20" x1="1050.7" y1="940.6" x2="1050.6" y2="943.7"/>
|
|
|
<line class="st20" x1="1052.3" y1="942.2" x2="1049" y2="942.2"/>
|
|
|
<line class="st20" x1="1085.5" y1="940.6" x2="1085.4" y2="943.7"/>
|
|
|
<line class="st20" x1="1087.1" y1="942.2" x2="1083.8" y2="942.2"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st20" x1="771.9" y1="973.4" x2="771.9" y2="976.5"/>
|
|
|
<line class="st20" x1="773.6" y1="974.9" x2="770.3" y2="974.9"/>
|
|
|
<line class="st20" x1="806.7" y1="973.4" x2="806.7" y2="976.5"/>
|
|
|
<line class="st20" x1="808.4" y1="974.9" x2="805" y2="974.9"/>
|
|
|
<line class="st20" x1="841.5" y1="973.4" x2="841.5" y2="976.5"/>
|
|
|
<line class="st20" x1="843.1" y1="974.9" x2="839.8" y2="974.9"/>
|
|
|
<line class="st20" x1="876.3" y1="973.4" x2="876.3" y2="976.5"/>
|
|
|
<line class="st20" x1="877.9" y1="974.9" x2="874.6" y2="974.9"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="911.1" y1="973.4" x2="911.1" y2="976.5"/>
|
|
|
<line class="st20" x1="912.7" y1="974.9" x2="909.4" y2="974.9"/>
|
|
|
<line class="st20" x1="945.9" y1="973.4" x2="945.9" y2="976.5"/>
|
|
|
<line class="st20" x1="947.5" y1="974.9" x2="944.2" y2="974.9"/>
|
|
|
<line class="st20" x1="980.7" y1="973.4" x2="980.7" y2="976.5"/>
|
|
|
<line class="st20" x1="982.3" y1="974.9" x2="979" y2="974.9"/>
|
|
|
<line class="st20" x1="1015.5" y1="973.4" x2="1015.4" y2="976.5"/>
|
|
|
<line class="st20" x1="1017.1" y1="974.9" x2="1013.8" y2="974.9"/>
|
|
|
</g>
|
|
|
<line class="st20" x1="1050.3" y1="973.4" x2="1050.2" y2="976.5"/>
|
|
|
<line class="st20" x1="1051.9" y1="974.9" x2="1048.6" y2="974.9"/>
|
|
|
<line class="st20" x1="1085.1" y1="973.4" x2="1085" y2="976.5"/>
|
|
|
<line class="st20" x1="1086.7" y1="974.9" x2="1083.4" y2="974.9"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st20" x1="771.5" y1="1006.1" x2="771.5" y2="1009.2"/>
|
|
|
<line class="st20" x1="773.2" y1="1007.7" x2="769.9" y2="1007.7"/>
|
|
|
<line class="st20" x1="806.3" y1="1006.1" x2="806.3" y2="1009.2"/>
|
|
|
<line class="st20" x1="808" y1="1007.7" x2="804.7" y2="1007.7"/>
|
|
|
<line class="st20" x1="841.1" y1="1006.1" x2="841.1" y2="1009.2"/>
|
|
|
<line class="st20" x1="842.8" y1="1007.7" x2="839.4" y2="1007.7"/>
|
|
|
<line class="st20" x1="875.9" y1="1006.1" x2="875.9" y2="1009.2"/>
|
|
|
<line class="st20" x1="877.6" y1="1007.7" x2="874.2" y2="1007.7"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st20" x1="910.7" y1="1006.1" x2="910.7" y2="1009.2"/>
|
|
|
<line class="st20" x1="912.3" y1="1007.7" x2="909" y2="1007.7"/>
|
|
|
<line class="st20" x1="945.5" y1="1006.1" x2="945.5" y2="1009.2"/>
|
|
|
<line class="st20" x1="947.1" y1="1007.7" x2="943.8" y2="1007.7"/>
|
|
|
<line class="st20" x1="980.3" y1="1006.1" x2="980.3" y2="1009.2"/>
|
|
|
<line class="st20" x1="981.9" y1="1007.7" x2="978.6" y2="1007.7"/>
|
|
|
<line class="st20" x1="1015.1" y1="1006.1" x2="1015.1" y2="1009.2"/>
|
|
|
<line class="st20" x1="1016.7" y1="1007.7" x2="1013.4" y2="1007.7"/>
|
|
|
</g>
|
|
|
<line class="st20" x1="1049.9" y1="1006.1" x2="1049.8" y2="1009.2"/>
|
|
|
<line class="st20" x1="1051.5" y1="1007.7" x2="1048.2" y2="1007.7"/>
|
|
|
<line class="st20" x1="1084.7" y1="1006.1" x2="1084.6" y2="1009.2"/>
|
|
|
<line class="st20" x1="1086.3" y1="1007.7" x2="1083" y2="1007.7"/>
|
|
|
</g>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st6" x1="726.4" y1="1128.3" x2="726.4" y2="1129.4"/>
|
|
|
<line class="st6" x1="727" y1="1128.8" x2="725.9" y2="1128.8"/>
|
|
|
<line class="st6" x1="738" y1="1128.3" x2="738" y2="1129.4"/>
|
|
|
<line class="st6" x1="738.5" y1="1128.8" x2="737.4" y2="1128.8"/>
|
|
|
<line class="st6" x1="749.6" y1="1128.3" x2="749.6" y2="1129.4"/>
|
|
|
<line class="st6" x1="750.1" y1="1128.8" x2="749" y2="1128.8"/>
|
|
|
<line class="st6" x1="761.1" y1="1128.3" x2="761.1" y2="1129.4"/>
|
|
|
<line class="st6" x1="761.7" y1="1128.8" x2="760.6" y2="1128.8"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="772.7" y1="1128.3" x2="772.7" y2="1129.4"/>
|
|
|
<line class="st6" x1="773.2" y1="1128.8" x2="772.1" y2="1128.8"/>
|
|
|
<line class="st6" x1="784.2" y1="1128.3" x2="784.2" y2="1129.4"/>
|
|
|
<line class="st6" x1="784.8" y1="1128.8" x2="783.7" y2="1128.8"/>
|
|
|
<line class="st6" x1="795.8" y1="1128.3" x2="795.8" y2="1129.4"/>
|
|
|
<line class="st6" x1="796.3" y1="1128.8" x2="795.2" y2="1128.8"/>
|
|
|
<line class="st6" x1="807.4" y1="1128.3" x2="807.3" y2="1129.4"/>
|
|
|
<line class="st6" x1="807.9" y1="1128.8" x2="806.8" y2="1128.8"/>
|
|
|
</g>
|
|
|
<line class="st6" x1="818.9" y1="1128.3" x2="818.9" y2="1129.4"/>
|
|
|
<line class="st6" x1="819.5" y1="1128.8" x2="818.4" y2="1128.8"/>
|
|
|
<line class="st6" x1="830.5" y1="1128.3" x2="830.5" y2="1129.4"/>
|
|
|
<line class="st6" x1="831" y1="1128.8" x2="829.9" y2="1128.8"/>
|
|
|
<line class="st6" x1="842" y1="1128.3" x2="842" y2="1129.4"/>
|
|
|
<line class="st6" x1="842.6" y1="1128.8" x2="841.5" y2="1128.8"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st6" x1="726.3" y1="1139.2" x2="726.3" y2="1140.2"/>
|
|
|
<line class="st6" x1="726.9" y1="1139.7" x2="725.8" y2="1139.7"/>
|
|
|
<line class="st6" x1="737.9" y1="1139.2" x2="737.9" y2="1140.2"/>
|
|
|
<line class="st6" x1="738.4" y1="1139.7" x2="737.3" y2="1139.7"/>
|
|
|
<line class="st6" x1="749.4" y1="1139.2" x2="749.4" y2="1140.2"/>
|
|
|
<line class="st6" x1="750" y1="1139.7" x2="748.9" y2="1139.7"/>
|
|
|
<line class="st6" x1="761" y1="1139.2" x2="761" y2="1140.2"/>
|
|
|
<line class="st6" x1="761.5" y1="1139.7" x2="760.4" y2="1139.7"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="772.6" y1="1139.2" x2="772.5" y2="1140.2"/>
|
|
|
<line class="st6" x1="773.1" y1="1139.7" x2="772" y2="1139.7"/>
|
|
|
<line class="st6" x1="784.1" y1="1139.2" x2="784.1" y2="1140.2"/>
|
|
|
<line class="st6" x1="784.7" y1="1139.7" x2="783.6" y2="1139.7"/>
|
|
|
<line class="st6" x1="795.7" y1="1139.2" x2="795.7" y2="1140.2"/>
|
|
|
<line class="st6" x1="796.2" y1="1139.7" x2="795.1" y2="1139.7"/>
|
|
|
<line class="st6" x1="807.2" y1="1139.2" x2="807.2" y2="1140.2"/>
|
|
|
<line class="st6" x1="807.8" y1="1139.7" x2="806.7" y2="1139.7"/>
|
|
|
</g>
|
|
|
<line class="st6" x1="818.8" y1="1139.2" x2="818.8" y2="1140.2"/>
|
|
|
<line class="st6" x1="819.3" y1="1139.7" x2="818.2" y2="1139.7"/>
|
|
|
<line class="st6" x1="830.3" y1="1139.2" x2="830.3" y2="1140.2"/>
|
|
|
<line class="st6" x1="830.9" y1="1139.7" x2="829.8" y2="1139.7"/>
|
|
|
<line class="st6" x1="841.9" y1="1139.2" x2="841.9" y2="1140.2"/>
|
|
|
<line class="st6" x1="842.4" y1="1139.7" x2="841.3" y2="1139.7"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="726.2" y1="1150.1" x2="726.2" y2="1151.1"/>
|
|
|
<line class="st6" x1="726.7" y1="1150.6" x2="725.6" y2="1150.6"/>
|
|
|
<line class="st6" x1="737.7" y1="1150.1" x2="737.7" y2="1151.1"/>
|
|
|
<line class="st6" x1="738.3" y1="1150.6" x2="737.2" y2="1150.6"/>
|
|
|
<line class="st6" x1="749.3" y1="1150.1" x2="749.3" y2="1151.1"/>
|
|
|
<line class="st6" x1="749.8" y1="1150.6" x2="748.7" y2="1150.6"/>
|
|
|
<line class="st6" x1="760.9" y1="1150.1" x2="760.8" y2="1151.1"/>
|
|
|
<line class="st6" x1="761.4" y1="1150.6" x2="760.3" y2="1150.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="772.4" y1="1150.1" x2="772.4" y2="1151.1"/>
|
|
|
<line class="st6" x1="773" y1="1150.6" x2="771.9" y2="1150.6"/>
|
|
|
<line class="st6" x1="784" y1="1150.1" x2="784" y2="1151.1"/>
|
|
|
<line class="st6" x1="784.5" y1="1150.6" x2="783.4" y2="1150.6"/>
|
|
|
<line class="st6" x1="795.5" y1="1150.1" x2="795.5" y2="1151.1"/>
|
|
|
<line class="st6" x1="796.1" y1="1150.6" x2="795" y2="1150.6"/>
|
|
|
<line class="st6" x1="807.1" y1="1150.1" x2="807.1" y2="1151.1"/>
|
|
|
<line class="st6" x1="807.6" y1="1150.6" x2="806.5" y2="1150.6"/>
|
|
|
</g>
|
|
|
<line class="st6" x1="818.7" y1="1150.1" x2="818.6" y2="1151.1"/>
|
|
|
<line class="st6" x1="819.2" y1="1150.6" x2="818.1" y2="1150.6"/>
|
|
|
<line class="st6" x1="830.2" y1="1150.1" x2="830.2" y2="1151.1"/>
|
|
|
<line class="st6" x1="830.8" y1="1150.6" x2="829.7" y2="1150.6"/>
|
|
|
<g>
|
|
|
<line class="st6" x1="841.8" y1="1150.1" x2="841.8" y2="1151.1"/>
|
|
|
<line class="st6" x1="842.3" y1="1150.6" x2="841.2" y2="1150.6"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="841.6" y1="1161" x2="841.6" y2="1162"/>
|
|
|
<line class="st6" x1="842.2" y1="1161.5" x2="841.1" y2="1161.5"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="841.5" y1="1171.8" x2="841.5" y2="1172.9"/>
|
|
|
<line class="st6" x1="842.1" y1="1172.4" x2="841" y2="1172.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="841.4" y1="1182.7" x2="841.4" y2="1183.8"/>
|
|
|
<line class="st6" x1="841.9" y1="1183.2" x2="840.8" y2="1183.2"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st6" x1="726.1" y1="1161" x2="726" y2="1162"/>
|
|
|
<line class="st6" x1="726.6" y1="1161.5" x2="725.5" y2="1161.5"/>
|
|
|
<line class="st6" x1="737.6" y1="1161" x2="737.6" y2="1162"/>
|
|
|
<line class="st6" x1="738.2" y1="1161.5" x2="737.1" y2="1161.5"/>
|
|
|
<line class="st6" x1="749.2" y1="1161" x2="749.2" y2="1162"/>
|
|
|
<line class="st6" x1="749.7" y1="1161.5" x2="748.6" y2="1161.5"/>
|
|
|
<line class="st6" x1="760.7" y1="1161" x2="760.7" y2="1162"/>
|
|
|
<line class="st6" x1="761.3" y1="1161.5" x2="760.2" y2="1161.5"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="772.3" y1="1161" x2="772.3" y2="1162"/>
|
|
|
<line class="st6" x1="772.8" y1="1161.5" x2="771.7" y2="1161.5"/>
|
|
|
<line class="st6" x1="783.8" y1="1161" x2="783.8" y2="1162"/>
|
|
|
<line class="st6" x1="784.4" y1="1161.5" x2="783.3" y2="1161.5"/>
|
|
|
<line class="st6" x1="795.4" y1="1161" x2="795.4" y2="1162"/>
|
|
|
<line class="st6" x1="796" y1="1161.5" x2="794.9" y2="1161.5"/>
|
|
|
<line class="st6" x1="807" y1="1161" x2="807" y2="1162"/>
|
|
|
<line class="st6" x1="807.5" y1="1161.5" x2="806.4" y2="1161.5"/>
|
|
|
</g>
|
|
|
<line class="st6" x1="818.5" y1="1161" x2="818.5" y2="1162"/>
|
|
|
<line class="st6" x1="819.1" y1="1161.5" x2="818" y2="1161.5"/>
|
|
|
<line class="st6" x1="830.1" y1="1161" x2="830.1" y2="1162"/>
|
|
|
<line class="st6" x1="830.6" y1="1161.5" x2="829.5" y2="1161.5"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st6" x1="725.9" y1="1171.8" x2="725.9" y2="1172.9"/>
|
|
|
<line class="st6" x1="726.5" y1="1172.4" x2="725.4" y2="1172.4"/>
|
|
|
<line class="st6" x1="737.5" y1="1171.8" x2="737.5" y2="1172.9"/>
|
|
|
<line class="st6" x1="738" y1="1172.4" x2="736.9" y2="1172.4"/>
|
|
|
<line class="st6" x1="749" y1="1171.8" x2="749" y2="1172.9"/>
|
|
|
<line class="st6" x1="749.6" y1="1172.4" x2="748.5" y2="1172.4"/>
|
|
|
<line class="st6" x1="760.6" y1="1171.8" x2="760.6" y2="1172.9"/>
|
|
|
<line class="st6" x1="761.1" y1="1172.4" x2="760" y2="1172.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="772.2" y1="1171.8" x2="772.1" y2="1172.9"/>
|
|
|
<line class="st6" x1="772.7" y1="1172.4" x2="771.6" y2="1172.4"/>
|
|
|
<line class="st6" x1="783.7" y1="1171.8" x2="783.7" y2="1172.9"/>
|
|
|
<line class="st6" x1="784.3" y1="1172.4" x2="783.2" y2="1172.4"/>
|
|
|
<line class="st6" x1="795.3" y1="1171.8" x2="795.3" y2="1172.9"/>
|
|
|
<line class="st6" x1="795.8" y1="1172.4" x2="794.7" y2="1172.4"/>
|
|
|
<line class="st6" x1="806.8" y1="1171.8" x2="806.8" y2="1172.9"/>
|
|
|
<line class="st6" x1="807.4" y1="1172.4" x2="806.3" y2="1172.4"/>
|
|
|
</g>
|
|
|
<line class="st6" x1="818.4" y1="1171.8" x2="818.4" y2="1172.9"/>
|
|
|
<line class="st6" x1="818.9" y1="1172.4" x2="817.8" y2="1172.4"/>
|
|
|
<line class="st6" x1="830" y1="1171.8" x2="829.9" y2="1172.9"/>
|
|
|
<line class="st6" x1="830.5" y1="1172.4" x2="829.4" y2="1172.4"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<g>
|
|
|
<line class="st6" x1="725.8" y1="1182.7" x2="725.8" y2="1183.8"/>
|
|
|
<line class="st6" x1="726.3" y1="1183.2" x2="725.2" y2="1183.2"/>
|
|
|
<line class="st6" x1="737.4" y1="1182.7" x2="737.3" y2="1183.8"/>
|
|
|
<line class="st6" x1="737.9" y1="1183.2" x2="736.8" y2="1183.2"/>
|
|
|
<line class="st6" x1="748.9" y1="1182.7" x2="748.9" y2="1183.8"/>
|
|
|
<line class="st6" x1="749.5" y1="1183.2" x2="748.4" y2="1183.2"/>
|
|
|
<line class="st6" x1="760.5" y1="1182.7" x2="760.5" y2="1183.8"/>
|
|
|
<line class="st6" x1="761" y1="1183.2" x2="759.9" y2="1183.2"/>
|
|
|
</g>
|
|
|
<g>
|
|
|
<line class="st6" x1="772" y1="1182.7" x2="772" y2="1183.8"/>
|
|
|
<line class="st6" x1="772.6" y1="1183.2" x2="771.5" y2="1183.2"/>
|
|
|
<line class="st6" x1="783.6" y1="1182.7" x2="783.6" y2="1183.8"/>
|
|
|
<line class="st6" x1="784.1" y1="1183.2" x2="783" y2="1183.2"/>
|
|
|
<line class="st6" x1="795.1" y1="1182.7" x2="795.1" y2="1183.8"/>
|
|
|
<line class="st6" x1="795.7" y1="1183.2" x2="794.6" y2="1183.2"/>
|
|
|
<line class="st6" x1="806.7" y1="1182.7" x2="806.7" y2="1183.8"/>
|
|
|
<line class="st6" x1="807.3" y1="1183.2" x2="806.2" y2="1183.2"/>
|
|
|
</g>
|
|
|
<line class="st6" x1="818.3" y1="1182.7" x2="818.3" y2="1183.8"/>
|
|
|
<line class="st6" x1="818.8" y1="1183.2" x2="817.7" y2="1183.2"/>
|
|
|
<line class="st6" x1="829.8" y1="1182.7" x2="829.8" y2="1183.8"/>
|
|
|
<line class="st6" x1="830.4" y1="1183.2" x2="829.3" y2="1183.2"/>
|
|
|
</g>
|
|
|
</g>
|
|
|
<g>
|
|
|
<rect x="726" y="1197.9" class="st6" width="115.3" height="79.1"/>
|
|
|
<line class="st6" x1="726" y1="1237.9" x2="841.4" y2="1237.9"/>
|
|
|
</g>
|
|
|
<line class="st6" x1="640" y1="487" x2="640" y2="1762"/>
|
|
|
<g>
|
|
|
<rect x="659.3" y="1813.6" class="st21" width="597.1" height="1335.1"/>
|
|
|
<rect x="667.1" y="1821" class="st22" width="580.8" height="33.9"/>
|
|
|
<rect x="667.1" y="1862.6" class="st22" width="580.8" height="1277.6"/>
|
|
|
<rect x="680.2" y="1834.2" class="st1" width="77.8" height="8.4"/>
|
|
|
<text transform="matrix(1 0 0 1 680.1709 1841.7874)" class="st23 st24 st25">OPTICAL FLOW</text>
|
|
|
<rect x="680.2" y="1875.3" class="st1" width="558.1" height="1265"/>
|
|
|
<text transform="matrix(1 0 0 1 680.1709 1881.6899)"><tspan x="0" y="0" class="st23 st9 st25">#!/usr/bin/env python</tspan><tspan x="0" y="21.4" class="st23 st9 st25">import numpy as np</tspan><tspan x="0" y="32.1" class="st23 st9 st25">import cv2, math</tspan><tspan x="0" y="42.8" class="st23 st9 st25">import video</tspan><tspan x="0" y="64.2" class="st23 st9 st25">help_message = '''</tspan><tspan x="0" y="74.9" class="st23 st9 st25">USAGE: opt_flow.py [<video_source>]</tspan><tspan x="0" y="96.3" class="st23 st9 st25">Keys:</tspan><tspan x="0" y="107" class="st23 st9 st25"> 1 - toggle HSV flow visualization</tspan><tspan x="0" y="117.7" class="st23 st9 st25"> 2 - toggle glitch</tspan><tspan x="0" y="139.1" class="st23 st9 st25">'''</tspan><tspan x="0" y="160.5" class="st23 st9 st25"># def draw_flow(img, flow, step=4): # size grid </tspan><tspan x="0" y="171.2" class="st23 st9 st25"># h, w = img.shape[:2]</tspan><tspan x="0" y="181.9" class="st23 st9 st25"># y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1)</tspan><tspan x="0" y="192.6" class="st23 st9 st25"># fx, fy = flow[y,x].T</tspan><tspan x="0" y="203.3" class="st23 st9 st25"># lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)</tspan><tspan x="0" y="214" class="st23 st9 st25"># lines = np.int32(lines + 0.5)</tspan><tspan x="0" y="224.7" class="st23 st9 st25"># vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)</tspan><tspan x="0" y="235.4" class="st23 st9 st25"># cv2.polylines(vis, lines, 0, (0, 0, 255)) # BGR</tspan><tspan x="0" y="246.1" class="st23 st9 st25"># for (x1, y1), (x2, y2) in lines:</tspan><tspan x="0" y="256.8" class="st23 st9 st25"># cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)</tspan><tspan x="0" y="267.5" class="st23 st9 st25"># return vis</tspan><tspan x="0" y="288.9" class="st23 st9 st25">import OSC</tspan><tspan x="0" y="299.6" class="st23 st9 st25"># from pythonosc import osc_message_builder</tspan><tspan x="0" y="310.3" class="st23 st9 st25"># from pythonosc import udp_client</tspan><tspan x="0" y="321" class="st23 st9 st25">import time</tspan><tspan x="0" y="342.4" class="st23 st9 st25">def send_flow0(img, flow, step=4): # size grid </tspan><tspan x="0" y="353.1" class="st23 st9 st25"> h, w = img.shape[:2]</tspan><tspan x="0" y="363.8" class="st23 st9 st25"> y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1)</tspan><tspan x="0" y="374.5" class="st23 st9 st25"> fx, fy = flow[y,x].T</tspan><tspan x="0" y="385.2" class="st23 st9 st25"> #print "fx, fy", fx, fy</tspan><tspan x="0" y="395.9" class="st23 st9 st25"> lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)</tspan><tspan x="0" y="406.6" class="st23 st9 st25"> lines = np.int32(lines + 0.5)</tspan><tspan x="0" y="417.3" class="st23 st9 st25"> vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)</tspan><tspan x="0" y="449.4" class="st23 st9 st25"> flines = []</tspan><tspan x="0" y="460.1" class="st23 st9 st25"> for (x1, y1), (x2, y2) in lines:</tspan><tspan x="0" y="470.8" class="st23 st9 st25"> # print ("y1", y1)</tspan><tspan x="0" y="481.5" class="st23 st9 st25"> if (x1 == 38 or x1 == 46 or x1 == 54 or x1 == 62 or x1 == 70 or x1 == 78 or x1 == 86 </tspan><tspan x="0" y="492.2" class="st23 st9 st25">or x1 == 94 or x1 == 102 or x1 == 110 or x1 == 118) and y1 in range(38, 90, 8):</tspan><tspan x="0" y="502.9" class="st23 st9 st25"> flines.append(((x1,y1),(x2,y2)))</tspan><tspan x="0" y="513.6" class="st23 st9 st25"> normx = x1 / 8 - 4</tspan><tspan x="0" y="524.3" class="st23 st9 st25"> normy = 1 - ((y1 / 8 - 4) / 3.0)</tspan><tspan x="0" y="535" class="st23 st9 st25"> dx = x2-x1</tspan><tspan x="0" y="545.7" class="st23 st9 st25"> dy = y2 - y1</tspan><tspan x="0" y="556.4" class="st23 st9 st25"> m = int(math.sqrt( (dx*dx) + (dy*dy) ))</tspan><tspan x="0" y="567.1" class="st23 st9 st25"> if m>2:</tspan><tspan x="0" y="577.8" class="st23 st9 st25"> print ("dot", (normx, normy))</tspan><tspan x="0" y="588.5" class="st23 st9 st25"> msg = OSC.OSCMessage()</tspan><tspan x="0" y="599.2" class="st23 st9 st25"> msg.setAddress("/dot")</tspan><tspan x="0" y="609.9" class="st23 st9 st25"> #msg.append(dx)</tspan><tspan x="0" y="620.6" class="st23 st9 st25"> #msg.append(dy)</tspan><tspan x="0" y="631.3" class="st23 st9 st25"> #msg.append(m)</tspan><tspan x="0" y="642" class="st23 st9 st25"> msg.append(normx)</tspan><tspan x="0" y="652.7" class="st23 st9 st25"> msg.append(normy)</tspan><tspan x="0" y="663.4" class="st23 st9 st25"> client.send(msg)</tspan><tspan x="0" y="674.1" class="st23 st9 st25"> # client.send_message("/franc", m)</tspan><tspan x="384.1" y="706.2" class="st23 st9 st25"> flines = np.int32(flines)</tspan><tspan x="240.1" y="716.9" class="st23 st9 st25"> cv2.polylines(vis, flines, 0, (0, 40, 255)) # BGR</tspan><tspan x="336.1" y="727.6" class="st23 st9 st25"> for (x1, y1), (x2, y2) in flines:</tspan><tspan x="240.1" y="738.3" class="st23 st9 st25"> cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)</tspan><tspan x="474.1" y="749" class="st23 st9 st25"> return vis</tspan><tspan x="384.1" y="770.4" class="st23 st9 st25"> flines = np.int32(flines)</tspan><tspan x="240.1" y="781.1" class="st23 st9 st25"> cv2.polylines(vis, flines, 0, (0, 40, 255)) # BGR</tspan><tspan x="336.1" y="791.8" class="st23 st9 st25"> for (x1, y1), (x2, y2) in flines:</tspan><tspan x="240.1" y="802.5" class="st23 st9 st25"> cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)</tspan><tspan x="474.1" y="813.2" class="st23 st9 st25"> return vis</tspan><tspan x="234.1" y="834.6" class="st23 st9 st25"> # cv2.rectangle(img, pt1, pt2, color[, thickness[, </tspan><tspan x="438.1" y="845.3" class="st23 st9 st25">lineType[, shift]]])</tspan><tspan x="402.1" y="866.7" class="st23 st9 st25">if __name__ == '__main__':</tspan><tspan x="474.1" y="877.4" class="st23 st9 st25"> import sys</tspan><tspan x="426.1" y="888.1" class="st23 st9 st25"> print help_message</tspan><tspan x="408.1" y="898.8" class="st23 st9 st25"> try: fn = sys.argv[1]</tspan><tspan x="450.1" y="909.5" class="st23 st9 st25"> except: fn = 0</tspan><tspan x="444.1" y="941.6" class="st23 st9 st25"> # connect to pd</tspan><tspan x="474.1" y="952.3" class="st23 st9 st25"> # Init OSC</tspan><tspan x="390.1" y="963" class="st23 st9 st25"> client = OSC.OSCClient()</tspan><tspan x="180.1" y="973.7" class="st23 st9 st25"> client.connect(('127.0.0.1', 9001)) # first argument is the </tspan><tspan x="258.1" y="984.4" class="st23 st9 st25">IP of the host, second argument is the port to use</tspan><tspan x="456.1" y="995.1" class="st23 st9 st25"> #data="hello"</tspan><tspan x="198.1" y="1005.8" class="st23 st9 st25"> # client = udp_client.SimpleUDPClient("127.0.0.1", 9001)</tspan><tspan x="438.1" y="1027.2" class="st23 st9 st25"> # connect camera</tspan><tspan x="342.1" y="1037.9" class="st23 st9 st25"> # cam = video.create_capture(fn)</tspan><tspan x="192.1" y="1048.6" class="st23 st9 st25"> cam = video.create_capture("0:size=160x120") #canvas size </tspan><tspan x="504.1" y="1059.3" class="st23 st9 st25">in pixels</tspan><tspan x="402.1" y="1070" class="st23 st9 st25"> ret, prev = cam.read()</tspan><tspan x="240.1" y="1080.7" class="st23 st9 st25"> prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)</tspan><tspan x="390.1" y="1091.4" class="st23 st9 st25"> cur_glitch = prev.copy()</tspan><tspan x="468.1" y="1112.8" class="st23 st9 st25"> while True:</tspan><tspan x="396.1" y="1123.5" class="st23 st9 st25"> # print "GRAB FRAME"</tspan><tspan x="384.1" y="1134.2" class="st23 st9 st25"> ret, img = cam.read()</tspan><tspan x="246.1" y="1144.9" class="st23 st9 st25"> gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)</tspan><tspan x="204.1" y="1155.6" class="st23 st9 st25"> flow = cv2.calcOpticalFlowFarneback(prevgray, gray, </tspan><tspan x="408.1" y="1166.3" class="st23 st9 st25">0.5, 3, 15, 3, 5, 1.2, 0)</tspan><tspan x="420.1" y="1177" class="st23 st9 st25"> prevgray = gray</tspan><tspan x="258.1" y="1198.4" class="st23 st9 st25"> cv2.imshow('flow', send_flow0(gray, flow))</tspan><tspan x="354.1" y="1219.8" class="st23 st9 st25"> ch = 0xFF & cv2.waitKey(5)</tspan><tspan x="438.1" y="1230.5" class="st23 st9 st25"> if ch == 27:</tspan><tspan x="456.1" y="1241.2" class="st23 st9 st25"> break</tspan><tspan x="396.1" y="1251.9" class="st23 st9 st25"> cv2.destroyAllWindows()</tspan></text>
|
|
|
</g>
|
|
|
<rect x="50.6" y="1246.8" class="st1" width="547.5" height="247.7"/>
|
|
|
<text transform="matrix(1 0 0 1 50.6133 1259.8176)"><tspan x="0" y="0" class="st2 st3">By exploring the connection between motion and sound, experiments </tspan><tspan x="0" y="23" class="st2 st3">have been performed through different software and tools, which has </tspan><tspan x="0" y="46" class="st2 st3">strengthen substantially the following additional material in this </tspan><tspan x="0" y="69" class="st2 st3">project. For instance, Kinect sensor and Synapse, which receives input </tspan><tspan x="0" y="92" class="st2 st3">data from Kinect and sends it out to Ableton or Max MSP, have been </tspan><tspan x="0" y="115" class="st2 st3">tested out. Similarly, motion detection was together explored with </tspan><tspan x="0" y="138" class="st2 st3">“color detection” in Puredata, which brought up more interesting </tspan><tspan x="0" y="161" class="st2 st3">alternatives. Sound recording and feedback loop was further tested with </tspan><tspan x="0" y="184" class="st2 st3">this method, though mechanically it was hardly accurate. Finally with </tspan><tspan x="0" y="207" class="st2 st3">“Optical Flow”, this work was reconfigured with a wider sense for </tspan><tspan x="0" y="230" class="st2 st3">interacting with data.</tspan></text>
|
|
|
<polygon class="st26" points="587.3,3146.4 51.3,3146.4 51.3,2804.1 587.3,2804.1 "/>
|
|
|
<polygon class="st27" points="626.8,3131.4 65.7,3131.4 65.7,2773 626.8,2772.9 "/>
|
|
|
<polygon class="st28" points="654.8,3113.4 80.8,3113.4 80.8,2746.8 654.8,2746.8 "/>
|
|
|
<polygon class="st29" points="702,3093.9 98.8,3093.9 98.8,2708.6 701.9,2708.6 "/>
|
|
|
<polygon class="st30" points="779.3,3074.4 118.4,3074.4 118.4,2652.2 779.3,2652.2 "/>
|
|
|
|
|
|
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/8-optflow.jpg" transform="matrix(0.3988 0 0 0.3988 179.3978 1614.6321)">
|
|
|
</image>
|
|
|
|
|
|
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/10-optflow.jpg" transform="matrix(0.3943 0 6.752105e-06 0.3943 256.7634 1761.7285)">
|
|
|
</image>
|
|
|
|
|
|
<image style="overflow:visible;" width="400" height="250" xlink:href="edited/6-pd.jpg" transform="matrix(0.3991 0 0 0.3991 212.8855 1803.1924)">
|
|
|
</image>
|
|
|
|
|
|
<image style="overflow:visible;" width="400" height="250" xlink:href="edited/5-pd.jpg" transform="matrix(0.3996 0 0 0.3996 179.7984 1837.965)">
|
|
|
</image>
|
|
|
|
|
|
<image style="overflow:visible;" width="400" height="250" xlink:href="edited/2-ableton-kinect.jpg" transform="matrix(0.3996 0 0 0.3996 133.2772 1884.1931)">
|
|
|
</image>
|
|
|
|
|
|
<image style="overflow:visible;" width="653" height="408" xlink:href="2.gif" transform="matrix(0.6528 0 0 0.6528 67.8154 2054.3865)">
|
|
|
</image>
|
|
|
<g>
|
|
|
|
|
|
<image style="overflow:visible;" width="944" height="603" xlink:href="pd.png" transform="matrix(0.7541 0 0 0.7541 139.3997 2600.1714)">
|
|
|
</image>
|
|
|
<polygon class="st31" points="852.6,3054.9 139.4,3054.9 139.4,2599.4 852.6,2599.4 "/>
|
|
|
</g>
|
|
|
|
|
|
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/7-optflow.jpg" transform="matrix(0.3988 0 0 0.3988 66.3565 1554.0214)">
|
|
|
</image>
|
|
|
</g>
|
|
|
<g id="Layer_2">
|
|
|
</g>
|
|
|
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
</html>
|