<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersiveversion='3.0xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.0.xsd '>
<head>
<meta name='titlecontent='KeyboardEightyEightKeys.x3d'/>
<meta name='descriptioncontent='Eight-eight key keyboard, extrapolated from VRML Sourcebook Figure 24-4, including animation of key movements coordinated with sounding of key when touched.'/>
<meta name='warningcontent='Not all tones work, need some higher-frequency sound files.'/>
<meta name='creatorcontent='Scott Gilman'/>
<meta name='createdcontent='27 August 2004'/>
<meta name='modifiedcontent='27 November 2004'/>
<meta name='identifiercontent=' http://www.web3d.org/x3d/content/examples/Basic/StudentProjects/KeyboardEightyEightKeys.x3d '/>
<meta name='referencecontent='Figure 24.4, The VRML 2.0 Sourcebook, Copyright [1997] By Andrea L. Ames, David R. Nadeau, and John L. Moreland'/>
<meta name='referencecontent=' http://www.web3d.org/x3d/content/examples/Basic/Vrml2.0Sourcebook/Chapter24-Sound/Figure24.4FourKeyKeyboard.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

Index for ExternProtoDeclare definition: ViewPositionOrientation
Index for DEF nodes: A0, A0Mover, A0TRANS, A1, A1Mover, A1TRANS, A2, A2Mover, A2TRANS, A3, A3Mover, A3TRANS, A4, A4Mover, A4TRANS, A5, A5Mover, A5TRANS, A6, A6Mover, A6TRANS, A7, A7Mover, A7TRANS, A8, A8Mover, A8TRANS, As0, As0Mover, As0TRANS, As1, As1Mover, As1TRANS, As2, As2Mover, As2TRANS, As3, As3Mover, As3TRANS, As4, As4Mover, As4TRANS, As5, As5Mover, As5TRANS, As6, As6Mover, As6TRANS, As7, As7Mover, As7TRANS, As8, As8Mover, As8TRANS, B0, B0Mover, B0TRANS, B1, B1Mover, B1TRANS, B2, B2Mover, B2TRANS, B3, B3Mover, B3TRANS, B4, B4Mover, B4TRANS, B5, B5Mover, B5TRANS, B6, B6Mover, B6TRANS, B7, B7Mover, B7TRANS, B8, B8Mover, B8TRANS, BlackKey, C0, C0Mover, C0TRANS, C1, C1Mover, C1TRANS, C2, C2Mover, C2TRANS, C3, C3Mover, C3TRANS, C4, C4Mover, C4TRANS, C5, C5Mover, C5TRANS, C6, C6Mover, C6TRANS, C7, C7Mover, C7TRANS, C8, C8Mover, C8TRANS, ClockA0, ClockA1, ClockA2, ClockA3, ClockA4, ClockA5, ClockA6, ClockA7, ClockA8, ClockAs0, ClockAs1, ClockAs2, ClockAs3, ClockAs4, ClockAs5, ClockAs6, ClockAs7, ClockAs8, ClockB0, ClockB1, ClockB2, ClockB3, ClockB4, ClockB5, ClockB6, ClockB7, ClockB8, ClockC0, ClockC1, ClockC2, ClockC3, ClockC4, ClockC5, ClockC6, ClockC7, ClockC8, ClockCs0, ClockCs1, ClockCs2, ClockCs3, ClockCs4, ClockCs5, ClockCs6, ClockCs7, ClockD0, ClockD1, ClockD2, ClockD3, ClockD4, ClockD5, ClockD6, ClockD7, ClockDs0, ClockDs1, ClockDs2, ClockDs3, ClockDs4, ClockDs5, ClockDs6, ClockDs7, ClockE0, ClockE1, ClockE2, ClockE3, ClockE4, ClockE5, ClockE6, ClockE7, ClockF0, ClockF1, ClockF2, ClockF3, ClockF4, ClockF5, ClockF6, ClockF7, ClockFs0, ClockFs1, ClockFs2, ClockFs3, ClockFs4, ClockFs5, ClockFs6, ClockFs7, ClockG0, ClockG1, ClockG2, ClockG3, ClockG4, ClockG5, ClockG6, ClockG7, ClockGs0, ClockGs1, ClockGs2, ClockGs3, ClockGs4, ClockGs5, ClockGs6, ClockGs7, Cs0, Cs0Mover, Cs0TRANS, Cs1, Cs1Mover, Cs1TRANS, Cs2, Cs2Mover, Cs2TRANS, Cs3, Cs3Mover, Cs3TRANS, Cs4, Cs4Mover, Cs4TRANS, Cs5, Cs5Mover, Cs5TRANS, Cs6, Cs6Mover, Cs6TRANS, Cs7, Cs7Mover, Cs7TRANS, D0, D0Mover, D0TRANS, D1, D1Mover, D1TRANS, D2, D2Mover, D2TRANS, D3, D3Mover, D3TRANS, D4, D4Mover, D4TRANS, D5, D5Mover, D5TRANS, D6, D6Mover, D6TRANS, D7, D7Mover, D7TRANS, Ds0, Ds0Mover, Ds0TRANS, Ds1, Ds1Mover, Ds1TRANS, Ds2, Ds2Mover, Ds2TRANS, Ds3, Ds3Mover, Ds3TRANS, Ds4, Ds4Mover, Ds4TRANS, Ds5, Ds5Mover, Ds5TRANS, Ds6, Ds6Mover, Ds6TRANS, Ds7, Ds7Mover, Ds7TRANS, E0, E0Mover, E0TRANS, E1, E1Mover, E1TRANS, E2, E2Mover, E2TRANS, E3, E3Mover, E3TRANS, E4, E4Mover, E4TRANS, E5, E5Mover, E5TRANS, E6, E6Mover, E6TRANS, E7, E7Mover, E7TRANS, F0, F0Mover, F0TRANS, F1, F1Mover, F1TRANS, F2, F2Mover, F2TRANS, F3, F3Mover, F3TRANS, F4, F4Mover, F4TRANS, F5, F5Mover, F5TRANS, F6, F6Mover, F6TRANS, F7, F7Mover, F7TRANS, FrontFar, Fs0, Fs0Mover, Fs0TRANS, Fs1, Fs1Mover, Fs1TRANS, Fs2, Fs2Mover, Fs2TRANS, Fs3, Fs3Mover, Fs3TRANS, Fs4, Fs4Mover, Fs4TRANS, Fs5, Fs5Mover, Fs5TRANS, Fs6, Fs6Mover, Fs6TRANS, Fs7, Fs7Mover, Fs7TRANS, G0, G0Mover, G0TRANS, G1, G1Mover, G1TRANS, G2, G2Mover, G2TRANS, G3, G3Mover, G3TRANS, G4, G4Mover, G4TRANS, G5, G5Mover, G5TRANS, G6, G6Mover, G6TRANS, G7, G7Mover, G7TRANS, Gs0, Gs0Mover, Gs0TRANS, Gs1, Gs1Mover, Gs1TRANS, Gs2, Gs2Mover, Gs2TRANS, Gs3, Gs3Mover, Gs3TRANS, Gs4, Gs4Mover, Gs4TRANS, Gs5, Gs5Mover, Gs5TRANS, Gs6, Gs6Mover, Gs6TRANS, Gs7, Gs7Mover, Gs7TRANS, LeftSide, PitchA0, PitchA1, PitchA2, PitchA3, PitchA4, PitchA5, PitchA6, PitchA7, PitchA8, PitchAs0, PitchAs1, PitchAs2, PitchAs3, PitchAs4, PitchAs5, PitchAs6, PitchAs7, PitchAs8, PitchB0, PitchB1, PitchB2, PitchB3, PitchB4, PitchB5, PitchB6, PitchB7, PitchB8, PitchC0, PitchC1, PitchC2, PitchC3, PitchC4, PitchC5, PitchC6, PitchC7, PitchC8, PitchCs0, PitchCs1, PitchCs2, PitchCs3, PitchCs4, PitchCs5, PitchCs6, PitchCs7, PitchD0, PitchD1, PitchD2, PitchD3, PitchD4, PitchD5, PitchD6, PitchD7, PitchDs0, PitchDs1, PitchDs2, PitchDs3, PitchDs4, PitchDs5, PitchDs6, PitchDs7, PitchE0, PitchE1, PitchE2, PitchE3, PitchE4, PitchE5, PitchE6, PitchE7, PitchF0, PitchF1, PitchF2, PitchF3, PitchF4, PitchF5, PitchF6, PitchF7, PitchFs0, PitchFs1, PitchFs2, PitchFs3, PitchFs4, PitchFs5, PitchFs6, PitchFs7, PitchG0, PitchG1, PitchG2, PitchG3, PitchG4, PitchG5, PitchG6, PitchG7, PitchGs0, PitchGs1, PitchGs2, PitchGs3, PitchGs4, PitchGs5, PitchGs6, PitchGs7, playPiano, RightSide, StartPlaying, TopDown, TopDownCloser, WhiteKey
Index for Viewpoint images: Viewpoint_1, RightSide, FrontFar, LeftSide, TopDown, TopDownCloser
-->
<Scene>
<Viewpoint description='Middle C, C#, D, D#orientation='1 0 0 -0.758position='0 2 2'/>
<Viewpoint DEF='RightSidedescription='From right end of keyboardorientation='-.238 .939 .25 1.6349position='15.5 8.5 -.2'/>
<Viewpoint DEF='FrontFardescription='Looking down from a distanceorientation='-1 .007 -.004 .6661position='.3 11 13.7'/>
<Viewpoint DEF='LeftSidedescription='From left end of keyboardorientation='-.252 -.932 -.261 1.636position='-15.9 9.6 -.1'/>
<Viewpoint DEF='TopDowndescription='Looking down from above middle Corientation='-1 -.024 .007 1.5504position='-1 15.4 .3'/>
<Viewpoint DEF='TopDownCloserdescription='top down view, closerorientation='-1 -.005 -.008 1.1528position='-.6 7.1 3.1'/>
<Group>
<!-- A0TRANS ROUTE:  [from A0Mover.value_changed to set_translation ] -->
<Transform DEF='A0TRANStranslation='-7.5 0 0'>
<Shape DEF='WhiteKey'>
<Box size='0.23 0.1 1.5'/>
</Shape>
<!-- A0 ROUTEs:  [from touchTime to PitchA1.set_startTime ] [from touchTime to ClockA0.set_startTime ] -->
<TouchSensor DEF='A0description='A0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- As0TRANS ROUTE:  [from As0Mover.value_changed to set_translation ] -->
<Transform DEF='As0TRANStranslation='-7.375 0.1 -.375'>
<Shape DEF='BlackKey'>
<Box size='0.23 0.1 1.5'/>
<Appearance>
<Material diffuseColor='0.4 0.4 0.4'/>
</Appearance>
</Shape>
<!-- As0 ROUTEs:  [from touchTime to PitchAs1.set_startTime ] [from touchTime to ClockAs0.set_startTime ] -->
<TouchSensor DEF='As0description='As0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- B0TRANS ROUTE:  [from B0Mover.value_changed to set_translation ] -->
<Transform DEF='B0TRANStranslation='-7.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- B0 ROUTEs:  [from touchTime to PitchB1.set_startTime ] [from touchTime to ClockB0.set_startTime ] -->
<TouchSensor DEF='B0description='B0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- C0TRANS ROUTE:  [from C0Mover.value_changed to set_translation ] -->
<Transform DEF='C0TRANStranslation='-7 0 0'>
<Shape USE='WhiteKey'/>
<!-- C0 ROUTEs:  [from touchTime to PitchC1.set_startTime ] [from touchTime to ClockC0.set_startTime ] -->
<TouchSensor DEF='C0description='C0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Cs0TRANS ROUTE:  [from Cs0Mover.value_changed to set_translation ] -->
<Transform DEF='Cs0TRANStranslation='-6.875 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Cs0 ROUTEs:  [from touchTime to PitchCs1.set_startTime ] [from touchTime to ClockCs0.set_startTime ] -->
<TouchSensor DEF='Cs0description='Cs1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- D0TRANS ROUTE:  [from D0Mover.value_changed to set_translation ] -->
<Transform DEF='D0TRANStranslation='-6.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- D0 ROUTEs:  [from touchTime to PitchD1.set_startTime ] [from touchTime to ClockD0.set_startTime ] -->
<TouchSensor DEF='D0description='D0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Ds0TRANS ROUTE:  [from Ds0Mover.value_changed to set_translation ] -->
<Transform DEF='Ds0TRANStranslation='-6.625 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Ds0 ROUTEs:  [from touchTime to PitchDs1.set_startTime ] [from touchTime to ClockDs0.set_startTime ] -->
<TouchSensor DEF='Ds0description='Ds0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- E0TRANS ROUTE:  [from E0Mover.value_changed to set_translation ] -->
<Transform DEF='E0TRANStranslation='-6.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- E0 ROUTEs:  [from touchTime to PitchE1.set_startTime ] [from touchTime to ClockE0.set_startTime ] -->
<TouchSensor DEF='E0description='E0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- F0TRANS ROUTE:  [from F0Mover.value_changed to set_translation ] -->
<Transform DEF='F0TRANStranslation='-6.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- F0 ROUTEs:  [from touchTime to PitchF1.set_startTime ] [from touchTime to ClockF0.set_startTime ] -->
<TouchSensor DEF='F0description='F0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Fs0TRANS ROUTE:  [from Fs0Mover.value_changed to set_translation ] -->
<Transform DEF='Fs0TRANStranslation='-6.125 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Fs0 ROUTEs:  [from touchTime to PitchFs1.set_startTime ] [from touchTime to ClockFs0.set_startTime ] -->
<TouchSensor DEF='Fs0description='Fs0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- G0TRANS ROUTE:  [from G0Mover.value_changed to set_translation ] -->
<Transform DEF='G0TRANStranslation='-6 0 0'>
<Shape USE='WhiteKey'/>
<!-- G0 ROUTEs:  [from touchTime to PitchG1.set_startTime ] [from touchTime to ClockG0.set_startTime ] -->
<TouchSensor DEF='G0description='G0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Gs0TRANS ROUTE:  [from Gs0Mover.value_changed to set_translation ] -->
<Transform DEF='Gs0TRANStranslation='-5.875 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Gs0 ROUTEs:  [from touchTime to PitchGs1.set_startTime ] [from touchTime to ClockGs0.set_startTime ] -->
<TouchSensor DEF='Gs0description='Gs0'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- A1TRANS ROUTE:  [from A1Mover.value_changed to set_translation ] -->
<Transform DEF='A1TRANStranslation='-5.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- A1 ROUTEs:  [from touchTime to PitchA1.set_startTime ] [from touchTime to ClockA1.set_startTime ] -->
<TouchSensor DEF='A1description='A1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- As1TRANS ROUTE:  [from As1Mover.value_changed to set_translation ] -->
<Transform DEF='As1TRANStranslation='-5.625 0.1 -.375'>
<Shape USE='BlackKey'/>
<!-- As1 ROUTEs:  [from touchTime to PitchAs1.set_startTime ] [from touchTime to ClockAs1.set_startTime ] -->
<TouchSensor DEF='As1description='As1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- B1TRANS ROUTE:  [from B1Mover.value_changed to set_translation ] -->
<Transform DEF='B1TRANStranslation='-5.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- B1 ROUTEs:  [from touchTime to PitchB1.set_startTime ] [from touchTime to ClockB1.set_startTime ] -->
<TouchSensor DEF='B1description='B1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- C1TRANS ROUTE:  [from C1Mover.value_changed to set_translation ] -->
<Transform DEF='C1TRANStranslation='-5.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- C1 ROUTEs:  [from touchTime to PitchC1.set_startTime ] [from touchTime to ClockC1.set_startTime ] -->
<TouchSensor DEF='C1description='C1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Cs1TRANS ROUTE:  [from Cs1Mover.value_changed to set_translation ] -->
<Transform DEF='Cs1TRANStranslation='-5.125 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Cs1 ROUTEs:  [from touchTime to PitchCs1.set_startTime ] [from touchTime to ClockCs1.set_startTime ] -->
<TouchSensor DEF='Cs1description='Cs1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- D1TRANS ROUTE:  [from D1Mover.value_changed to set_translation ] -->
<Transform DEF='D1TRANStranslation='-5 0 0'>
<Shape USE='WhiteKey'/>
<!-- D1 ROUTEs:  [from touchTime to PitchD1.set_startTime ] [from touchTime to ClockD1.set_startTime ] -->
<TouchSensor DEF='D1description='D1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Ds1TRANS ROUTE:  [from Ds1Mover.value_changed to set_translation ] -->
<Transform DEF='Ds1TRANStranslation='-4.875 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Ds1 ROUTEs:  [from touchTime to PitchDs1.set_startTime ] [from touchTime to ClockDs1.set_startTime ] -->
<TouchSensor DEF='Ds1description='Ds1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- E1TRANS ROUTE:  [from E1Mover.value_changed to set_translation ] -->
<Transform DEF='E1TRANStranslation='-4.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- E1 ROUTEs:  [from touchTime to PitchE1.set_startTime ] [from touchTime to ClockE1.set_startTime ] -->
<TouchSensor DEF='E1description='E1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- F1TRANS ROUTE:  [from F1Mover.value_changed to set_translation ] -->
<Transform DEF='F1TRANStranslation='-4.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- F1 ROUTEs:  [from touchTime to PitchF1.set_startTime ] [from touchTime to ClockF1.set_startTime ] -->
<TouchSensor DEF='F1description='F1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Fs1TRANS ROUTE:  [from Fs1Mover.value_changed to set_translation ] -->
<Transform DEF='Fs1TRANStranslation='-4.375 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Fs1 ROUTEs:  [from touchTime to PitchFs1.set_startTime ] [from touchTime to ClockFs1.set_startTime ] -->
<TouchSensor DEF='Fs1description='Fs1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- G1TRANS ROUTE:  [from G1Mover.value_changed to set_translation ] -->
<Transform DEF='G1TRANStranslation='-4.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- G1 ROUTEs:  [from touchTime to PitchG1.set_startTime ] [from touchTime to ClockG1.set_startTime ] -->
<TouchSensor DEF='G1description='G1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Gs1TRANS ROUTE:  [from Gs1Mover.value_changed to set_translation ] -->
<Transform DEF='Gs1TRANStranslation='-4.125 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Gs1 ROUTEs:  [from touchTime to PitchGs1.set_startTime ] [from touchTime to ClockGs1.set_startTime ] -->
<TouchSensor DEF='Gs1description='Gs1'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- A2TRANS ROUTE:  [from A2Mover.value_changed to set_translation ] -->
<Transform DEF='A2TRANStranslation='-4 0 0'>
<Shape USE='WhiteKey'/>
<!-- A2 ROUTEs:  [from touchTime to PitchA2.set_startTime ] [from touchTime to ClockA2.set_startTime ] -->
<TouchSensor DEF='A2description='A2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- As2TRANS ROUTE:  [from As2Mover.value_changed to set_translation ] -->
<Transform DEF='As2TRANStranslation='-3.875 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- As2 ROUTEs:  [from touchTime to PitchAs2.set_startTime ] [from touchTime to ClockAs2.set_startTime ] -->
<TouchSensor DEF='As2description='As2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- B2TRANS ROUTE:  [from B2Mover.value_changed to set_translation ] -->
<Transform DEF='B2TRANStranslation='-3.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- B2 ROUTEs:  [from touchTime to PitchB2.set_startTime ] [from touchTime to ClockB2.set_startTime ] -->
<TouchSensor DEF='B2description='B2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- C2TRANS ROUTE:  [from C2Mover.value_changed to set_translation ] -->
<Transform DEF='C2TRANStranslation='-3.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- C2 ROUTEs:  [from touchTime to PitchC2.set_startTime ] [from touchTime to ClockC2.set_startTime ] -->
<TouchSensor DEF='C2description='C2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Cs2TRANS ROUTE:  [from Cs2Mover.value_changed to set_translation ] -->
<Transform DEF='Cs2TRANStranslation='-3.375 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Cs2 ROUTEs:  [from touchTime to PitchCs2.set_startTime ] [from touchTime to ClockCs2.set_startTime ] -->
<TouchSensor DEF='Cs2description='Cs2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- D2TRANS ROUTE:  [from D2Mover.value_changed to set_translation ] -->
<Transform DEF='D2TRANStranslation='-3.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- D2 ROUTEs:  [from touchTime to PitchD2.set_startTime ] [from touchTime to ClockD2.set_startTime ] -->
<TouchSensor DEF='D2description='D2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Ds2TRANS ROUTE:  [from Ds2Mover.value_changed to set_translation ] -->
<Transform DEF='Ds2TRANStranslation='-3.125 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Ds2 ROUTEs:  [from touchTime to PitchDs2.set_startTime ] [from touchTime to ClockDs2.set_startTime ] -->
<TouchSensor DEF='Ds2description='Ds2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- E2TRANS ROUTE:  [from E2Mover.value_changed to set_translation ] -->
<Transform DEF='E2TRANStranslation='-3 0 0'>
<Shape USE='WhiteKey'/>
<!-- E2 ROUTEs:  [from touchTime to PitchE2.set_startTime ] [from touchTime to ClockE2.set_startTime ] -->
<TouchSensor DEF='E2description='E2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- F2TRANS ROUTE:  [from F2Mover.value_changed to set_translation ] -->
<Transform DEF='F2TRANStranslation='-2.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- F2 ROUTEs:  [from touchTime to PitchF2.set_startTime ] [from touchTime to ClockF2.set_startTime ] -->
<TouchSensor DEF='F2description='F2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Fs2TRANS ROUTE:  [from Fs2Mover.value_changed to set_translation ] -->
<Transform DEF='Fs2TRANStranslation='-2.625 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Fs2 ROUTEs:  [from touchTime to PitchFs2.set_startTime ] [from touchTime to ClockFs2.set_startTime ] -->
<TouchSensor DEF='Fs2description='Fs2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- G2TRANS ROUTE:  [from G2Mover.value_changed to set_translation ] -->
<Transform DEF='G2TRANStranslation='-2.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- G2 ROUTEs:  [from touchTime to PitchG2.set_startTime ] [from touchTime to ClockG2.set_startTime ] -->
<TouchSensor DEF='G2description='G2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Gs2TRANS ROUTE:  [from Gs2Mover.value_changed to set_translation ] -->
<Transform DEF='Gs2TRANStranslation='-2.375 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Gs2 ROUTEs:  [from touchTime to PitchGs2.set_startTime ] [from touchTime to ClockGs2.set_startTime ] -->
<TouchSensor DEF='Gs2description='Gs2'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- A3TRANS ROUTE:  [from A3Mover.value_changed to set_translation ] -->
<Transform DEF='A3TRANStranslation='-2.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- A3 ROUTEs:  [from touchTime to PitchA3.set_startTime ] [from touchTime to ClockA3.set_startTime ] -->
<TouchSensor DEF='A3description='A3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- As3TRANS ROUTE:  [from As3Mover.value_changed to set_translation ] -->
<Transform DEF='As3TRANStranslation='-2.125 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- As3 ROUTEs:  [from touchTime to PitchAs3.set_startTime ] [from touchTime to ClockAs3.set_startTime ] -->
<TouchSensor DEF='As3description='As3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- B3TRANS ROUTE:  [from B3Mover.value_changed to set_translation ] -->
<Transform DEF='B3TRANStranslation='-2 0 0'>
<Shape USE='WhiteKey'/>
<!-- B3 ROUTEs:  [from touchTime to PitchB3.set_startTime ] [from touchTime to ClockB3.set_startTime ] -->
<TouchSensor DEF='B3description='B3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- C3TRANS ROUTE:  [from C3Mover.value_changed to set_translation ] -->
<Transform DEF='C3TRANStranslation='-1.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- C3 ROUTEs:  [from touchTime to PitchC3.set_startTime ] [from touchTime to ClockC3.set_startTime ] -->
<TouchSensor DEF='C3description='C3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Cs3TRANS ROUTE:  [from Cs3Mover.value_changed to set_translation ] -->
<Transform DEF='Cs3TRANStranslation='-1.625 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Cs3 ROUTEs:  [from touchTime to PitchCs3.set_startTime ] [from touchTime to ClockCs3.set_startTime ] -->
<TouchSensor DEF='Cs3description='Cs3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- D3TRANS ROUTE:  [from D3Mover.value_changed to set_translation ] -->
<Transform DEF='D3TRANStranslation='-1.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- D3 ROUTEs:  [from touchTime to PitchD3.set_startTime ] [from touchTime to ClockD3.set_startTime ] -->
<TouchSensor DEF='D3description='D3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Ds3TRANS ROUTE:  [from Ds3Mover.value_changed to set_translation ] -->
<Transform DEF='Ds3TRANStranslation='-1.375 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Ds3 ROUTEs:  [from touchTime to PitchDs3.set_startTime ] [from touchTime to ClockDs3.set_startTime ] -->
<TouchSensor DEF='Ds3description='Ds3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- E3TRANS ROUTE:  [from E3Mover.value_changed to set_translation ] -->
<Transform DEF='E3TRANStranslation='-1.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- E3 ROUTEs:  [from touchTime to PitchE3.set_startTime ] [from touchTime to ClockE3.set_startTime ] -->
<TouchSensor DEF='E3description='E3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- F3TRANS ROUTE:  [from F3Mover.value_changed to set_translation ] -->
<Transform DEF='F3TRANStranslation='-1 0 0'>
<Shape USE='WhiteKey'/>
<!-- F3 ROUTEs:  [from touchTime to PitchF3.set_startTime ] [from touchTime to ClockF3.set_startTime ] -->
<TouchSensor DEF='F3description='F3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Fs3TRANS ROUTE:  [from Fs3Mover.value_changed to set_translation ] -->
<Transform DEF='Fs3TRANStranslation='-.875 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Fs3 ROUTEs:  [from touchTime to PitchFs3.set_startTime ] [from touchTime to ClockFs3.set_startTime ] -->
<TouchSensor DEF='Fs3description='Fs3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- G3TRANS ROUTE:  [from G3Mover.value_changed to set_translation ] -->
<Transform DEF='G3TRANStranslation='-.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- G3 ROUTEs:  [from touchTime to PitchG3.set_startTime ] [from touchTime to ClockG3.set_startTime ] -->
<TouchSensor DEF='G3description='G3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Gs3TRANS ROUTE:  [from Gs3Mover.value_changed to set_translation ] -->
<Transform DEF='Gs3TRANStranslation='-.625 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Gs3 ROUTEs:  [from touchTime to PitchGs3.set_startTime ] [from touchTime to ClockGs3.set_startTime ] -->
<TouchSensor DEF='Gs3description='Gs3'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- A4TRANS ROUTE:  [from A4Mover.value_changed to set_translation ] -->
<Transform DEF='A4TRANStranslation='-.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- A4 ROUTEs:  [from touchTime to PitchA4.set_startTime ] [from touchTime to ClockA4.set_startTime ] -->
<TouchSensor DEF='A4description='A4'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- As4TRANS ROUTE:  [from As4Mover.value_changed to set_translation ] -->
<Transform DEF='As4TRANStranslation='-.375 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- As4 ROUTEs:  [from touchTime to PitchAs4.set_startTime ] [from touchTime to ClockAs4.set_startTime ] -->
<TouchSensor DEF='As4description='As4'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- B4TRANS ROUTE:  [from B4Mover.value_changed to set_translation ] -->
<Transform DEF='B4TRANStranslation='-.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- B4 ROUTEs:  [from touchTime to PitchB4.set_startTime ] [from touchTime to ClockB4.set_startTime ] -->
<TouchSensor DEF='B4description='B4'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- C4TRANS ROUTE:  [from C4Mover.value_changed to set_translation ] -->
<Transform DEF='C4TRANS'>
<Shape USE='WhiteKey'/>
<!-- C4 ROUTEs:  [from touchTime to PitchC4.set_startTime ] [from touchTime to ClockC4.set_startTime ] -->
<TouchSensor DEF='C4description='C4'/>
<Sound minBack='100minFront='100'> </Sound>
</Transform>
<!-- Cs4TRANS ROUTE:  [from Cs4Mover.value_changed to set_translation ] -->
<Transform DEF='Cs4TRANStranslation='0.125 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Cs4 ROUTEs:  [from touchTime to PitchCs4.set_startTime ] [from touchTime to ClockCs4.set_startTime ] -->
<TouchSensor DEF='Cs4description='Csharp4'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- D4TRANS ROUTE:  [from D4Mover.value_changed to set_translation ] -->
<Transform DEF='D4TRANStranslation='0.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- D4 ROUTEs:  [from touchTime to PitchD4.set_startTime ] [from touchTime to ClockD4.set_startTime ] -->
<TouchSensor DEF='D4description='D4'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- Ds4TRANS ROUTE:  [from Ds4Mover.value_changed to set_translation ] -->
<Transform DEF='Ds4TRANStranslation='0.375 0.1 -0.375'>
<Shape USE='BlackKey'/>
<!-- Ds4 ROUTEs:  [from touchTime to PitchDs4.set_startTime ] [from touchTime to ClockDs4.set_startTime ] -->
<TouchSensor DEF='Ds4description='Dsharp4'/>
<Sound minBack='5minFront='5'> </Sound>
</Transform>
<!-- E4TRANS ROUTE:  [from E4Mover.value_changed to set_translation ] -->
<Transform DEF='E4TRANStranslation='.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- E4 ROUTEs:  [from touchTime to PitchE4.set_startTime ] [from touchTime to ClockE4.set_startTime ] -->
<TouchSensor DEF='E4description='E4'/>
<Sound> </Sound>
</Transform>
<!-- F4TRANS ROUTE:  [from F4Mover.value_changed to set_translation ] -->
<Transform DEF='F4TRANStranslation='.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- F4 ROUTEs:  [from touchTime to PitchF4.set_startTime ] [from touchTime to ClockF4.set_startTime ] -->
<TouchSensor DEF='F4description='F4'/>
<Sound> </Sound>
</Transform>
<!-- Fs4TRANS ROUTE:  [from Fs4Mover.value_changed to set_translation ] -->
<Transform DEF='Fs4TRANStranslation='.875 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Fs4 ROUTEs:  [from touchTime to PitchFs4.set_startTime ] [from touchTime to ClockFs4.set_startTime ] -->
<TouchSensor DEF='Fs4description='Fsharp4'/>
<Sound> </Sound>
</Transform>
<!-- G4TRANS ROUTE:  [from G4Mover.value_changed to set_translation ] -->
<Transform DEF='G4TRANStranslation='1 0 0'>
<Shape USE='WhiteKey'/>
<!-- G4 ROUTEs:  [from touchTime to PitchG4.set_startTime ] [from touchTime to ClockG4.set_startTime ] -->
<TouchSensor DEF='G4description='G4'/>
<Sound> </Sound>
</Transform>
<!-- Gs4TRANS ROUTE:  [from Gs4Mover.value_changed to set_translation ] -->
<Transform DEF='Gs4TRANStranslation='1.125 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Gs4 ROUTEs:  [from touchTime to PitchGs4.set_startTime ] [from touchTime to ClockGs4.set_startTime ] -->
<TouchSensor DEF='Gs4description='Gsharp4'/>
<Sound> </Sound>
</Transform>
<!-- A5TRANS ROUTE:  [from A5Mover.value_changed to set_translation ] -->
<Transform DEF='A5TRANStranslation='1.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- A5 ROUTEs:  [from touchTime to PitchA5.set_startTime ] [from touchTime to ClockA5.set_startTime ] -->
<TouchSensor DEF='A5description='A5'/>
<Sound> </Sound>
</Transform>
<!-- As5TRANS ROUTE:  [from As5Mover.value_changed to set_translation ] -->
<Transform DEF='As5TRANStranslation='1.375 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- As5 ROUTEs:  [from touchTime to PitchAs5.set_startTime ] [from touchTime to ClockAs5.set_startTime ] -->
<TouchSensor DEF='As5description='Asharp5'/>
<Sound> </Sound>
</Transform>
<!-- B5TRANS ROUTE:  [from B5Mover.value_changed to set_translation ] -->
<Transform DEF='B5TRANStranslation='1.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- B5 ROUTEs:  [from touchTime to PitchB5.set_startTime ] [from touchTime to ClockB5.set_startTime ] -->
<TouchSensor DEF='B5description='B5'/>
<Sound> </Sound>
</Transform>
<!-- C5TRANS ROUTE:  [from C5Mover.value_changed to set_translation ] -->
<Transform DEF='C5TRANStranslation='1.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- C5 ROUTEs:  [from touchTime to PitchC5.set_startTime ] [from touchTime to ClockC5.set_startTime ] -->
<TouchSensor DEF='C5description='C5'/>
<Sound> </Sound>
</Transform>
<!-- Cs5TRANS ROUTE:  [from Cs5Mover.value_changed to set_translation ] -->
<Transform DEF='Cs5TRANStranslation='1.875 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Cs5 ROUTEs:  [from touchTime to PitchCs5.set_startTime ] [from touchTime to ClockCs5.set_startTime ] -->
<TouchSensor DEF='Cs5description='Csharp5'/>
<Sound> </Sound>
</Transform>
<!-- D5TRANS ROUTE:  [from D5Mover.value_changed to set_translation ] -->
<Transform DEF='D5TRANStranslation='2 0 0'>
<Shape USE='WhiteKey'/>
<!-- D5 ROUTEs:  [from touchTime to PitchD5.set_startTime ] [from touchTime to ClockD5.set_startTime ] -->
<TouchSensor DEF='D5description='D5'/>
<Sound> </Sound>
</Transform>
<!-- Ds5TRANS ROUTE:  [from Ds5Mover.value_changed to set_translation ] -->
<Transform DEF='Ds5TRANStranslation='2.125 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Ds5 ROUTEs:  [from touchTime to PitchDs5.set_startTime ] [from touchTime to ClockDs5.set_startTime ] -->
<TouchSensor DEF='Ds5description='Ds5'/>
<Sound> </Sound>
</Transform>
<!-- E5TRANS ROUTE:  [from E5Mover.value_changed to set_translation ] -->
<Transform DEF='E5TRANStranslation='2.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- E5 ROUTEs:  [from touchTime to PitchE5.set_startTime ] [from touchTime to ClockE5.set_startTime ] -->
<TouchSensor DEF='E5description='E5'/>
<Sound> </Sound>
</Transform>
<!-- F5TRANS ROUTE:  [from F5Mover.value_changed to set_translation ] -->
<Transform DEF='F5TRANStranslation='2.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- F5 ROUTEs:  [from touchTime to PitchF5.set_startTime ] [from touchTime to ClockF5.set_startTime ] -->
<TouchSensor DEF='F5description='F5'/>
<Sound> </Sound>
</Transform>
<!-- Fs5TRANS ROUTE:  [from Fs5Mover.value_changed to set_translation ] -->
<Transform DEF='Fs5TRANStranslation='2.625 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Fs5 ROUTEs:  [from touchTime to PitchFs5.set_startTime ] [from touchTime to ClockFs5.set_startTime ] -->
<TouchSensor DEF='Fs5description='Fs5'/>
<Sound> </Sound>
</Transform>
<!-- G5TRANS ROUTE:  [from G5Mover.value_changed to set_translation ] -->
<Transform DEF='G5TRANStranslation='2.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- G5 ROUTEs:  [from touchTime to PitchG5.set_startTime ] [from touchTime to ClockG5.set_startTime ] -->
<TouchSensor DEF='G5description='G5'/>
<Sound> </Sound>
</Transform>
<!-- Gs5TRANS ROUTE:  [from Gs5Mover.value_changed to set_translation ] -->
<Transform DEF='Gs5TRANStranslation='2.875 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Gs5 ROUTEs:  [from touchTime to PitchGs5.set_startTime ] [from touchTime to ClockGs5.set_startTime ] -->
<TouchSensor DEF='Gs5description='Gs5'/>
<Sound> </Sound>
</Transform>
<!-- A6TRANS ROUTE:  [from A6Mover.value_changed to set_translation ] -->
<Transform DEF='A6TRANStranslation='3 0 0'>
<Shape USE='WhiteKey'/>
<!-- A6 ROUTEs:  [from touchTime to PitchA6.set_startTime ] [from touchTime to ClockA6.set_startTime ] -->
<TouchSensor DEF='A6description='A6'/>
<Sound> </Sound>
</Transform>
<!-- As6TRANS ROUTE:  [from As6Mover.value_changed to set_translation ] -->
<Transform DEF='As6TRANStranslation='3.125 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- As6 ROUTEs:  [from touchTime to PitchAs6.set_startTime ] [from touchTime to ClockAs6.set_startTime ] -->
<TouchSensor DEF='As6description='As6'/>
<Sound> </Sound>
</Transform>
<!-- B6TRANS ROUTE:  [from B6Mover.value_changed to set_translation ] -->
<Transform DEF='B6TRANStranslation='3.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- B6 ROUTEs:  [from touchTime to PitchB6.set_startTime ] [from touchTime to ClockB6.set_startTime ] -->
<TouchSensor DEF='B6description='B6'/>
<Sound> </Sound>
</Transform>
<!-- C6TRANS ROUTE:  [from C6Mover.value_changed to set_translation ] -->
<Transform DEF='C6TRANStranslation='3.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- C6 ROUTEs:  [from touchTime to PitchC6.set_startTime ] [from touchTime to ClockC6.set_startTime ] -->
<TouchSensor DEF='C6description='C6'/>
<Sound> </Sound>
</Transform>
<!-- Cs6TRANS ROUTE:  [from Cs6Mover.value_changed to set_translation ] -->
<Transform DEF='Cs6TRANStranslation='3.625 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Cs6 ROUTEs:  [from touchTime to PitchCs6.set_startTime ] [from touchTime to ClockCs6.set_startTime ] -->
<TouchSensor DEF='Cs6description='Cs6'/>
<Sound> </Sound>
</Transform>
<!-- D6TRANS ROUTE:  [from D6Mover.value_changed to set_translation ] -->
<Transform DEF='D6TRANStranslation='3.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- D6 ROUTEs:  [from touchTime to PitchD6.set_startTime ] [from touchTime to ClockD6.set_startTime ] -->
<TouchSensor DEF='D6description='D6'/>
<Sound> </Sound>
</Transform>
<!-- Ds6TRANS ROUTE:  [from Ds6Mover.value_changed to set_translation ] -->
<Transform DEF='Ds6TRANStranslation='3.875 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Ds6 ROUTEs:  [from touchTime to PitchDs6.set_startTime ] [from touchTime to ClockDs6.set_startTime ] -->
<TouchSensor DEF='Ds6description='Ds6'/>
<Sound> </Sound>
</Transform>
<!-- E6TRANS ROUTE:  [from E6Mover.value_changed to set_translation ] -->
<Transform DEF='E6TRANStranslation='4 0 0'>
<Shape USE='WhiteKey'/>
<!-- E6 ROUTEs:  [from touchTime to PitchE6.set_startTime ] [from touchTime to ClockE6.set_startTime ] -->
<TouchSensor DEF='E6description='E6'/>
<Sound> </Sound>
</Transform>
<!-- F6TRANS ROUTE:  [from F6Mover.value_changed to set_translation ] -->
<Transform DEF='F6TRANStranslation='4.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- F6 ROUTEs:  [from touchTime to PitchF6.set_startTime ] [from touchTime to ClockF6.set_startTime ] -->
<TouchSensor DEF='F6description='F6'/>
<Sound> </Sound>
</Transform>
<!-- Fs6TRANS ROUTE:  [from Fs6Mover.value_changed to set_translation ] -->
<Transform DEF='Fs6TRANStranslation='4.375 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Fs6 ROUTEs:  [from touchTime to PitchFs6.set_startTime ] [from touchTime to ClockFs6.set_startTime ] -->
<TouchSensor DEF='Fs6description='Fs6'/>
<Sound> </Sound>
</Transform>
<!-- G6TRANS ROUTE:  [from G6Mover.value_changed to set_translation ] -->
<Transform DEF='G6TRANStranslation='4.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- G6 ROUTEs:  [from touchTime to PitchG6.set_startTime ] [from touchTime to ClockG6.set_startTime ] -->
<TouchSensor DEF='G6description='G6'/>
<Sound> </Sound>
</Transform>
<!-- Gs6TRANS ROUTE:  [from Gs6Mover.value_changed to set_translation ] -->
<Transform DEF='Gs6TRANStranslation='4.625 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Gs6 ROUTEs:  [from touchTime to PitchGs6.set_startTime ] [from touchTime to ClockGs6.set_startTime ] -->
<TouchSensor DEF='Gs6description='Gs6'/>
<Sound> </Sound>
</Transform>
<!-- A7TRANS ROUTE:  [from A7Mover.value_changed to set_translation ] -->
<Transform DEF='A7TRANStranslation='4.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- A7 ROUTEs:  [from touchTime to PitchA7.set_startTime ] [from touchTime to ClockA7.set_startTime ] -->
<TouchSensor DEF='A7description='A7'/>
<Sound> </Sound>
</Transform>
<!-- As7TRANS ROUTE:  [from As7Mover.value_changed to set_translation ] -->
<Transform DEF='As7TRANStranslation='4.875 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- As7 ROUTEs:  [from touchTime to PitchAs7.set_startTime ] [from touchTime to ClockAs7.set_startTime ] -->
<TouchSensor DEF='As7description='As7'/>
<Sound> </Sound>
</Transform>
<!-- B7TRANS ROUTE:  [from B7Mover.value_changed to set_translation ] -->
<Transform DEF='B7TRANStranslation='5 0 0'>
<Shape USE='WhiteKey'/>
<!-- B7 ROUTEs:  [from touchTime to PitchB7.set_startTime ] [from touchTime to ClockB7.set_startTime ] -->
<TouchSensor DEF='B7description='B7'/>
<Sound> </Sound>
</Transform>
<!-- C7TRANS ROUTE:  [from C7Mover.value_changed to set_translation ] -->
<Transform DEF='C7TRANStranslation='5.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- C7 ROUTEs:  [from touchTime to PitchC7.set_startTime ] [from touchTime to ClockC7.set_startTime ] -->
<TouchSensor DEF='C7description='C7'/>
<Sound> </Sound>
</Transform>
<!-- Cs7TRANS ROUTE:  [from Cs7Mover.value_changed to set_translation ] -->
<Transform DEF='Cs7TRANStranslation='5.375 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Cs7 ROUTEs:  [from touchTime to PitchCs7.set_startTime ] [from touchTime to ClockCs7.set_startTime ] -->
<TouchSensor DEF='Cs7description='Cs7'/>
<Sound> </Sound>
</Transform>
<!-- D7TRANS ROUTE:  [from D7Mover.value_changed to set_translation ] -->
<Transform DEF='D7TRANStranslation='5.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- D7 ROUTEs:  [from touchTime to PitchD7.set_startTime ] [from touchTime to ClockD7.set_startTime ] -->
<TouchSensor DEF='D7description='D7'/>
<Sound> </Sound>
</Transform>
<!-- Ds7TRANS ROUTE:  [from Ds7Mover.value_changed to set_translation ] -->
<Transform DEF='Ds7TRANStranslation='5.625 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Ds7 ROUTEs:  [from touchTime to PitchDs7.set_startTime ] [from touchTime to ClockDs7.set_startTime ] -->
<TouchSensor DEF='Ds7description='Ds7'/>
<Sound> </Sound>
</Transform>
<!-- E7TRANS ROUTE:  [from E7Mover.value_changed to set_translation ] -->
<Transform DEF='E7TRANStranslation='5.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- E7 ROUTEs:  [from touchTime to PitchE7.set_startTime ] [from touchTime to ClockE7.set_startTime ] -->
<TouchSensor DEF='E7description='E7'/>
<Sound> </Sound>
</Transform>
<!-- F7TRANS ROUTE:  [from F7Mover.value_changed to set_translation ] -->
<Transform DEF='F7TRANStranslation='6 0 0'>
<Shape USE='WhiteKey'/>
<!-- F7 ROUTEs:  [from touchTime to PitchF7.set_startTime ] [from touchTime to ClockF7.set_startTime ] -->
<TouchSensor DEF='F7description='F7'/>
<Sound> </Sound>
</Transform>
<!-- Fs7TRANS ROUTE:  [from Fs7Mover.value_changed to set_translation ] -->
<Transform DEF='Fs7TRANStranslation='6.125 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Fs7 ROUTEs:  [from touchTime to PitchFs7.set_startTime ] [from touchTime to ClockFs7.set_startTime ] -->
<TouchSensor DEF='Fs7description='Fs7'/>
<Sound> </Sound>
</Transform>
<!-- G7TRANS ROUTE:  [from G7Mover.value_changed to set_translation ] -->
<Transform DEF='G7TRANStranslation='6.25 0 0'>
<Shape USE='WhiteKey'/>
<!-- G7 ROUTEs:  [from touchTime to PitchG7.set_startTime ] [from touchTime to ClockG7.set_startTime ] -->
<TouchSensor DEF='G7description='G7'/>
<Sound> </Sound>
</Transform>
<!-- Gs7TRANS ROUTE:  [from Gs7Mover.value_changed to set_translation ] -->
<Transform DEF='Gs7TRANStranslation='6.375 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- Gs7 ROUTEs:  [from touchTime to PitchGs7.set_startTime ] [from touchTime to ClockGs7.set_startTime ] -->
<TouchSensor DEF='Gs7description='Gs7'/>
<Sound> </Sound>
</Transform>
<!-- A8TRANS ROUTE:  [from A8Mover.value_changed to set_translation ] -->
<Transform DEF='A8TRANStranslation='6.5 0 0'>
<Shape USE='WhiteKey'/>
<!-- A8 ROUTEs:  [from touchTime to PitchA8.set_startTime ] [from touchTime to ClockA8.set_startTime ] -->
<TouchSensor DEF='A8description='A8'/>
<Sound> </Sound>
</Transform>
<!-- As8TRANS ROUTE:  [from As8Mover.value_changed to set_translation ] -->
<Transform DEF='As8TRANStranslation='6.625 .1 -.375'>
<Shape USE='BlackKey'/>
<!-- As8 ROUTEs:  [from touchTime to PitchAs8.set_startTime ] [from touchTime to ClockAs8.set_startTime ] -->
<TouchSensor DEF='As8description='As8'/>
<Sound> </Sound>
</Transform>
<!-- B8TRANS ROUTE:  [from B8Mover.value_changed to set_translation ] -->
<Transform DEF='B8TRANStranslation='6.75 0 0'>
<Shape USE='WhiteKey'/>
<!-- B8 ROUTEs:  [from touchTime to PitchB8.set_startTime ] [from touchTime to ClockB8.set_startTime ] -->
<TouchSensor DEF='B8description='B8'/>
<Sound> </Sound>
</Transform>
<!-- C8TRANS ROUTE:  [from C8Mover.value_changed to set_translation ] -->
<Transform DEF='C8TRANStranslation='7 0 0'>
<Shape USE='WhiteKey'/>
<!-- C8 ROUTEs:  [from touchTime to PitchC8.set_startTime ] [from touchTime to ClockC8.set_startTime ] -->
<TouchSensor DEF='C8description='C8'/>
<Sound> </Sound>
</Transform>
<Transform scale='.25 .25 .25translation='0 1 -2'>
<Shape>
<Sphere/>
<Appearance>
<Material diffuseColor='1 0 0'/>
</Appearance>
</Shape>
<!-- StartPlaying ROUTE:  [from touchTime to playPiano.play_Note ] -->
<TouchSensor DEF='StartPlayingdescription='Touch to Activate Player Piano Script'/>
</Transform>
<!-- ClockA0 ROUTEs:  [from A0.touchTime to set_startTime ] [from playPiano.playA0 to set_startTime ] [from fraction_changed to A0Mover.set_fraction ] -->
<TimeSensor DEF='ClockA0'/>
<!-- ClockAs0 ROUTEs:  [from As0.touchTime to set_startTime ] [from playPiano.playAs0 to set_startTime ] [from fraction_changed to As0Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs0'/>
<!-- ClockB0 ROUTEs:  [from B0.touchTime to set_startTime ] [from playPiano.playB0 to set_startTime ] [from fraction_changed to B0Mover.set_fraction ] -->
<TimeSensor DEF='ClockB0'/>
<!-- ClockC0 ROUTEs:  [from C0.touchTime to set_startTime ] [from playPiano.playC0 to set_startTime ] [from fraction_changed to C0Mover.set_fraction ] -->
<TimeSensor DEF='ClockC0'/>
<!-- ClockCs0 ROUTEs:  [from Cs0.touchTime to set_startTime ] [from playPiano.playCs0 to set_startTime ] [from fraction_changed to Cs0Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs0'/>
<!-- ClockD0 ROUTEs:  [from D0.touchTime to set_startTime ] [from playPiano.playD0 to set_startTime ] [from fraction_changed to D0Mover.set_fraction ] -->
<TimeSensor DEF='ClockD0'/>
<!-- ClockDs0 ROUTEs:  [from Ds0.touchTime to set_startTime ] [from playPiano.playDs0 to set_startTime ] [from fraction_changed to Ds0Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs0'/>
<!-- ClockE0 ROUTEs:  [from E0.touchTime to set_startTime ] [from playPiano.playE0 to set_startTime ] [from fraction_changed to E0Mover.set_fraction ] -->
<TimeSensor DEF='ClockE0'/>
<!-- ClockF0 ROUTEs:  [from F0.touchTime to set_startTime ] [from playPiano.playF0 to set_startTime ] [from fraction_changed to F0Mover.set_fraction ] -->
<TimeSensor DEF='ClockF0'/>
<!-- ClockFs0 ROUTEs:  [from Fs0.touchTime to set_startTime ] [from playPiano.playFs0 to set_startTime ] [from fraction_changed to Fs0Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs0'/>
<!-- ClockG0 ROUTEs:  [from G0.touchTime to set_startTime ] [from playPiano.playG0 to set_startTime ] [from fraction_changed to G0Mover.set_fraction ] -->
<TimeSensor DEF='ClockG0'/>
<!-- ClockGs0 ROUTEs:  [from Gs0.touchTime to set_startTime ] [from playPiano.playGs0 to set_startTime ] [from fraction_changed to Gs0Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs0'/>
<!-- ClockAs1 ROUTEs:  [from As1.touchTime to set_startTime ] [from playPiano.playAs1 to set_startTime ] [from fraction_changed to As1Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs1'/>
<!-- ClockB1 ROUTEs:  [from B1.touchTime to set_startTime ] [from playPiano.playB1 to set_startTime ] [from fraction_changed to B1Mover.set_fraction ] -->
<TimeSensor DEF='ClockB1'/>
<!-- ClockC1 ROUTEs:  [from C1.touchTime to set_startTime ] [from playPiano.playC1 to set_startTime ] [from fraction_changed to C1Mover.set_fraction ] -->
<TimeSensor DEF='ClockC1'/>
<!-- ClockCs1 ROUTEs:  [from Cs1.touchTime to set_startTime ] [from playPiano.playCs1 to set_startTime ] [from fraction_changed to Cs1Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs1'/>
<!-- ClockD1 ROUTEs:  [from D1.touchTime to set_startTime ] [from playPiano.playD1 to set_startTime ] [from fraction_changed to D1Mover.set_fraction ] -->
<TimeSensor DEF='ClockD1'/>
<!-- ClockDs1 ROUTEs:  [from Ds1.touchTime to set_startTime ] [from playPiano.playDs1 to set_startTime ] [from fraction_changed to Ds1Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs1'/>
<!-- ClockE1 ROUTEs:  [from E1.touchTime to set_startTime ] [from playPiano.playE1 to set_startTime ] [from fraction_changed to E1Mover.set_fraction ] -->
<TimeSensor DEF='ClockE1'/>
<!-- ClockF1 ROUTEs:  [from F1.touchTime to set_startTime ] [from playPiano.playF1 to set_startTime ] [from fraction_changed to F1Mover.set_fraction ] -->
<TimeSensor DEF='ClockF1'/>
<!-- ClockFs1 ROUTEs:  [from Fs1.touchTime to set_startTime ] [from playPiano.playFs1 to set_startTime ] [from fraction_changed to Fs1Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs1'/>
<!-- ClockG1 ROUTEs:  [from G1.touchTime to set_startTime ] [from playPiano.playG1 to set_startTime ] [from fraction_changed to G1Mover.set_fraction ] -->
<TimeSensor DEF='ClockG1'/>
<!-- ClockGs1 ROUTEs:  [from Gs1.touchTime to set_startTime ] [from playPiano.playGs1 to set_startTime ] [from fraction_changed to Gs1Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs1'/>
<!-- ClockA1 ROUTEs:  [from A1.touchTime to set_startTime ] [from playPiano.playA1 to set_startTime ] [from fraction_changed to A1Mover.set_fraction ] -->
<TimeSensor DEF='ClockA1'/>
<!-- ClockA2 ROUTEs:  [from A2.touchTime to set_startTime ] [from playPiano.playA2 to set_startTime ] [from fraction_changed to A2Mover.set_fraction ] -->
<TimeSensor DEF='ClockA2'/>
<!-- ClockAs2 ROUTEs:  [from As2.touchTime to set_startTime ] [from playPiano.playAs2 to set_startTime ] [from fraction_changed to As2Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs2'/>
<!-- ClockB2 ROUTEs:  [from B2.touchTime to set_startTime ] [from playPiano.playB2 to set_startTime ] [from fraction_changed to B2Mover.set_fraction ] -->
<TimeSensor DEF='ClockB2'/>
<!-- ClockC2 ROUTEs:  [from C2.touchTime to set_startTime ] [from playPiano.playC2 to set_startTime ] [from fraction_changed to C2Mover.set_fraction ] -->
<TimeSensor DEF='ClockC2'/>
<!-- ClockCs2 ROUTEs:  [from Cs2.touchTime to set_startTime ] [from playPiano.playCs2 to set_startTime ] [from fraction_changed to Cs2Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs2'/>
<!-- ClockD2 ROUTEs:  [from D2.touchTime to set_startTime ] [from playPiano.playD2 to set_startTime ] [from fraction_changed to D2Mover.set_fraction ] -->
<TimeSensor DEF='ClockD2'/>
<!-- ClockDs2 ROUTEs:  [from Ds2.touchTime to set_startTime ] [from playPiano.playDs2 to set_startTime ] [from fraction_changed to Ds2Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs2'/>
<!-- ClockE2 ROUTEs:  [from E2.touchTime to set_startTime ] [from playPiano.playE2 to set_startTime ] [from fraction_changed to E2Mover.set_fraction ] -->
<TimeSensor DEF='ClockE2'/>
<!-- ClockF2 ROUTEs:  [from F2.touchTime to set_startTime ] [from playPiano.playF2 to set_startTime ] [from fraction_changed to F2Mover.set_fraction ] -->
<TimeSensor DEF='ClockF2'/>
<!-- ClockFs2 ROUTEs:  [from Fs2.touchTime to set_startTime ] [from playPiano.playFs2 to set_startTime ] [from fraction_changed to Fs2Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs2'/>
<!-- ClockG2 ROUTEs:  [from G2.touchTime to set_startTime ] [from playPiano.playG2 to set_startTime ] [from fraction_changed to G2Mover.set_fraction ] -->
<TimeSensor DEF='ClockG2'/>
<!-- ClockGs2 ROUTEs:  [from Gs2.touchTime to set_startTime ] [from playPiano.playGs2 to set_startTime ] [from fraction_changed to Gs2Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs2'/>
<!-- ClockA3 ROUTEs:  [from A3.touchTime to set_startTime ] [from playPiano.playA3 to set_startTime ] [from fraction_changed to A3Mover.set_fraction ] -->
<TimeSensor DEF='ClockA3'/>
<!-- ClockAs3 ROUTEs:  [from As3.touchTime to set_startTime ] [from playPiano.playAs3 to set_startTime ] [from fraction_changed to As3Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs3'/>
<!-- ClockB3 ROUTEs:  [from B3.touchTime to set_startTime ] [from playPiano.playB3 to set_startTime ] [from fraction_changed to B3Mover.set_fraction ] -->
<TimeSensor DEF='ClockB3'/>
<!-- ClockC3 ROUTEs:  [from C3.touchTime to set_startTime ] [from playPiano.playC3 to set_startTime ] [from fraction_changed to C3Mover.set_fraction ] -->
<TimeSensor DEF='ClockC3'/>
<!-- ClockCs3 ROUTEs:  [from Cs3.touchTime to set_startTime ] [from playPiano.playCs3 to set_startTime ] [from fraction_changed to Cs3Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs3'/>
<!-- ClockD3 ROUTEs:  [from D3.touchTime to set_startTime ] [from playPiano.playD3 to set_startTime ] [from fraction_changed to D3Mover.set_fraction ] -->
<TimeSensor DEF='ClockD3'/>
<!-- ClockDs3 ROUTEs:  [from Ds3.touchTime to set_startTime ] [from playPiano.playDs3 to set_startTime ] [from fraction_changed to Ds3Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs3'/>
<!-- ClockE3 ROUTEs:  [from E3.touchTime to set_startTime ] [from playPiano.playE3 to set_startTime ] [from fraction_changed to E3Mover.set_fraction ] -->
<TimeSensor DEF='ClockE3'/>
<!-- ClockF3 ROUTEs:  [from F3.touchTime to set_startTime ] [from playPiano.playF3 to set_startTime ] [from fraction_changed to F3Mover.set_fraction ] -->
<TimeSensor DEF='ClockF3'/>
<!-- ClockFs3 ROUTEs:  [from Fs3.touchTime to set_startTime ] [from playPiano.playFs3 to set_startTime ] [from fraction_changed to Fs3Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs3'/>
<!-- ClockG3 ROUTEs:  [from G3.touchTime to set_startTime ] [from playPiano.playG3 to set_startTime ] [from fraction_changed to G3Mover.set_fraction ] -->
<TimeSensor DEF='ClockG3'/>
<!-- ClockGs3 ROUTEs:  [from Gs3.touchTime to set_startTime ] [from playPiano.playGs3 to set_startTime ] [from fraction_changed to Gs3Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs3'/>
<!-- ClockA4 ROUTEs:  [from A4.touchTime to set_startTime ] [from playPiano.playA4 to set_startTime ] [from fraction_changed to A4Mover.set_fraction ] -->
<TimeSensor DEF='ClockA4'/>
<!-- ClockAs4 ROUTEs:  [from As4.touchTime to set_startTime ] [from playPiano.playAs4 to set_startTime ] [from fraction_changed to As4Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs4'/>
<!-- ClockB4 ROUTEs:  [from B4.touchTime to set_startTime ] [from playPiano.playB4 to set_startTime ] [from fraction_changed to B4Mover.set_fraction ] -->
<TimeSensor DEF='ClockB4'/>
<!-- ClockC4 ROUTEs:  [from C4.touchTime to set_startTime ] [from playPiano.playC4 to set_startTime ] [from fraction_changed to C4Mover.set_fraction ] -->
<TimeSensor DEF='ClockC4'/>
<!-- ClockCs4 ROUTEs:  [from Cs4.touchTime to set_startTime ] [from playPiano.playCs4 to set_startTime ] [from fraction_changed to Cs4Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs4'/>
<!-- ClockD4 ROUTEs:  [from D4.touchTime to set_startTime ] [from playPiano.playD4 to set_startTime ] [from fraction_changed to D4Mover.set_fraction ] -->
<TimeSensor DEF='ClockD4'/>
<!-- ClockDs4 ROUTEs:  [from Ds4.touchTime to set_startTime ] [from playPiano.playDs4 to set_startTime ] [from fraction_changed to Ds4Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs4'/>
<!-- ClockE4 ROUTEs:  [from E4.touchTime to set_startTime ] [from playPiano.playE4 to set_startTime ] [from fraction_changed to E4Mover.set_fraction ] -->
<TimeSensor DEF='ClockE4'/>
<!-- ClockF4 ROUTEs:  [from F4.touchTime to set_startTime ] [from playPiano.playF4 to set_startTime ] [from fraction_changed to F4Mover.set_fraction ] -->
<TimeSensor DEF='ClockF4'/>
<!-- ClockFs4 ROUTEs:  [from Fs4.touchTime to set_startTime ] [from playPiano.playFs4 to set_startTime ] [from fraction_changed to Fs4Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs4'/>
<!-- ClockG4 ROUTEs:  [from G4.touchTime to set_startTime ] [from playPiano.playG4 to set_startTime ] [from fraction_changed to G4Mover.set_fraction ] -->
<TimeSensor DEF='ClockG4'/>
<!-- ClockGs4 ROUTEs:  [from Gs4.touchTime to set_startTime ] [from playPiano.playGs4 to set_startTime ] [from fraction_changed to Gs4Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs4'/>
<!-- ClockA5 ROUTEs:  [from A5.touchTime to set_startTime ] [from fraction_changed to A5Mover.set_fraction ] -->
<TimeSensor DEF='ClockA5'/>
<!-- ClockAs5 ROUTEs:  [from As5.touchTime to set_startTime ] [from fraction_changed to As5Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs5'/>
<!-- ClockB5 ROUTEs:  [from B5.touchTime to set_startTime ] [from playPiano.playB5 to set_startTime ] [from fraction_changed to B5Mover.set_fraction ] -->
<TimeSensor DEF='ClockB5'/>
<!-- ClockC5 ROUTEs:  [from C5.touchTime to set_startTime ] [from playPiano.playC5 to set_startTime ] [from fraction_changed to C5Mover.set_fraction ] -->
<TimeSensor DEF='ClockC5'/>
<!-- ClockCs5 ROUTEs:  [from Cs5.touchTime to set_startTime ] [from playPiano.playCs5 to set_startTime ] [from fraction_changed to Cs5Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs5'/>
<!-- ClockD5 ROUTEs:  [from D5.touchTime to set_startTime ] [from playPiano.playD5 to set_startTime ] [from fraction_changed to D5Mover.set_fraction ] -->
<TimeSensor DEF='ClockD5'/>
<!-- ClockDs5 ROUTEs:  [from Ds5.touchTime to set_startTime ] [from playPiano.playDs5 to set_startTime ] [from fraction_changed to Ds5Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs5'/>
<!-- ClockE5 ROUTEs:  [from E5.touchTime to set_startTime ] [from playPiano.playE5 to set_startTime ] [from fraction_changed to E5Mover.set_fraction ] -->
<TimeSensor DEF='ClockE5'/>
<!-- ClockF5 ROUTEs:  [from F5.touchTime to set_startTime ] [from playPiano.playF5 to set_startTime ] [from fraction_changed to F5Mover.set_fraction ] -->
<TimeSensor DEF='ClockF5'/>
<!-- ClockFs5 ROUTEs:  [from Fs5.touchTime to set_startTime ] [from playPiano.playFs5 to set_startTime ] [from fraction_changed to Fs5Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs5'/>
<!-- ClockG5 ROUTEs:  [from G5.touchTime to set_startTime ] [from playPiano.playG5 to set_startTime ] [from fraction_changed to G5Mover.set_fraction ] -->
<TimeSensor DEF='ClockG5'/>
<!-- ClockGs5 ROUTEs:  [from Gs5.touchTime to set_startTime ] [from playPiano.playGs5 to set_startTime ] [from fraction_changed to Gs5Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs5'/>
<!-- ClockA6 ROUTEs:  [from A6.touchTime to set_startTime ] [from playPiano.playA6 to set_startTime ] [from fraction_changed to A6Mover.set_fraction ] -->
<TimeSensor DEF='ClockA6'/>
<!-- ClockAs6 ROUTEs:  [from As6.touchTime to set_startTime ] [from playPiano.playAs6 to set_startTime ] [from fraction_changed to As6Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs6'/>
<!-- ClockB6 ROUTEs:  [from B6.touchTime to set_startTime ] [from playPiano.playB6 to set_startTime ] [from fraction_changed to B6Mover.set_fraction ] -->
<TimeSensor DEF='ClockB6'/>
<!-- ClockC6 ROUTEs:  [from C6.touchTime to set_startTime ] [from playPiano.playC6 to set_startTime ] [from fraction_changed to C6Mover.set_fraction ] -->
<TimeSensor DEF='ClockC6'/>
<!-- ClockCs6 ROUTEs:  [from Cs6.touchTime to set_startTime ] [from playPiano.playCs6 to set_startTime ] [from fraction_changed to Cs6Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs6'/>
<!-- ClockD6 ROUTEs:  [from D6.touchTime to set_startTime ] [from playPiano.playD6 to set_startTime ] [from fraction_changed to D6Mover.set_fraction ] -->
<TimeSensor DEF='ClockD6'/>
<!-- ClockDs6 ROUTEs:  [from Ds6.touchTime to set_startTime ] [from playPiano.playDs6 to set_startTime ] [from fraction_changed to Ds6Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs6'/>
<!-- ClockE6 ROUTEs:  [from E6.touchTime to set_startTime ] [from playPiano.playE6 to set_startTime ] [from fraction_changed to E6Mover.set_fraction ] -->
<TimeSensor DEF='ClockE6'/>
<!-- ClockF6 ROUTEs:  [from F6.touchTime to set_startTime ] [from playPiano.playF6 to set_startTime ] [from fraction_changed to F6Mover.set_fraction ] -->
<TimeSensor DEF='ClockF6'/>
<!-- ClockFs6 ROUTEs:  [from Fs6.touchTime to set_startTime ] [from playPiano.playFs6 to set_startTime ] [from fraction_changed to Fs6Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs6'/>
<!-- ClockG6 ROUTEs:  [from G6.touchTime to set_startTime ] [from playPiano.playG6 to set_startTime ] [from fraction_changed to G6Mover.set_fraction ] -->
<TimeSensor DEF='ClockG6'/>
<!-- ClockGs6 ROUTEs:  [from Gs6.touchTime to set_startTime ] [from playPiano.playGs6 to set_startTime ] [from fraction_changed to Gs6Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs6'/>
<!-- ClockA7 ROUTEs:  [from A7.touchTime to set_startTime ] [from playPiano.playA7 to set_startTime ] [from fraction_changed to A7Mover.set_fraction ] -->
<TimeSensor DEF='ClockA7'/>
<!-- ClockAs7 ROUTEs:  [from As7.touchTime to set_startTime ] [from playPiano.playAs7 to set_startTime ] [from fraction_changed to As7Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs7'/>
<!-- ClockB7 ROUTEs:  [from B7.touchTime to set_startTime ] [from playPiano.playB7 to set_startTime ] [from fraction_changed to B7Mover.set_fraction ] -->
<TimeSensor DEF='ClockB7'/>
<!-- ClockC7 ROUTEs:  [from C7.touchTime to set_startTime ] [from playPiano.playC7 to set_startTime ] [from fraction_changed to C7Mover.set_fraction ] -->
<TimeSensor DEF='ClockC7'/>
<!-- ClockCs7 ROUTEs:  [from Cs7.touchTime to set_startTime ] [from playPiano.playCs7 to set_startTime ] [from fraction_changed to Cs7Mover.set_fraction ] -->
<TimeSensor DEF='ClockCs7'/>
<!-- ClockD7 ROUTEs:  [from D7.touchTime to set_startTime ] [from playPiano.playD7 to set_startTime ] [from fraction_changed to D7Mover.set_fraction ] -->
<TimeSensor DEF='ClockD7'/>
<!-- ClockDs7 ROUTEs:  [from Ds7.touchTime to set_startTime ] [from playPiano.playDs7 to set_startTime ] [from fraction_changed to Ds7Mover.set_fraction ] -->
<TimeSensor DEF='ClockDs7'/>
<!-- ClockE7 ROUTEs:  [from E7.touchTime to set_startTime ] [from playPiano.playE7 to set_startTime ] [from fraction_changed to E7Mover.set_fraction ] -->
<TimeSensor DEF='ClockE7'/>
<!-- ClockF7 ROUTEs:  [from F7.touchTime to set_startTime ] [from playPiano.playF7 to set_startTime ] [from fraction_changed to F7Mover.set_fraction ] -->
<TimeSensor DEF='ClockF7'/>
<!-- ClockFs7 ROUTEs:  [from Fs7.touchTime to set_startTime ] [from playPiano.playFs7 to set_startTime ] [from fraction_changed to Fs7Mover.set_fraction ] -->
<TimeSensor DEF='ClockFs7'/>
<!-- ClockG7 ROUTEs:  [from G7.touchTime to set_startTime ] [from playPiano.playG7 to set_startTime ] [from fraction_changed to G7Mover.set_fraction ] -->
<TimeSensor DEF='ClockG7'/>
<!-- ClockGs7 ROUTEs:  [from Gs7.touchTime to set_startTime ] [from playPiano.playGs7 to set_startTime ] [from fraction_changed to Gs7Mover.set_fraction ] -->
<TimeSensor DEF='ClockGs7'/>
<!-- ClockA8 ROUTEs:  [from A8.touchTime to set_startTime ] [from playPiano.playA8 to set_startTime ] [from fraction_changed to A8Mover.set_fraction ] -->
<TimeSensor DEF='ClockA8'/>
<!-- ClockAs8 ROUTEs:  [from As8.touchTime to set_startTime ] [from playPiano.playAs8 to set_startTime ] [from fraction_changed to As8Mover.set_fraction ] -->
<TimeSensor DEF='ClockAs8'/>
<!-- ClockB8 ROUTEs:  [from B8.touchTime to set_startTime ] [from playPiano.playB8 to set_startTime ] [from fraction_changed to B8Mover.set_fraction ] -->
<TimeSensor DEF='ClockB8'/>
<!-- ClockC8 ROUTEs:  [from C8.touchTime to set_startTime ] [from playPiano.playC8 to set_startTime ] [from fraction_changed to C8Mover.set_fraction ] -->
<TimeSensor DEF='ClockC8'/>
<!-- A0Mover ROUTEs:  [from ClockA0.fraction_changed to set_fraction ] [from value_changed to A0TRANS.set_translation ] -->
<PositionInterpolator DEF='A0Moverkey='0.0 .99keyValue='-7.5 -.03 0 -7.5 0 0'/>
<!-- As0Mover ROUTEs:  [from ClockAs0.fraction_changed to set_fraction ] [from value_changed to As0TRANS.set_translation ] -->
<PositionInterpolator DEF='As0Moverkey='0 .99keyValue='-7.375 0 -.375 -7.375 0.1 -0.375'/>
<!-- B0Mover ROUTEs:  [from ClockB0.fraction_changed to set_fraction ] [from value_changed to B0TRANS.set_translation ] -->
<PositionInterpolator DEF='B0Moverkey='0.0 .99keyValue='-7.25 -.03 0 -7.25 0 0'/>
<!-- C0Mover ROUTEs:  [from ClockC0.fraction_changed to set_fraction ] [from value_changed to C0TRANS.set_translation ] -->
<PositionInterpolator DEF='C0Moverkey='0.0 .99keyValue='-7 -.03 0 -7 0 0'/>
<!-- Cs0Mover ROUTEs:  [from ClockCs0.fraction_changed to set_fraction ] [from value_changed to Cs0TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs0Moverkey='0 .99keyValue='-6.875 0 -.375 -6.875 0.1 -0.375'/>
<!-- D0Mover ROUTEs:  [from ClockD0.fraction_changed to set_fraction ] [from value_changed to D0TRANS.set_translation ] -->
<PositionInterpolator DEF='D0Moverkey='0.0 .99keyValue='-6.75 -.03 0 -6.75 0 0'/>
<!-- Ds0Mover ROUTEs:  [from ClockDs0.fraction_changed to set_fraction ] [from value_changed to Ds0TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds0Moverkey='0 .99keyValue='-6.625 0 -.375 -6.625 0.1 -0.375'/>
<!-- E0Mover ROUTEs:  [from ClockE0.fraction_changed to set_fraction ] [from value_changed to E0TRANS.set_translation ] -->
<PositionInterpolator DEF='E0Moverkey='0.0 .99keyValue='-6.5 -.03 0 -6.5 0 0'/>
<!-- F0Mover ROUTEs:  [from ClockF0.fraction_changed to set_fraction ] [from value_changed to F0TRANS.set_translation ] -->
<PositionInterpolator DEF='F0Moverkey='0 .99keyValue='-6.25 -.03 0 -6.25 0 0'/>
<!-- Fs0Mover ROUTEs:  [from ClockFs0.fraction_changed to set_fraction ] [from value_changed to Fs0TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs0Moverkey='0.0 .99keyValue='-6.125 0 -.375 -6.125 0.1 -.375'/>
<!-- G0Mover ROUTEs:  [from ClockG0.fraction_changed to set_fraction ] [from value_changed to G0TRANS.set_translation ] -->
<PositionInterpolator DEF='G0Moverkey='0 .99keyValue='-6 -.03 0 -6 0 0'/>
<!-- Gs0Mover ROUTEs:  [from ClockGs0.fraction_changed to set_fraction ] [from value_changed to Gs0TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs0Moverkey='0.0 .99keyValue='-5.875 0 -.375 -5.875 .1 -.375'/>
<!-- A1Mover ROUTEs:  [from ClockA1.fraction_changed to set_fraction ] [from value_changed to A1TRANS.set_translation ] -->
<PositionInterpolator DEF='A1Moverkey='0.0 .99keyValue='-5.75 -.03 0 -5.75 0 0'/>
<!-- As1Mover ROUTEs:  [from ClockAs1.fraction_changed to set_fraction ] [from value_changed to As1TRANS.set_translation ] -->
<PositionInterpolator DEF='As1Moverkey='0 .99keyValue='-5.65 0 -.375 -5.625 0.1 -0.375'/>
<!-- B1Mover ROUTEs:  [from ClockB1.fraction_changed to set_fraction ] [from value_changed to B1TRANS.set_translation ] -->
<PositionInterpolator DEF='B1Moverkey='0.0 .99keyValue='-5.5 -.03 0 -5.5 0 0'/>
<!-- C1Mover ROUTEs:  [from ClockC1.fraction_changed to set_fraction ] [from value_changed to C1TRANS.set_translation ] -->
<PositionInterpolator DEF='C1Moverkey='0.0 .99keyValue='-5.25 -.03 0 -5.25 0 0'/>
<!-- Cs1Mover ROUTEs:  [from ClockCs1.fraction_changed to set_fraction ] [from value_changed to Cs1TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs1Moverkey='0 .99keyValue='-5.125 0 -.375 -5.125 0.1 -0.375'/>
<!-- D1Mover ROUTEs:  [from ClockD1.fraction_changed to set_fraction ] [from value_changed to D1TRANS.set_translation ] -->
<PositionInterpolator DEF='D1Moverkey='0.0 .99keyValue='-5 -.03 0 -5 0 0'/>
<!-- Ds1Mover ROUTEs:  [from ClockDs1.fraction_changed to set_fraction ] [from value_changed to Ds1TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds1Moverkey='0 .99keyValue='-4.875 0 -.375 -4.875 0.1 -0.375'/>
<!-- E1Mover ROUTEs:  [from ClockE1.fraction_changed to set_fraction ] [from value_changed to E1TRANS.set_translation ] -->
<PositionInterpolator DEF='E1Moverkey='0.0 .99keyValue='-4.75 -.03 0 -4.75 0 0'/>
<!-- F1Mover ROUTEs:  [from ClockF1.fraction_changed to set_fraction ] [from value_changed to F1TRANS.set_translation ] -->
<PositionInterpolator DEF='F1Moverkey='0 .99keyValue='-4.5 -.03 0 -4.5 0 0'/>
<!-- Fs1Mover ROUTEs:  [from ClockFs1.fraction_changed to set_fraction ] [from value_changed to Fs1TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs1Moverkey='0.0 .99keyValue='-4.375 0 -.375 -4.375 0.1 -.375'/>
<!-- G1Mover ROUTEs:  [from ClockG1.fraction_changed to set_fraction ] [from value_changed to G1TRANS.set_translation ] -->
<PositionInterpolator DEF='G1Moverkey='0 .99keyValue='-4.25 -.03 0 -4.25 0 0'/>
<!-- Gs1Mover ROUTEs:  [from ClockGs1.fraction_changed to set_fraction ] [from value_changed to Gs1TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs1Moverkey='0.0 .99keyValue='-4.125 0 -.375 -4.125 .1 -.375'/>
<!-- A2Mover ROUTEs:  [from ClockA2.fraction_changed to set_fraction ] [from value_changed to A2TRANS.set_translation ] -->
<PositionInterpolator DEF='A2Moverkey='0 .99keyValue='-4 -.03 0 -4 0 0'/>
<!-- As2Mover ROUTEs:  [from ClockAs2.fraction_changed to set_fraction ] [from value_changed to As2TRANS.set_translation ] -->
<PositionInterpolator DEF='As2Moverkey='0.0 .99keyValue='-3.875 0 -.3750 -3.875 .1 -.375'/>
<!-- B2Mover ROUTEs:  [from ClockB2.fraction_changed to set_fraction ] [from value_changed to B2TRANS.set_translation ] -->
<PositionInterpolator DEF='B2Moverkey='0 .99keyValue='-3.75 -.03 0 -3.75 0 0'/>
<!-- C2Mover ROUTEs:  [from ClockC2.fraction_changed to set_fraction ] [from value_changed to C2TRANS.set_translation ] -->
<PositionInterpolator DEF='C2Moverkey='0 .99keyValue='-3.5 -.03 0 -3.5 0 0'/>
<!-- Cs2Mover ROUTEs:  [from ClockCs2.fraction_changed to set_fraction ] [from value_changed to Cs2TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs2Moverkey='0 .99keyValue='-3.375 0 -.375 -3.375 0.1 -0.375'/>
<!-- D2Mover ROUTEs:  [from ClockD2.fraction_changed to set_fraction ] [from value_changed to D2TRANS.set_translation ] -->
<PositionInterpolator DEF='D2Moverkey='0.0 .99keyValue='-3.25 -.03 0 -3.25 0 0'/>
<!-- Ds2Mover ROUTEs:  [from ClockDs2.fraction_changed to set_fraction ] [from value_changed to Ds2TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds2Moverkey='0 .99keyValue='-3.125 0 -.375 -3.125 0.1 -0.375'/>
<!-- E2Mover ROUTEs:  [from ClockE2.fraction_changed to set_fraction ] [from value_changed to E2TRANS.set_translation ] -->
<PositionInterpolator DEF='E2Moverkey='0.0 .99keyValue='-3 -.03 0 -3 0 0'/>
<!-- F2Mover ROUTEs:  [from ClockF2.fraction_changed to set_fraction ] [from value_changed to F2TRANS.set_translation ] -->
<PositionInterpolator DEF='F2Moverkey='0 .99keyValue='-2.75 -.03 0 -2.75 0 0'/>
<!-- Fs2Mover ROUTEs:  [from ClockFs2.fraction_changed to set_fraction ] [from value_changed to Fs2TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs2Moverkey='0.0 .99keyValue='-2.625 0 -.375 -2.625 0.1 -.375'/>
<!-- G2Mover ROUTEs:  [from ClockG2.fraction_changed to set_fraction ] [from value_changed to G2TRANS.set_translation ] -->
<PositionInterpolator DEF='G2Moverkey='0 .99keyValue='-2.5 -.03 0 -2.5 0 0'/>
<!-- Gs2Mover ROUTEs:  [from ClockGs2.fraction_changed to set_fraction ] [from value_changed to Gs2TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs2Moverkey='0.0 .99keyValue='-2.375 0 -.375 -2.375 .1 -.375'/>
<!-- A3Mover ROUTEs:  [from ClockA3.fraction_changed to set_fraction ] [from value_changed to A3TRANS.set_translation ] -->
<PositionInterpolator DEF='A3Moverkey='0 .99keyValue='-2.25 -.03 0 -2.25 0 0'/>
<!-- As3Mover ROUTEs:  [from ClockAs3.fraction_changed to set_fraction ] [from value_changed to As3TRANS.set_translation ] -->
<PositionInterpolator DEF='As3Moverkey='0.0 .99keyValue='-2.125 0 -.3750 -2.125 .1 -.375'/>
<!-- B3Mover ROUTEs:  [from ClockB3.fraction_changed to set_fraction ] [from value_changed to B3TRANS.set_translation ] -->
<PositionInterpolator DEF='B3Moverkey='0 .99keyValue='-2 -.03 0 -2 0 0'/>
<!-- C3Mover ROUTEs:  [from ClockC3.fraction_changed to set_fraction ] [from value_changed to C3TRANS.set_translation ] -->
<PositionInterpolator DEF='C3Moverkey='0 .99keyValue='-1.75 -.03 0 -1.75 0 0'/>
<!-- Cs3Mover ROUTEs:  [from ClockCs3.fraction_changed to set_fraction ] [from value_changed to Cs3TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs3Moverkey='0 .99keyValue='-1.625 0 -.375 -1.625 0.1 -0.375'/>
<!-- D3Mover ROUTEs:  [from ClockD3.fraction_changed to set_fraction ] [from value_changed to D3TRANS.set_translation ] -->
<PositionInterpolator DEF='D3Moverkey='0.0 .99keyValue='-1.5 -.03 0 -1.5 0 0'/>
<!-- Ds3Mover ROUTEs:  [from ClockDs3.fraction_changed to set_fraction ] [from value_changed to Ds3TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds3Moverkey='0 .99keyValue='-1.375 0 -.375 -1.375 0.1 -0.375'/>
<!-- E3Mover ROUTEs:  [from ClockE3.fraction_changed to set_fraction ] [from value_changed to E3TRANS.set_translation ] -->
<PositionInterpolator DEF='E3Moverkey='0.0 .99keyValue='-1.25 -.03 0 -1.25 0 0'/>
<!-- F3Mover ROUTEs:  [from ClockF3.fraction_changed to set_fraction ] [from value_changed to F3TRANS.set_translation ] -->
<PositionInterpolator DEF='F3Moverkey='0 .99keyValue='-1 -.03 0 -1 0 0'/>
<!-- Fs3Mover ROUTEs:  [from ClockFs3.fraction_changed to set_fraction ] [from value_changed to Fs3TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs3Moverkey='0.0 .99keyValue='-.875 0 -.375 -.875 0.1 -.375'/>
<!-- G3Mover ROUTEs:  [from ClockG3.fraction_changed to set_fraction ] [from value_changed to G3TRANS.set_translation ] -->
<PositionInterpolator DEF='G3Moverkey='0 .99keyValue='-.75 -.03 0 -.75 0 0'/>
<!-- Gs3Mover ROUTEs:  [from ClockGs3.fraction_changed to set_fraction ] [from value_changed to Gs3TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs3Moverkey='0.0 .99keyValue='-.625 0 -.375 -.625 .1 -.375'/>
<!-- A4Mover ROUTEs:  [from ClockA4.fraction_changed to set_fraction ] [from value_changed to A4TRANS.set_translation ] -->
<PositionInterpolator DEF='A4Moverkey='0 .99keyValue='-.5 -.03 0 -.5 0 0'/>
<!-- As4Mover ROUTEs:  [from ClockAs4.fraction_changed to set_fraction ] [from value_changed to As4TRANS.set_translation ] -->
<PositionInterpolator DEF='As4Moverkey='0.0 .99keyValue='-.375 0 -.3750 -.375 .1 -.375'/>
<!-- B4Mover ROUTEs:  [from ClockB4.fraction_changed to set_fraction ] [from value_changed to B4TRANS.set_translation ] -->
<PositionInterpolator DEF='B4Moverkey='0 .99keyValue='-.25 -.03 0 -.25 0 0'/>
<!-- C4Mover ROUTEs:  [from ClockC4.fraction_changed to set_fraction ] [from value_changed to C4TRANS.set_translation ] -->
<PositionInterpolator DEF='C4Moverkey='0.0 .99keyValue='0 -.03 0 0 0 0'/>
<!-- Cs4Mover ROUTEs:  [from ClockCs4.fraction_changed to set_fraction ] [from value_changed to Cs4TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs4Moverkey='0 .99keyValue='.125 0 -.375 0.125 0.1 -0.375'/>
<!-- D4Mover ROUTEs:  [from ClockD4.fraction_changed to set_fraction ] [from value_changed to D4TRANS.set_translation ] -->
<PositionInterpolator DEF='D4Moverkey='0.0 .99keyValue='0.25 -.03 0 0.25 0 0'/>
<!-- Ds4Mover ROUTEs:  [from ClockDs4.fraction_changed to set_fraction ] [from value_changed to Ds4TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds4Moverkey='0 .99keyValue='.375 0 -.375 0.375 0.1 -0.375'/>
<!-- E4Mover ROUTEs:  [from ClockE4.fraction_changed to set_fraction ] [from value_changed to E4TRANS.set_translation ] -->
<PositionInterpolator DEF='E4Moverkey='0.0 .99keyValue='0.5 -.03 0 0.5 0 0'/>
<!-- F4Mover ROUTEs:  [from ClockF4.fraction_changed to set_fraction ] [from value_changed to F4TRANS.set_translation ] -->
<PositionInterpolator DEF='F4Moverkey='0 .99keyValue='.75 -.03 0 .75 0 0'/>
<!-- Fs4Mover ROUTEs:  [from ClockFs4.fraction_changed to set_fraction ] [from value_changed to Fs4TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs4Moverkey='0.0 .99keyValue='0.875 0 -.375 .875 0.1 -.375'/>
<!-- G4Mover ROUTEs:  [from ClockG4.fraction_changed to set_fraction ] [from value_changed to G4TRANS.set_translation ] -->
<PositionInterpolator DEF='G4Moverkey='0 .99keyValue='1 -.03 0 1 0 0'/>
<!-- Gs4Mover ROUTEs:  [from ClockGs4.fraction_changed to set_fraction ] [from value_changed to Gs4TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs4Moverkey='0.0 .99keyValue='1.125 0 -.375 1.125 .1 -.375'/>
<!-- A5Mover ROUTEs:  [from ClockA5.fraction_changed to set_fraction ] [from value_changed to A5TRANS.set_translation ] -->
<PositionInterpolator DEF='A5Moverkey='0 .99keyValue='1.25 -.03 0 1.25 0 0'/>
<!-- As5Mover ROUTEs:  [from ClockAs5.fraction_changed to set_fraction ] [from value_changed to As5TRANS.set_translation ] -->
<PositionInterpolator DEF='As5Moverkey='0.0 .99keyValue='1.375 0 -.3750 1.375 .1 -.375'/>
<!-- B5Mover ROUTEs:  [from ClockB5.fraction_changed to set_fraction ] [from value_changed to B5TRANS.set_translation ] -->
<PositionInterpolator DEF='B5Moverkey='0 .99keyValue='1.5 -.03 0 1.5 0 0'/>
<!-- C5Mover ROUTEs:  [from ClockC5.fraction_changed to set_fraction ] [from value_changed to C5TRANS.set_translation ] -->
<PositionInterpolator DEF='C5Moverkey='0 .99keyValue='1.75 -.03 0 1.75 0 0'/>
<!-- Cs5Mover ROUTEs:  [from ClockCs5.fraction_changed to set_fraction ] [from value_changed to Cs5TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs5Moverkey='0 .99keyValue='1.875 0 -.375 1.875 0.1 -0.375'/>
<!-- D5Mover ROUTEs:  [from ClockD5.fraction_changed to set_fraction ] [from value_changed to D5TRANS.set_translation ] -->
<PositionInterpolator DEF='D5Moverkey='0.0 .99keyValue='2 -.03 0 2 0 0'/>
<!-- Ds5Mover ROUTEs:  [from ClockDs5.fraction_changed to set_fraction ] [from value_changed to Ds5TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds5Moverkey='0 .99keyValue='2.125 0 -.375 2.125 0.1 -0.375'/>
<!-- E5Mover ROUTEs:  [from ClockE5.fraction_changed to set_fraction ] [from value_changed to E5TRANS.set_translation ] -->
<PositionInterpolator DEF='E5Moverkey='0.0 .99keyValue='2.25 -.03 0 2.25 0 0'/>
<!-- F5Mover ROUTEs:  [from ClockF5.fraction_changed to set_fraction ] [from value_changed to F5TRANS.set_translation ] -->
<PositionInterpolator DEF='F5Moverkey='0 .99keyValue='2.5 -.03 0 2.5 0 0'/>
<!-- Fs5Mover ROUTEs:  [from ClockFs5.fraction_changed to set_fraction ] [from value_changed to Fs5TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs5Moverkey='0.0 .99keyValue='2.625 0 -.375 2.625 0.1 -.375'/>
<!-- G5Mover ROUTEs:  [from ClockG5.fraction_changed to set_fraction ] [from value_changed to G5TRANS.set_translation ] -->
<PositionInterpolator DEF='G5Moverkey='0 .99keyValue='2.75 -.03 0 2.75 0 0'/>
<!-- Gs5Mover ROUTEs:  [from ClockGs5.fraction_changed to set_fraction ] [from value_changed to Gs5TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs5Moverkey='0.0 .99keyValue='2.875 0 -.375 2.875 .1 -.375'/>
<!-- A6Mover ROUTEs:  [from ClockA6.fraction_changed to set_fraction ] [from value_changed to A6TRANS.set_translation ] -->
<PositionInterpolator DEF='A6Moverkey='0 .99keyValue='3 -.03 0 3 0 0'/>
<!-- As6Mover ROUTEs:  [from ClockAs6.fraction_changed to set_fraction ] [from value_changed to As6TRANS.set_translation ] -->
<PositionInterpolator DEF='As6Moverkey='0.0 .99keyValue='3.125 0 -.3750 3.125 .1 -.375'/>
<!-- B6Mover ROUTEs:  [from ClockB6.fraction_changed to set_fraction ] [from value_changed to B6TRANS.set_translation ] -->
<PositionInterpolator DEF='B6Moverkey='0 .99keyValue='3.25 -.03 0 3.25 0 0'/>
<!-- C6Mover ROUTEs:  [from ClockC6.fraction_changed to set_fraction ] [from value_changed to C6TRANS.set_translation ] -->
<PositionInterpolator DEF='C6Moverkey='0 .99keyValue='3.5 -.03 0 3.5 0 0'/>
<!-- Cs6Mover ROUTEs:  [from ClockCs6.fraction_changed to set_fraction ] [from value_changed to Cs6TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs6Moverkey='0 .99keyValue='3.625 0 -.375 3.625 0.1 -0.375'/>
<!-- D6Mover ROUTEs:  [from ClockD6.fraction_changed to set_fraction ] [from value_changed to D6TRANS.set_translation ] -->
<PositionInterpolator DEF='D6Moverkey='0.0 .99keyValue='3.75 -.03 0 3.75 0 0'/>
<!-- Ds6Mover ROUTEs:  [from ClockDs6.fraction_changed to set_fraction ] [from value_changed to Ds6TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds6Moverkey='0 .99keyValue='3.875 0 -.375 3.875 0.1 -0.375'/>
<!-- E6Mover ROUTEs:  [from ClockE6.fraction_changed to set_fraction ] [from value_changed to E6TRANS.set_translation ] -->
<PositionInterpolator DEF='E6Moverkey='0.0 .99keyValue='4 -.03 0 4 0 0'/>
<!-- F6Mover ROUTEs:  [from ClockF6.fraction_changed to set_fraction ] [from value_changed to F6TRANS.set_translation ] -->
<PositionInterpolator DEF='F6Moverkey='0 .99keyValue='4.25 -.03 0 4.25 0 0'/>
<!-- Fs6Mover ROUTEs:  [from ClockFs6.fraction_changed to set_fraction ] [from value_changed to Fs6TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs6Moverkey='0.0 .99keyValue='4.375 0 -.375 4.375 0.1 -.375'/>
<!-- G6Mover ROUTEs:  [from ClockG6.fraction_changed to set_fraction ] [from value_changed to G6TRANS.set_translation ] -->
<PositionInterpolator DEF='G6Moverkey='0 .99keyValue='4.5 -.03 0 4.5 0 0'/>
<!-- Gs6Mover ROUTEs:  [from ClockGs6.fraction_changed to set_fraction ] [from value_changed to Gs6TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs6Moverkey='0.0 .99keyValue='4.625 0 -.375 4.625 .1 -.375'/>
<!-- A7Mover ROUTEs:  [from ClockA7.fraction_changed to set_fraction ] [from value_changed to A7TRANS.set_translation ] -->
<PositionInterpolator DEF='A7Moverkey='0 .99keyValue='4.75 -.03 0 4.75 0 0'/>
<!-- As7Mover ROUTEs:  [from ClockAs7.fraction_changed to set_fraction ] [from value_changed to As7TRANS.set_translation ] -->
<PositionInterpolator DEF='As7Moverkey='0.0 .99keyValue='4.875 0 -.3750 4.875 .1 -.375'/>
<!-- B7Mover ROUTEs:  [from ClockB7.fraction_changed to set_fraction ] [from value_changed to B7TRANS.set_translation ] -->
<PositionInterpolator DEF='B7Moverkey='0 .99keyValue='5 -.03 0 5 0 0'/>
<!-- C7Mover ROUTEs:  [from ClockC7.fraction_changed to set_fraction ] [from value_changed to C7TRANS.set_translation ] -->
<PositionInterpolator DEF='C7Moverkey='0 .99keyValue='5.25 -.03 0 5.25 0 0'/>
<!-- Cs7Mover ROUTEs:  [from ClockCs7.fraction_changed to set_fraction ] [from value_changed to Cs7TRANS.set_translation ] -->
<PositionInterpolator DEF='Cs7Moverkey='0 .99keyValue='5.375 0 -.375 5.375 0.1 -0.375'/>
<!-- D7Mover ROUTEs:  [from ClockD7.fraction_changed to set_fraction ] [from value_changed to D7TRANS.set_translation ] -->
<PositionInterpolator DEF='D7Moverkey='0.0 .99keyValue='5.5 -.03 0 5.5 0 0'/>
<!-- Ds7Mover ROUTEs:  [from ClockDs7.fraction_changed to set_fraction ] [from value_changed to Ds7TRANS.set_translation ] -->
<PositionInterpolator DEF='Ds7Moverkey='0 .99keyValue='5.625 0 -.375 5.625 0.1 -0.375'/>
<!-- E7Mover ROUTEs:  [from ClockE7.fraction_changed to set_fraction ] [from value_changed to E7TRANS.set_translation ] -->
<PositionInterpolator DEF='E7Moverkey='0.0 .99keyValue='5.75 -.03 0 5.75 0 0'/>
<!-- F7Mover ROUTEs:  [from ClockF7.fraction_changed to set_fraction ] [from value_changed to F7TRANS.set_translation ] -->
<PositionInterpolator DEF='F7Moverkey='0 .99keyValue='6 -.03 0 6 0 0'/>
<!-- Fs7Mover ROUTEs:  [from ClockFs7.fraction_changed to set_fraction ] [from value_changed to Fs7TRANS.set_translation ] -->
<PositionInterpolator DEF='Fs7Moverkey='0.0 .99keyValue='6.125 0 -.375 6.125 0.1 -.375'/>
<!-- G7Mover ROUTEs:  [from ClockG7.fraction_changed to set_fraction ] [from value_changed to G7TRANS.set_translation ] -->
<PositionInterpolator DEF='G7Moverkey='0 .99keyValue='6.25 -.03 0 6.25 0 0'/>
<!-- Gs7Mover ROUTEs:  [from ClockGs7.fraction_changed to set_fraction ] [from value_changed to Gs7TRANS.set_translation ] -->
<PositionInterpolator DEF='Gs7Moverkey='0.0 .99keyValue='6.375 0 -.375 6.375 .1 -.375'/>
<!-- A8Mover ROUTEs:  [from ClockA8.fraction_changed to set_fraction ] [from value_changed to A8TRANS.set_translation ] -->
<PositionInterpolator DEF='A8Moverkey='0 .99keyValue='6.5 -.03 0 6.5 0 0'/>
<!-- As8Mover ROUTEs:  [from ClockAs8.fraction_changed to set_fraction ] [from value_changed to As8TRANS.set_translation ] -->
<PositionInterpolator DEF='As8Moverkey='0.0 .99keyValue='6.625 0 -.3750 6.625 .1 -.375'/>
<!-- B8Mover ROUTEs:  [from ClockB8.fraction_changed to set_fraction ] [from value_changed to B8TRANS.set_translation ] -->
<PositionInterpolator DEF='B8Moverkey='0 .99keyValue='6.75 -.03 0 6.75 0 0'/>
<!-- C8Mover ROUTEs:  [from ClockC8.fraction_changed to set_fraction ] [from value_changed to C8TRANS.set_translation ] -->
<PositionInterpolator DEF='C8Moverkey='0 .99keyValue='7 -.03 0 7 0 0'/>
<!-- playPiano ROUTEs:  [from StartPlaying.touchTime to play_Note ] [from playA0 to PitchA0.set_startTime ] [from playA0 to ClockA0.set_startTime ] [from playAs0 to PitchAs0.set_startTime ] [from playAs0 to ClockAs0.set_startTime ] [from playB0 to PitchB0.set_startTime ] [from playB0 to ClockB0.set_startTime ] [from playC0 to PitchC0.set_startTime ] [from playC0 to ClockC0.set_startTime ] [from playCs0 to PitchCs0.set_startTime ] [from playCs0 to ClockCs0.set_startTime ] [from playD0 to PitchD0.set_startTime ] [from playD0 to ClockD0.set_startTime ] [from playDs0 to PitchDs0.set_startTime ] [from playDs0 to ClockDs0.set_startTime ] [from playE0 to PitchE0.set_startTime ] [from playE0 to ClockE0.set_startTime ] [from playF0 to PitchF0.set_startTime ] [from playF0 to ClockF0.set_startTime ] [from playFs0 to PitchFs0.set_startTime ] [from playFs0 to ClockFs0.set_startTime ] [from playG0 to PitchG0.set_startTime ] [from playG0 to ClockG0.set_startTime ] [from playGs0 to PitchGs0.set_startTime ] [from playGs0 to ClockGs0.set_startTime ] [from playA1 to PitchA1.set_startTime ] [from playA1 to ClockA1.set_startTime ] [from playAs1 to PitchAs1.set_startTime ] [from playAs1 to ClockAs1.set_startTime ] [from playB1 to PitchB1.set_startTime ] [from playB1 to ClockB1.set_startTime ] [from playC1 to PitchC1.set_startTime ] [from playC1 to ClockC1.set_startTime ] [from playCs1 to PitchCs1.set_startTime ] [from playCs1 to ClockCs1.set_startTime ] [from playD1 to PitchD1.set_startTime ] [from playD1 to ClockD1.set_startTime ] [from playDs1 to PitchDs1.set_startTime ] [from playDs1 to ClockDs1.set_startTime ] [from playE1 to PitchE1.set_startTime ] [from playE1 to ClockE1.set_startTime ] [from playF1 to PitchF1.set_startTime ] [from playF1 to ClockF1.set_startTime ] [from playFs1 to PitchFs1.set_startTime ] [from playFs1 to ClockFs1.set_startTime ] [from playG1 to PitchG1.set_startTime ] [from playG1 to ClockG1.set_startTime ] [from playGs1 to PitchGs1.set_startTime ] [from playGs1 to ClockGs1.set_startTime ] [from playA2 to PitchA2.set_startTime ] [from playA2 to ClockA2.set_startTime ] [from playAs2 to PitchAs2.set_startTime ] [from playAs2 to ClockAs2.set_startTime ] [from playB2 to PitchB2.set_startTime ] [from playB2 to ClockB2.set_startTime ] [from playC2 to PitchC2.set_startTime ] [from playC2 to ClockC2.set_startTime ] [from playCs2 to PitchCs2.set_startTime ] [from playCs2 to ClockCs2.set_startTime ] [from playD2 to PitchD2.set_startTime ] [from playD2 to ClockD2.set_startTime ] [from playDs2 to PitchDs2.set_startTime ] [from playDs2 to ClockDs2.set_startTime ] [from playE2 to PitchE2.set_startTime ] [from playE2 to ClockE2.set_startTime ] [from playF2 to PitchF2.set_startTime ] [from playF2 to ClockF2.set_startTime ] [from playFs2 to PitchFs2.set_startTime ] [from playFs2 to ClockFs2.set_startTime ] [from playG2 to PitchG2.set_startTime ] [from playG2 to ClockG2.set_startTime ] [from playGs2 to PitchGs2.set_startTime ] [from playGs2 to ClockGs2.set_startTime ] [from playA3 to PitchA3.set_startTime ] [from playA3 to ClockA3.set_startTime ] [from playAs3 to PitchAs3.set_startTime ] [from playAs3 to ClockAs3.set_startTime ] [from playB3 to PitchB3.set_startTime ] [from playB3 to ClockB3.set_startTime ] [from playC3 to PitchC3.set_startTime ] [from playC3 to ClockC3.set_startTime ] [from playCs3 to PitchCs3.set_startTime ] [from playCs3 to ClockCs3.set_startTime ] [from playD3 to PitchD3.set_startTime ] [from playD3 to ClockD3.set_startTime ] [from playDs3 to PitchDs3.set_startTime ] [from playDs3 to ClockDs3.set_startTime ] [from playE3 to PitchE3.set_startTime ] [from playE3 to ClockE3.set_startTime ] [from playF3 to PitchF3.set_startTime ] [from playF3 to ClockF3.set_startTime ] [from playFs3 to PitchFs3.set_startTime ] [from playFs3 to ClockFs3.set_startTime ] [from playG3 to PitchG3.set_startTime ] [from playG3 to ClockG3.set_startTime ] [from playGs3 to PitchGs3.set_startTime ] [from playGs3 to ClockGs3.set_startTime ] [from playA4 to PitchA4.set_startTime ] [from playA4 to ClockA4.set_startTime ] [from playAs4 to PitchAs4.set_startTime ] [from playAs4 to ClockAs4.set_startTime ] [from playB4 to PitchB4.set_startTime ] [from playB4 to ClockB4.set_startTime ] [from playC4 to PitchC4.set_startTime ] [from playC4 to ClockC4.set_startTime ] [from playCs4 to PitchCs4.set_startTime ] [from playCs4 to ClockCs4.set_startTime ] [from playD4 to PitchD4.set_startTime ] [from playD4 to ClockD4.set_startTime ] [from playDs4 to PitchDs4.set_startTime ] [from playDs4 to ClockDs4.set_startTime ] [from playE4 to PitchE4.set_startTime ] [from playE4 to ClockE4.set_startTime ] [from playF4 to PitchF4.set_startTime ] [from playF4 to ClockF4.set_startTime ] [from playFs4 to PitchFs4.set_startTime ] [from playFs4 to ClockFs4.set_startTime ] [from playG4 to PitchG4.set_startTime ] [from playG4 to ClockG4.set_startTime ] [from playGs4 to PitchGs4.set_startTime ] [from playGs4 to ClockGs4.set_startTime ] [from playB5 to ClockB5.set_startTime ] [from playC5 to PitchC5.set_startTime ] [from playC5 to ClockC5.set_startTime ] [from playCs5 to PitchCs5.set_startTime ] [from playCs5 to ClockCs5.set_startTime ] [from playD5 to PitchD5.set_startTime ] [from playD5 to ClockD5.set_startTime ] [from playDs5 to PitchDs5.set_startTime ] [from playDs5 to ClockDs5.set_startTime ] [from playE5 to PitchE5.set_startTime ] [from playE5 to ClockE5.set_startTime ] [from playF5 to PitchF5.set_startTime ] [from playF5 to ClockF5.set_startTime ] [from playFs5 to PitchFs5.set_startTime ] [from playFs5 to ClockFs5.set_startTime ] [from playG5 to PitchG5.set_startTime ] [from playG5 to ClockG5.set_startTime ] [from playGs5 to PitchGs5.set_startTime ] [from playGs5 to ClockGs5.set_startTime ] [from playA6 to PitchA6.set_startTime ] [from playA6 to ClockA6.set_startTime ] [from playAs6 to PitchAs6.set_startTime ] [from playAs6 to ClockAs6.set_startTime ] [from playB6 to PitchB6.set_startTime ] [from playB6 to ClockB6.set_startTime ] [from playC6 to PitchC6.set_startTime ] [from playC6 to ClockC6.set_startTime ] [from playCs6 to PitchCs6.set_startTime ] [from playCs6 to ClockCs6.set_startTime ] [from playD6 to PitchD6.set_startTime ] [from playD6 to ClockD6.set_startTime ] [from playDs6 to PitchDs6.set_startTime ] [from playDs6 to ClockDs6.set_startTime ] [from playE6 to PitchE6.set_startTime ] [from playE6 to ClockE6.set_startTime ] [from playF6 to PitchF6.set_startTime ] [from playF6 to ClockF6.set_startTime ] [from playFs6 to PitchFs6.set_startTime ] [from playFs6 to ClockFs6.set_startTime ] [from playG6 to PitchG6.set_startTime ] [from playG6 to ClockG6.set_startTime ] [from playGs6 to PitchGs6.set_startTime ] [from playGs6 to ClockGs6.set_startTime ] [from playA7 to PitchA7.set_startTime ] [from playA7 to C