@prefix :        <https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/KeyboardEightyEightKeys.ttl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix x3d:     <https://www.web3d.org/specifications/x3d-4.0.xsd#> .
@prefix x3do:    <https://www.web3d.org/specifications/X3dOntology4.0#> .

:X3D a owl:NamedIndividual, x3do:X3D ;
  x3do:hasHead :head ;
  x3do:hasScene :Scene ;
  x3do:profile 'Immersive' ;
  x3do:version '3.0' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.0.xsd' .
:head a owl:NamedIndividual, x3do:head ;
  x3do:hasParent :X3D ;
  x3do:hasMeta :meta_1_1, :meta_1_2, :meta_1_3, :meta_1_4, :meta_1_5, :meta_1_6, :meta_1_7, :meta_1_8, :meta_1_9, :meta_1_10, :meta_1_11, :meta_1_12 .
:meta_1_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'KeyboardEightyEightKeys.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Eight-eight key keyboard, extrapolated from VRML Sourcebook Figure 24.4, including animation of key movements coordinated with sounding of key when touched.' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Not all tones work (hardware, operating system dependent?) and so may need some higher-frequency sound files.' ;
  x3do:name 'warning' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D Specification Comment: pitch attribute might be better on Sound node, thus avoiding need for AudioClip to reload the same audio file multiple times' ;
  x3do:name 'TODO' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Scott Gilman' ;
  x3do:name 'creator' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '27 August 2004' ;
  x3do:name 'created' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '14 July 2023' ;
  x3do:name 'modified' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/Figure24.4FourKeyKeyboard.x3d' ;
  x3do:name 'reference' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/KeyboardEightyEightKeys.x3d' ;
  x3do:name 'identifier' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Figure 24.4, The VRML 2.0 Sourcebook, Copyright [1997] By Andrea L. Ames, David R. Nadeau, and John L. Moreland' ;
  x3do:name 'reference' .
:meta_1_11 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_12 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "KeyboardEightyEightKeys.x3d" .
:meta dcterms:description "Eight-eight key keyboard, extrapolated from VRML Sourcebook Figure 24.4, including animation of key movements coordinated with sounding of key when touched." .
:meta dcterms:warning "Not all tones work (hardware, operating system dependent?) and so may need some higher-frequency sound files." .
:meta dcterms:creator "Scott Gilman" .
:meta dcterms:created "27 August 2004" .
:meta dcterms:modified "14 July 2023" .
:meta dcterms:reference "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/Figure24.4FourKeyKeyboard.x3d" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/KeyboardEightyEightKeys.x3d" .
:meta dcterms:reference "Figure 24.4, The VRML 2.0 Sourcebook, Copyright [1997] By Andrea L. Ames, David R. Nadeau, and John L. Moreland" .
:meta dcterms:generator "X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:license "../license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :WorldInfo_2_1, :LightFromAbove, :Viewpoint_2_3, :RightSide, :FrontFar, :LeftSide, :TopDown, :TopDownCloser, :Group_2_9 ;
  x3do:hasROUTE :ROUTE_2_10, :ROUTE_2_11, :ROUTE_2_12, :ROUTE_2_13, :ROUTE_2_14, :ROUTE_2_15, :ROUTE_2_16, :ROUTE_2_17, :ROUTE_2_18, :ROUTE_2_19, :ROUTE_2_20, :ROUTE_2_21, :ROUTE_2_22, :ROUTE_2_23, :ROUTE_2_24, :ROUTE_2_25, :ROUTE_2_26, :ROUTE_2_27, :ROUTE_2_28, :ROUTE_2_29, :ROUTE_2_30, :ROUTE_2_31, :ROUTE_2_32, :ROUTE_2_33, :ROUTE_2_34, :ROUTE_2_35, :ROUTE_2_36, :ROUTE_2_37, :ROUTE_2_38, :ROUTE_2_39, :ROUTE_2_40, :ROUTE_2_41, :ROUTE_2_42, :ROUTE_2_43, :ROUTE_2_44, :ROUTE_2_45, :ROUTE_2_46, :ROUTE_2_47, :ROUTE_2_48, :ROUTE_2_49, :ROUTE_2_50, :ROUTE_2_51, :ROUTE_2_52, :ROUTE_2_53, :ROUTE_2_54, :ROUTE_2_55, :ROUTE_2_56, :ROUTE_2_57, :ROUTE_2_58, :ROUTE_2_59, :ROUTE_2_60, :ROUTE_2_61, :ROUTE_2_62, :ROUTE_2_63, :ROUTE_2_64, :ROUTE_2_65, :ROUTE_2_66, :ROUTE_2_67, :ROUTE_2_68, :ROUTE_2_69, :ROUTE_2_70, :ROUTE_2_71, :ROUTE_2_72, :ROUTE_2_73, :ROUTE_2_74, :ROUTE_2_75, :ROUTE_2_76, :ROUTE_2_77, :ROUTE_2_78, :ROUTE_2_79, :ROUTE_2_80, :ROUTE_2_81, :ROUTE_2_82, :ROUTE_2_83, :ROUTE_2_84, :ROUTE_2_85, :ROUTE_2_86, :ROUTE_2_87, :ROUTE_2_88, :ROUTE_2_89, :ROUTE_2_90, :ROUTE_2_91, :ROUTE_2_92, :ROUTE_2_93, :ROUTE_2_94, :ROUTE_2_95, :ROUTE_2_96, :ROUTE_2_97, :ROUTE_2_98, :ROUTE_2_99, :ROUTE_2_100, :ROUTE_2_101, :ROUTE_2_102, :ROUTE_2_103, :ROUTE_2_104, :ROUTE_2_105, :ROUTE_2_106, :ROUTE_2_107, :ROUTE_2_108, :ROUTE_2_109, :ROUTE_2_110, :ROUTE_2_111, :ROUTE_2_112, :ROUTE_2_113, :ROUTE_2_114, :ROUTE_2_115, :ROUTE_2_116, :ROUTE_2_117, :ROUTE_2_118, :ROUTE_2_119, :ROUTE_2_120, :ROUTE_2_121, :ROUTE_2_122, :ROUTE_2_123, :ROUTE_2_124, :ROUTE_2_125, :ROUTE_2_126, :ROUTE_2_127, :ROUTE_2_128, :ROUTE_2_129, :ROUTE_2_130, :ROUTE_2_131, :ROUTE_2_132, :ROUTE_2_133, :ROUTE_2_134, :ROUTE_2_135, :ROUTE_2_136, :ROUTE_2_137, :ROUTE_2_138, :ROUTE_2_139, :ROUTE_2_140, :ROUTE_2_141, :ROUTE_2_142, :ROUTE_2_143, :ROUTE_2_144, :ROUTE_2_145, :ROUTE_2_146, :ROUTE_2_147, :ROUTE_2_148, :ROUTE_2_149, :ROUTE_2_150, :ROUTE_2_151, :ROUTE_2_152, :ROUTE_2_153, :ROUTE_2_154, :ROUTE_2_155, :ROUTE_2_156, :ROUTE_2_157, :ROUTE_2_158, :ROUTE_2_159, :ROUTE_2_160, :ROUTE_2_161, :ROUTE_2_162, :ROUTE_2_163, :ROUTE_2_164, :ROUTE_2_165, :ROUTE_2_166, :ROUTE_2_167, :ROUTE_2_168, :ROUTE_2_169, :ROUTE_2_170, :ROUTE_2_171, :ROUTE_2_172, :ROUTE_2_173, :ROUTE_2_174, :ROUTE_2_175, :ROUTE_2_176, :ROUTE_2_177, :ROUTE_2_178, :ROUTE_2_179, :ROUTE_2_180, :ROUTE_2_181, :ROUTE_2_182, :ROUTE_2_183, :ROUTE_2_184, :ROUTE_2_185, :ROUTE_2_186, :ROUTE_2_187, :ROUTE_2_188, :ROUTE_2_189, :ROUTE_2_190, :ROUTE_2_191, :ROUTE_2_192, :ROUTE_2_193, :ROUTE_2_194, :ROUTE_2_195, :ROUTE_2_196, :ROUTE_2_197, :ROUTE_2_198, :ROUTE_2_199, :ROUTE_2_200, :ROUTE_2_201, :ROUTE_2_202, :ROUTE_2_203, :ROUTE_2_204, :ROUTE_2_205, :ROUTE_2_206, :ROUTE_2_207, :ROUTE_2_208, :ROUTE_2_209, :ROUTE_2_210, :ROUTE_2_211, :ROUTE_2_212, :ROUTE_2_213, :ROUTE_2_214, :ROUTE_2_215, :ROUTE_2_216, :ROUTE_2_217, :ROUTE_2_218, :ROUTE_2_219, :ROUTE_2_220, :ROUTE_2_221, :ROUTE_2_222, :ROUTE_2_223, :ROUTE_2_224, :ROUTE_2_225, :ROUTE_2_226, :ROUTE_2_227, :ROUTE_2_228, :ROUTE_2_229, :ROUTE_2_230, :ROUTE_2_231, :ROUTE_2_232, :ROUTE_2_233, :ROUTE_2_234, :ROUTE_2_235, :ROUTE_2_236, :ROUTE_2_237, :ROUTE_2_238, :ROUTE_2_239, :ROUTE_2_240, :ROUTE_2_241, :ROUTE_2_242, :ROUTE_2_243, :ROUTE_2_244, :ROUTE_2_245, :ROUTE_2_246, :ROUTE_2_247, :ROUTE_2_248, :ROUTE_2_249, :ROUTE_2_250, :ROUTE_2_251, :ROUTE_2_252, :ROUTE_2_253, :ROUTE_2_254, :ROUTE_2_255, :ROUTE_2_256, :ROUTE_2_257, :ROUTE_2_258, :ROUTE_2_259, :ROUTE_2_260, :ROUTE_2_261, :ROUTE_2_262, :ROUTE_2_263, :ROUTE_2_264, :ROUTE_2_265, :ROUTE_2_266, :ROUTE_2_267, :ROUTE_2_268, :ROUTE_2_269, :ROUTE_2_270, :ROUTE_2_271, :ROUTE_2_272, :ROUTE_2_273, :ROUTE_2_274, :ROUTE_2_275, :ROUTE_2_276, :ROUTE_2_277, :ROUTE_2_278, :ROUTE_2_279, :ROUTE_2_280, :ROUTE_2_281, :ROUTE_2_282, :ROUTE_2_283, :ROUTE_2_284, :ROUTE_2_285, :ROUTE_2_286, :ROUTE_2_287, :ROUTE_2_288, :ROUTE_2_289, :ROUTE_2_290, :ROUTE_2_291, :ROUTE_2_292, :ROUTE_2_293, :ROUTE_2_294, :ROUTE_2_295, :ROUTE_2_296, :ROUTE_2_297, :ROUTE_2_298, :ROUTE_2_299, :ROUTE_2_300, :ROUTE_2_301, :ROUTE_2_302, :ROUTE_2_303, :ROUTE_2_304, :ROUTE_2_305, :ROUTE_2_306, :ROUTE_2_307, :ROUTE_2_308, :ROUTE_2_309, :ROUTE_2_310, :ROUTE_2_311, :ROUTE_2_312, :ROUTE_2_313, :ROUTE_2_314, :ROUTE_2_315, :ROUTE_2_316, :ROUTE_2_317, :ROUTE_2_318, :ROUTE_2_319, :ROUTE_2_320, :ROUTE_2_321, :ROUTE_2_322, :ROUTE_2_323, :ROUTE_2_324, :ROUTE_2_325, :ROUTE_2_326, :ROUTE_2_327, :ROUTE_2_328, :ROUTE_2_329, :ROUTE_2_330, :ROUTE_2_331, :ROUTE_2_332, :ROUTE_2_333, :ROUTE_2_334, :ROUTE_2_335, :ROUTE_2_336, :ROUTE_2_337, :ROUTE_2_338, :ROUTE_2_339, :ROUTE_2_340, :ROUTE_2_341, :ROUTE_2_342, :ROUTE_2_343, :ROUTE_2_344, :ROUTE_2_345, :ROUTE_2_346, :ROUTE_2_347, :ROUTE_2_348, :ROUTE_2_349, :ROUTE_2_350, :ROUTE_2_351, :ROUTE_2_352, :ROUTE_2_353, :ROUTE_2_354, :ROUTE_2_355, :ROUTE_2_356, :ROUTE_2_357, :ROUTE_2_358, :ROUTE_2_359, :ROUTE_2_360, :ROUTE_2_361, :ROUTE_2_362, :ROUTE_2_363, :ROUTE_2_364, :ROUTE_2_365, :ROUTE_2_366, :ROUTE_2_367, :ROUTE_2_368, :ROUTE_2_369, :ROUTE_2_370, :ROUTE_2_371, :ROUTE_2_372, :ROUTE_2_373, :ROUTE_2_374, :ROUTE_2_375, :ROUTE_2_376, :ROUTE_2_377, :ROUTE_2_378, :ROUTE_2_379, :ROUTE_2_380, :ROUTE_2_381, :ROUTE_2_382, :ROUTE_2_383, :ROUTE_2_384, :ROUTE_2_385, :ROUTE_2_386, :ROUTE_2_387, :ROUTE_2_388, :ROUTE_2_389, :ROUTE_2_390, :ROUTE_2_391, :ROUTE_2_392, :ROUTE_2_393, :ROUTE_2_394, :ROUTE_2_395, :ROUTE_2_396, :ROUTE_2_397, :ROUTE_2_398, :ROUTE_2_399, :ROUTE_2_400, :ROUTE_2_401, :ROUTE_2_402, :ROUTE_2_403, :ROUTE_2_404, :ROUTE_2_405, :ROUTE_2_406, :ROUTE_2_407, :ROUTE_2_408, :ROUTE_2_409, :ROUTE_2_410, :ROUTE_2_411, :ROUTE_2_412, :ROUTE_2_413, :ROUTE_2_414, :ROUTE_2_415, :ROUTE_2_416, :ROUTE_2_417, :ROUTE_2_418, :ROUTE_2_419, :ROUTE_2_420, :ROUTE_2_421, :ROUTE_2_422, :ROUTE_2_423, :ROUTE_2_424, :ROUTE_2_425, :ROUTE_2_426, :ROUTE_2_427, :ROUTE_2_428, :ROUTE_2_429, :ROUTE_2_430, :ROUTE_2_431, :ROUTE_2_432, :ROUTE_2_433, :ROUTE_2_434, :ROUTE_2_435, :ROUTE_2_436, :ROUTE_2_437, :ROUTE_2_438, :ROUTE_2_439, :ROUTE_2_440, :ROUTE_2_441, :ROUTE_2_442, :ROUTE_2_443, :ROUTE_2_444, :ROUTE_2_445, :ROUTE_2_446, :ROUTE_2_447, :ROUTE_2_448, :ROUTE_2_449, :ROUTE_2_450, :ROUTE_2_451, :ROUTE_2_452, :ROUTE_2_453, :ROUTE_2_454, :ROUTE_2_455, :ROUTE_2_456, :ROUTE_2_457, :ROUTE_2_458, :ROUTE_2_459, :ROUTE_2_460, :ROUTE_2_461, :ROUTE_2_462, :ROUTE_2_463, :ROUTE_2_464, :ROUTE_2_465, :ROUTE_2_466, :ROUTE_2_467, :ROUTE_2_468, :ROUTE_2_469, :ROUTE_2_470, :ROUTE_2_471, :ROUTE_2_472, :ROUTE_2_473, :ROUTE_2_474, :ROUTE_2_475, :ROUTE_2_476, :ROUTE_2_477, :ROUTE_2_478, :ROUTE_2_479, :ROUTE_2_480, :ROUTE_2_481, :ROUTE_2_482, :ROUTE_2_483, :ROUTE_2_484, :ROUTE_2_485, :ROUTE_2_486, :ROUTE_2_487, :ROUTE_2_488, :ROUTE_2_489, :ROUTE_2_490, :ROUTE_2_491, :ROUTE_2_492, :ROUTE_2_493, :ROUTE_2_494, :ROUTE_2_495, :ROUTE_2_496, :ROUTE_2_497, :ROUTE_2_498, :ROUTE_2_499, :ROUTE_2_500, :ROUTE_2_501, :ROUTE_2_502, :ROUTE_2_503, :ROUTE_2_504, :ROUTE_2_505, :ROUTE_2_506, :ROUTE_2_507, :ROUTE_2_508, :ROUTE_2_509, :ROUTE_2_510, :ROUTE_2_511, :ROUTE_2_512, :ROUTE_2_513, :ROUTE_2_514, :ROUTE_2_515, :ROUTE_2_516, :ROUTE_2_517, :ROUTE_2_518, :ROUTE_2_519, :ROUTE_2_520, :ROUTE_2_521, :ROUTE_2_522, :ROUTE_2_523, :ROUTE_2_524, :ROUTE_2_525, :ROUTE_2_526, :ROUTE_2_527, :ROUTE_2_528, :ROUTE_2_529, :ROUTE_2_530, :ROUTE_2_531, :ROUTE_2_532, :ROUTE_2_533, :ROUTE_2_534, :ROUTE_2_535, :ROUTE_2_536, :ROUTE_2_537, :ROUTE_2_538, :ROUTE_2_539, :ROUTE_2_540, :ROUTE_2_541, :ROUTE_2_542, :ROUTE_2_543, :ROUTE_2_544, :ROUTE_2_545, :ROUTE_2_546, :ROUTE_2_547, :ROUTE_2_548, :ROUTE_2_549, :ROUTE_2_550, :ROUTE_2_551, :ROUTE_2_552, :ROUTE_2_553, :ROUTE_2_554, :ROUTE_2_555, :ROUTE_2_556, :ROUTE_2_557, :ROUTE_2_558, :ROUTE_2_559, :ROUTE_2_560, :ROUTE_2_561, :ROUTE_2_562, :ROUTE_2_563, :ROUTE_2_564, :ROUTE_2_565, :ROUTE_2_566, :ROUTE_2_567, :ROUTE_2_568, :ROUTE_2_569, :ROUTE_2_570, :ROUTE_2_571, :ROUTE_2_572, :ROUTE_2_573, :ROUTE_2_574, :ROUTE_2_575, :ROUTE_2_576, :ROUTE_2_577, :ROUTE_2_578, :ROUTE_2_579, :ROUTE_2_580, :ROUTE_2_581, :ROUTE_2_582, :ROUTE_2_583, :ROUTE_2_584, :ROUTE_2_585, :ROUTE_2_586, :ROUTE_2_587, :ROUTE_2_588, :ROUTE_2_589, :ROUTE_2_590, :ROUTE_2_591, :ROUTE_2_592, :ROUTE_2_593, :ROUTE_2_594, :ROUTE_2_595, :ROUTE_2_596, :ROUTE_2_597, :ROUTE_2_598, :ROUTE_2_599, :ROUTE_2_600, :ROUTE_2_601, :ROUTE_2_602, :ROUTE_2_603, :ROUTE_2_604, :ROUTE_2_605 .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'KeyboardEightyEightKeys.x3d' .
:LightFromAbove a owl:NamedIndividual, x3do:DirectionalLight ;
  x3do:hasParent :Scene ;
  x3do:DEF 'LightFromAbove' ;
  x3do:direction ( 0 -1 -0.2 ) .
:Viewpoint_2_3 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:description 'Middle C, C#, D, D#' ;
  x3do:orientation ( 1 0 0 -0.758 ) ;
  x3do:position ( 0 2 2 ) .
:RightSide a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'RightSide' ;
  x3do:description 'From right end of keyboard' ;
  x3do:orientation ( -0.238 .939 .25 1.6349 ) ;
  x3do:position ( 15.5 8.5 -0.2 ) .
:FrontFar a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'FrontFar' ;
  x3do:description 'Looking down from a distance' ;
  x3do:orientation ( -1 .007 -0.004 .6661 ) ;
  x3do:position ( .3 11 13.7 ) .
:LeftSide a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'LeftSide' ;
  x3do:description 'From left end of keyboard' ;
  x3do:orientation ( -0.252 -0.932 -0.261 1.636 ) ;
  x3do:position ( -15.9 9.6 -0.1 ) .
:TopDown a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopDown' ;
  x3do:description 'Looking down from above middle C' ;
  x3do:orientation ( -1 -0.024 .007 1.5504 ) ;
  x3do:position ( -1 15.4 .3 ) .
:TopDownCloser a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopDownCloser' ;
  x3do:description 'Top-down view, closer' ;
  x3do:orientation ( -1 -0.005 -0.008 1.1528 ) ;
  x3do:position ( -0.6 7.1 3.1 ) .
:Group_2_9 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :A0TRANS, :As0TRANS, :B0TRANS, :C0TRANS, :Cs0TRANS, :D0TRANS, :Ds0TRANS, :E0TRANS, :F0TRANS, :Fs0TRANS, :G0TRANS, :Gs0TRANS, :A1TRANS, :As1TRANS, :B1TRANS, :C1TRANS, :Cs1TRANS, :D1TRANS, :Ds1TRANS, :E1TRANS, :F1TRANS, :Fs1TRANS, :G1TRANS, :Gs1TRANS, :A2TRANS, :As2TRANS, :B2TRANS, :C2TRANS, :Cs2TRANS, :D2TRANS, :Ds2TRANS, :E2TRANS, :F2TRANS, :Fs2TRANS, :G2TRANS, :Gs2TRANS, :A3TRANS, :As3TRANS, :B3TRANS, :C3TRANS, :Cs3TRANS, :D3TRANS, :Ds3TRANS, :E3TRANS, :F3TRANS, :Fs3TRANS, :G3TRANS, :Gs3TRANS, :A4TRANS, :As4TRANS, :B4TRANS, :C4TRANS, :Cs4TRANS, :D4TRANS, :Ds4TRANS, :E4TRANS, :F4TRANS, :Fs4TRANS, :G4TRANS, :Gs4TRANS, :A5TRANS, :As5TRANS, :B5TRANS, :C5TRANS, :Cs5TRANS, :D5TRANS, :Ds5TRANS, :E5TRANS, :F5TRANS, :Fs5TRANS, :G5TRANS, :Gs5TRANS, :A6TRANS, :As6TRANS, :B6TRANS, :C6TRANS, :Cs6TRANS, :D6TRANS, :Ds6TRANS, :E6TRANS, :F6TRANS, :Fs6TRANS, :G6TRANS, :Gs6TRANS, :A7TRANS, :As7TRANS, :B7TRANS, :C7TRANS, :Cs7TRANS, :D7TRANS, :Ds7TRANS, :E7TRANS, :F7TRANS, :Fs7TRANS, :G7TRANS, :Gs7TRANS, :A8TRANS, :As8TRANS, :B8TRANS, :C8TRANS, :Transform_2_9_101, :ClockA0, :ClockAs0, :ClockB0, :ClockC0, :ClockCs0, :ClockD0, :ClockDs0, :ClockE0, :ClockF0, :ClockFs0, :ClockG0, :ClockGs0, :ClockAs1, :ClockB1, :ClockC1, :ClockCs1, :ClockD1, :ClockDs1, :ClockE1, :ClockF1, :ClockFs1, :ClockG1, :ClockGs1, :ClockA1, :ClockA2, :ClockAs2, :ClockB2, :ClockC2, :ClockCs2, :ClockD2, :ClockDs2, :ClockE2, :ClockF2, :ClockFs2, :ClockG2, :ClockGs2, :ClockA3, :ClockAs3, :ClockB3, :ClockC3, :ClockCs3, :ClockD3, :ClockDs3, :ClockE3, :ClockF3, :ClockFs3, :ClockG3, :ClockGs3, :ClockA4, :ClockAs4, :ClockB4, :ClockC4, :ClockCs4, :ClockD4, :ClockDs4, :ClockE4, :ClockF4, :ClockFs4, :ClockG4, :ClockGs4, :ClockA5, :ClockAs5, :ClockB5, :ClockC5, :ClockCs5, :ClockD5, :ClockDs5, :ClockE5, :ClockF5, :ClockFs5, :ClockG5, :ClockGs5, :ClockA6, :ClockAs6, :ClockB6, :ClockC6, :ClockCs6, :ClockD6, :ClockDs6, :ClockE6, :ClockF6, :ClockFs6, :ClockG6, :ClockGs6, :ClockA7, :ClockAs7, :ClockB7, :ClockC7, :ClockCs7, :ClockD7, :ClockDs7, :ClockE7, :ClockF7, :ClockFs7, :ClockG7, :ClockGs7, :ClockA8, :ClockAs8, :ClockB8, :ClockC8, :A0Mover, :As0Mover, :B0Mover, :C0Mover, :Cs0Mover, :D0Mover, :Ds0Mover, :E0Mover, :F0Mover, :Fs0Mover, :G0Mover, :Gs0Mover, :A1Mover, :As1Mover, :B1Mover, :C1Mover, :Cs1Mover, :D1Mover, :Ds1Mover, :E1Mover, :F1Mover, :Fs1Mover, :G1Mover, :Gs1Mover, :A2Mover, :As2Mover, :B2Mover, :C2Mover, :Cs2Mover, :D2Mover, :Ds2Mover, :E2Mover, :F2Mover, :Fs2Mover, :G2Mover, :Gs2Mover, :A3Mover, :As3Mover, :B3Mover, :C3Mover, :Cs3Mover, :D3Mover, :Ds3Mover, :E3Mover, :F3Mover, :Fs3Mover, :G3Mover, :Gs3Mover, :A4Mover, :As4Mover, :B4Mover, :C4Mover, :Cs4Mover, :D4Mover, :Ds4Mover, :E4Mover, :F4Mover, :Fs4Mover, :G4Mover, :Gs4Mover, :A5Mover, :As5Mover, :B5Mover, :C5Mover, :Cs5Mover, :D5Mover, :Ds5Mover, :E5Mover, :F5Mover, :Fs5Mover, :G5Mover, :Gs5Mover, :A6Mover, :As6Mover, :B6Mover, :C6Mover, :Cs6Mover, :D6Mover, :Ds6Mover, :E6Mover, :F6Mover, :Fs6Mover, :G6Mover, :Gs6Mover, :A7Mover, :As7Mover, :B7Mover, :C7Mover, :Cs7Mover, :D7Mover, :Ds7Mover, :E7Mover, :F7Mover, :Fs7Mover, :G7Mover, :Gs7Mover, :A8Mover, :As8Mover, :B8Mover, :C8Mover, :PlayerPianoScript .
:A0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey, :A0, :Sound_2_9_1_3 ;
  x3do:DEF 'A0TRANS' ;
  x3do:translation ( -7.5 0 0 ) .
:WhiteKey a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A0TRANS ;
  x3do:hasGeometry :Box_2_9_1_1_1 ;
  x3do:hasAppearance :IvoryWhite ;
  x3do:DEF 'WhiteKey' .
:Box_2_9_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :WhiteKey ;
  x3do:size ( 0.23 0.1 1.5 ) .
:IvoryWhite a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :WhiteKey ;
  x3do:hasMaterial :Material_2_9_1_1_2_1 ;
  x3do:DEF 'IvoryWhite' .
:Material_2_9_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :IvoryWhite ;
  x3do:diffuseColor ( 1 1 0.941176 ) .
:A0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A0TRANS ;
  x3do:DEF 'A0' ;
  x3do:description 'play Pitch A0' .
:Sound_2_9_1_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A0TRANS ;
  x3do:hasSource :PitchA0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchA0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_1_3 ;
  x3do:DEF 'PitchA0' ;
  x3do:description 'playing Pitch A0' ;
  x3do:pitch 0.053 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey, :As0, :Sound_2_9_2_3 ;
  x3do:DEF 'As0TRANS' ;
  x3do:translation ( -7.375 0.1 -0.375 ) .
:BlackKey a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As0TRANS ;
  x3do:hasGeometry :Box_2_9_2_1_1 ;
  x3do:hasAppearance :Appearance_2_9_2_1_2 ;
  x3do:DEF 'BlackKey' .
:Box_2_9_2_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :BlackKey ;
  x3do:size ( 0.23 0.1 1.5 ) .
:Appearance_2_9_2_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :BlackKey ;
  x3do:hasMaterial :Material_2_9_2_1_2_1 .
:Material_2_9_2_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_9_2_1_2 ;
  x3do:diffuseColor ( 0.1 0.1 0.1 ) .
:As0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As0TRANS ;
  x3do:DEF 'As0' ;
  x3do:description 'play Pitch As0' .
:Sound_2_9_2_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As0TRANS ;
  x3do:hasSource :PitchAs0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchAs0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_2_3 ;
  x3do:DEF 'PitchAs0' ;
  x3do:description 'playing Pitch As0' ;
  x3do:pitch .056 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-1, :B0, :Sound_2_9_3_3 ;
  x3do:DEF 'B0TRANS' ;
  x3do:translation ( -7.25 0 0 ) .
:WhiteKey-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B0TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B0TRANS ;
  x3do:DEF 'B0' ;
  x3do:description 'play Pitch B0' .
:Sound_2_9_3_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B0TRANS ;
  x3do:hasSource :PitchB0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchB0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_3_3 ;
  x3do:DEF 'PitchB0' ;
  x3do:description 'playing Pitch B0' ;
  x3do:pitch .059 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-2, :C0, :Sound_2_9_4_3 ;
  x3do:DEF 'C0TRANS' ;
  x3do:translation ( -7 0 0 ) .
:WhiteKey-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C0TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C0TRANS ;
  x3do:DEF 'C0' ;
  x3do:description 'play Pitch C0' .
:Sound_2_9_4_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C0TRANS ;
  x3do:hasSource :PitchC0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchC0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_4_3 ;
  x3do:DEF 'PitchC0' ;
  x3do:description 'playing Pitch C0' ;
  x3do:pitch .062 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-1, :Cs0, :Sound_2_9_5_3 ;
  x3do:DEF 'Cs0TRANS' ;
  x3do:translation ( -6.875 0.1 -0.375 ) .
:BlackKey-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs0TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs0TRANS ;
  x3do:DEF 'Cs0' ;
  x3do:description 'play Pitch Cs1' .
:Sound_2_9_5_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs0TRANS ;
  x3do:hasSource :PitchCs0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchCs0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_5_3 ;
  x3do:DEF 'PitchCs0' ;
  x3do:description 'playing Pitch Cs0' ;
  x3do:pitch .066 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-3, :D0, :Sound_2_9_6_3 ;
  x3do:DEF 'D0TRANS' ;
  x3do:translation ( -6.75 0 0 ) .
:WhiteKey-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D0TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D0TRANS ;
  x3do:DEF 'D0' ;
  x3do:description 'play Pitch D0' .
:Sound_2_9_6_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D0TRANS ;
  x3do:hasSource :PitchD0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchD0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_6_3 ;
  x3do:DEF 'PitchD0' ;
  x3do:description 'playing Pitch D0' ;
  x3do:pitch .070 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-2, :Ds0, :Sound_2_9_7_3 ;
  x3do:DEF 'Ds0TRANS' ;
  x3do:translation ( -6.625 0.1 -0.375 ) .
:BlackKey-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds0TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds0TRANS ;
  x3do:DEF 'Ds0' ;
  x3do:description 'play Pitch Ds0' .
:Sound_2_9_7_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds0TRANS ;
  x3do:hasSource :PitchDs0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchDs0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_7_3 ;
  x3do:DEF 'PitchDs0' ;
  x3do:description 'playing Pitch Ds0' ;
  x3do:pitch .074 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-4, :E0, :Sound_2_9_8_3 ;
  x3do:DEF 'E0TRANS' ;
  x3do:translation ( -6.5 0 0 ) .
:WhiteKey-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E0TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E0TRANS ;
  x3do:DEF 'E0' ;
  x3do:description 'play Pitch E0' .
:Sound_2_9_8_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E0TRANS ;
  x3do:hasSource :PitchE0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchE0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_8_3 ;
  x3do:DEF 'PitchE0' ;
  x3do:description 'playing Pitch E0' ;
  x3do:pitch .079 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-5, :F0, :Sound_2_9_9_3 ;
  x3do:DEF 'F0TRANS' ;
  x3do:translation ( -6.25 0 0 ) .
:WhiteKey-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F0TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F0TRANS ;
  x3do:DEF 'F0' ;
  x3do:description 'play Pitch F0' .
:Sound_2_9_9_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F0TRANS ;
  x3do:hasSource :PitchF0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchF0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_9_3 ;
  x3do:DEF 'PitchF0' ;
  x3do:description 'playing Pitch F0' ;
  x3do:pitch .083 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-3, :Fs0, :Sound_2_9_10_3 ;
  x3do:DEF 'Fs0TRANS' ;
  x3do:translation ( -6.125 0.1 -0.375 ) .
:BlackKey-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs0TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs0TRANS ;
  x3do:DEF 'Fs0' ;
  x3do:description 'play Pitch Fs0' .
:Sound_2_9_10_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs0TRANS ;
  x3do:hasSource :PitchFs0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchFs0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_10_3 ;
  x3do:DEF 'PitchFs0' ;
  x3do:description 'playing Pitch Fs0' ;
  x3do:pitch .088 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-6, :G0, :Sound_2_9_11_3 ;
  x3do:DEF 'G0TRANS' ;
  x3do:translation ( -6 0 0 ) .
:WhiteKey-USE-6 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G0TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G0TRANS ;
  x3do:DEF 'G0' ;
  x3do:description 'play Pitch G0' .
:Sound_2_9_11_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G0TRANS ;
  x3do:hasSource :PitchG0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchG0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_11_3 ;
  x3do:DEF 'PitchG0' ;
  x3do:description 'playing Pitch G0' ;
  x3do:pitch .094 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs0TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-4, :Gs0, :Sound_2_9_12_3 ;
  x3do:DEF 'Gs0TRANS' ;
  x3do:translation ( -5.875 0.1 -0.375 ) .
:BlackKey-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs0TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs0 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs0TRANS ;
  x3do:DEF 'Gs0' ;
  x3do:description 'play Pitch Gs0' .
:Sound_2_9_12_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs0TRANS ;
  x3do:hasSource :PitchGs0 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchGs0 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_12_3 ;
  x3do:DEF 'PitchGs0' ;
  x3do:description 'playing Pitch Gs0' ;
  x3do:pitch .099 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-7, :A1, :Sound_2_9_13_3 ;
  x3do:DEF 'A1TRANS' ;
  x3do:translation ( -5.75 0 0 ) .
:WhiteKey-USE-7 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A1TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A1TRANS ;
  x3do:DEF 'A1' ;
  x3do:description 'play Pitch A1' .
:Sound_2_9_13_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A1TRANS ;
  x3do:hasSource :PitchA1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchA1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_13_3 ;
  x3do:DEF 'PitchA1' ;
  x3do:description 'playing Pitch A1' ;
  x3do:pitch .105 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-5, :As1, :Sound_2_9_14_3 ;
  x3do:DEF 'As1TRANS' ;
  x3do:translation ( -5.625 0.1 -0.375 ) .
:BlackKey-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As1TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As1TRANS ;
  x3do:DEF 'As1' ;
  x3do:description 'play Pitch As1' .
:Sound_2_9_14_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As1TRANS ;
  x3do:hasSource :PitchAs1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchAs1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_14_3 ;
  x3do:DEF 'PitchAs1' ;
  x3do:description 'playing Pitch As1' ;
  x3do:pitch .111 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-8, :B1, :Sound_2_9_15_3 ;
  x3do:DEF 'B1TRANS' ;
  x3do:translation ( -5.5 0 0 ) .
:WhiteKey-USE-8 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B1TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B1TRANS ;
  x3do:DEF 'B1' ;
  x3do:description 'play Pitch B1' .
:Sound_2_9_15_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B1TRANS ;
  x3do:hasSource :PitchB1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchB1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_15_3 ;
  x3do:DEF 'PitchB1' ;
  x3do:description 'playing Pitch B1' ;
  x3do:pitch .118 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-9, :C1, :Sound_2_9_16_3 ;
  x3do:DEF 'C1TRANS' ;
  x3do:translation ( -5.25 0 0 ) .
:WhiteKey-USE-9 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C1TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C1TRANS ;
  x3do:DEF 'C1' ;
  x3do:description 'play Pitch C1' .
:Sound_2_9_16_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C1TRANS ;
  x3do:hasSource :PitchC1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchC1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_16_3 ;
  x3do:DEF 'PitchC1' ;
  x3do:description 'playing Pitch C1' ;
  x3do:pitch .125 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-6, :Cs1, :Sound_2_9_17_3 ;
  x3do:DEF 'Cs1TRANS' ;
  x3do:translation ( -5.125 0.1 -0.375 ) .
:BlackKey-USE-6 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs1TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs1TRANS ;
  x3do:DEF 'Cs1' ;
  x3do:description 'play Pitch Cs1' .
:Sound_2_9_17_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs1TRANS ;
  x3do:hasSource :PitchCs1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchCs1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_17_3 ;
  x3do:DEF 'PitchCs1' ;
  x3do:description 'playing Pitch Cs1' ;
  x3do:pitch .132 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-10, :D1, :Sound_2_9_18_3 ;
  x3do:DEF 'D1TRANS' ;
  x3do:translation ( -5 0 0 ) .
:WhiteKey-USE-10 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D1TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D1TRANS ;
  x3do:DEF 'D1' ;
  x3do:description 'play Pitch D1' .
:Sound_2_9_18_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D1TRANS ;
  x3do:hasSource :PitchD1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchD1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_18_3 ;
  x3do:DEF 'PitchD1' ;
  x3do:description 'playing Pitch D1' ;
  x3do:pitch .140 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-7, :Ds1, :Sound_2_9_19_3 ;
  x3do:DEF 'Ds1TRANS' ;
  x3do:translation ( -4.875 0.1 -0.375 ) .
:BlackKey-USE-7 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds1TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds1TRANS ;
  x3do:DEF 'Ds1' ;
  x3do:description 'play Pitch Ds1' .
:Sound_2_9_19_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds1TRANS ;
  x3do:hasSource :PitchDs1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchDs1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_19_3 ;
  x3do:DEF 'PitchDs1' ;
  x3do:description 'playing Pitch Ds1' ;
  x3do:pitch .149 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-11, :E1, :Sound_2_9_20_3 ;
  x3do:DEF 'E1TRANS' ;
  x3do:translation ( -4.75 0 0 ) .
:WhiteKey-USE-11 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E1TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E1TRANS ;
  x3do:DEF 'E1' ;
  x3do:description 'play Pitch E1' .
:Sound_2_9_20_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E1TRANS ;
  x3do:hasSource :PitchE1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchE1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_20_3 ;
  x3do:DEF 'PitchE1' ;
  x3do:description 'playing Pitch E1' ;
  x3do:pitch .157 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-12, :F1, :Sound_2_9_21_3 ;
  x3do:DEF 'F1TRANS' ;
  x3do:translation ( -4.5 0 0 ) .
:WhiteKey-USE-12 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F1TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F1TRANS ;
  x3do:DEF 'F1' ;
  x3do:description 'play Pitch F1' .
:Sound_2_9_21_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F1TRANS ;
  x3do:hasSource :PitchF1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchF1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_21_3 ;
  x3do:DEF 'PitchF1' ;
  x3do:description 'playing Pitch F1' ;
  x3do:pitch .167 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-8, :Fs1, :Sound_2_9_22_3 ;
  x3do:DEF 'Fs1TRANS' ;
  x3do:translation ( -4.375 0.1 -0.375 ) .
:BlackKey-USE-8 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs1TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs1TRANS ;
  x3do:DEF 'Fs1' ;
  x3do:description 'play Pitch Fs1' .
:Sound_2_9_22_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs1TRANS ;
  x3do:hasSource :PitchFs1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchFs1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_22_3 ;
  x3do:DEF 'PitchFs1' ;
  x3do:description 'playing Pitch Fs1' ;
  x3do:pitch .177 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-13, :G1, :Sound_2_9_23_3 ;
  x3do:DEF 'G1TRANS' ;
  x3do:translation ( -4.25 0 0 ) .
:WhiteKey-USE-13 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G1TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G1TRANS ;
  x3do:DEF 'G1' ;
  x3do:description 'play Pitch G1' .
:Sound_2_9_23_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G1TRANS ;
  x3do:hasSource :PitchG1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchG1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_23_3 ;
  x3do:DEF 'PitchG1' ;
  x3do:description 'playing Pitch G1' ;
  x3do:pitch .187 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs1TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-9, :Gs1, :Sound_2_9_24_3 ;
  x3do:DEF 'Gs1TRANS' ;
  x3do:translation ( -4.125 0.1 -0.375 ) .
:BlackKey-USE-9 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs1TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs1 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs1TRANS ;
  x3do:DEF 'Gs1' ;
  x3do:description 'play Pitch Gs1' .
:Sound_2_9_24_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs1TRANS ;
  x3do:hasSource :PitchGs1 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchGs1 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_24_3 ;
  x3do:DEF 'PitchGs1' ;
  x3do:description 'playing Pitch Gs1' ;
  x3do:pitch .198 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-14, :A2, :Sound_2_9_25_3 ;
  x3do:DEF 'A2TRANS' ;
  x3do:translation ( -4 0 0 ) .
:WhiteKey-USE-14 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A2TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A2TRANS ;
  x3do:DEF 'A2' ;
  x3do:description 'play Pitch A2' .
:Sound_2_9_25_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A2TRANS ;
  x3do:hasSource :PitchA2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchA2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_25_3 ;
  x3do:DEF 'PitchA2' ;
  x3do:description 'playing Pitch A2' ;
  x3do:pitch .210 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-10, :As2, :Sound_2_9_26_3 ;
  x3do:DEF 'As2TRANS' ;
  x3do:translation ( -3.875 0.1 -0.375 ) .
:BlackKey-USE-10 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As2TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As2TRANS ;
  x3do:DEF 'As2' ;
  x3do:description 'play Pitch As2' .
:Sound_2_9_26_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As2TRANS ;
  x3do:hasSource :PitchAs2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchAs2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_26_3 ;
  x3do:DEF 'PitchAs2' ;
  x3do:description 'playing Pitch As2' ;
  x3do:pitch .223 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-15, :B2, :Sound_2_9_27_3 ;
  x3do:DEF 'B2TRANS' ;
  x3do:translation ( -3.75 0 0 ) .
:WhiteKey-USE-15 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B2TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B2TRANS ;
  x3do:DEF 'B2' ;
  x3do:description 'play Pitch B2' .
:Sound_2_9_27_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B2TRANS ;
  x3do:hasSource :PitchB2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchB2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_27_3 ;
  x3do:DEF 'PitchB2' ;
  x3do:description 'playing Pitch B2' ;
  x3do:pitch .236 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-16, :C2, :Sound_2_9_28_3 ;
  x3do:DEF 'C2TRANS' ;
  x3do:translation ( -3.5 0 0 ) .
:WhiteKey-USE-16 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C2TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C2TRANS ;
  x3do:DEF 'C2' ;
  x3do:description 'play Pitch C2' .
:Sound_2_9_28_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C2TRANS ;
  x3do:hasSource :PitchC2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchC2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_28_3 ;
  x3do:DEF 'PitchC2' ;
  x3do:description 'playing Pitch C2' ;
  x3do:pitch .250 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-11, :Cs2, :Sound_2_9_29_3 ;
  x3do:DEF 'Cs2TRANS' ;
  x3do:translation ( -3.375 0.1 -0.375 ) .
:BlackKey-USE-11 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs2TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs2TRANS ;
  x3do:DEF 'Cs2' ;
  x3do:description 'play Pitch Cs2' .
:Sound_2_9_29_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs2TRANS ;
  x3do:hasSource :PitchCs2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchCs2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_29_3 ;
  x3do:DEF 'PitchCs2' ;
  x3do:description 'playing Pitch Cs2' ;
  x3do:pitch .265 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-17, :D2, :Sound_2_9_30_3 ;
  x3do:DEF 'D2TRANS' ;
  x3do:translation ( -3.25 0 0 ) .
:WhiteKey-USE-17 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D2TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D2TRANS ;
  x3do:DEF 'D2' ;
  x3do:description 'play Pitch D2' .
:Sound_2_9_30_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D2TRANS ;
  x3do:hasSource :PitchD2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchD2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_30_3 ;
  x3do:DEF 'PitchD2' ;
  x3do:description 'playing Pitch D2' ;
  x3do:pitch .281 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-12, :Ds2, :Sound_2_9_31_3 ;
  x3do:DEF 'Ds2TRANS' ;
  x3do:translation ( -3.125 0.1 -0.375 ) .
:BlackKey-USE-12 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds2TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds2TRANS ;
  x3do:DEF 'Ds2' ;
  x3do:description 'play Pitch Ds2' .
:Sound_2_9_31_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds2TRANS ;
  x3do:hasSource :PitchDs2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchDs2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_31_3 ;
  x3do:DEF 'PitchDs2' ;
  x3do:description 'playing Pitch Ds2' ;
  x3do:pitch .297 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-18, :E2, :Sound_2_9_32_3 ;
  x3do:DEF 'E2TRANS' ;
  x3do:translation ( -3 0 0 ) .
:WhiteKey-USE-18 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E2TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E2TRANS ;
  x3do:DEF 'E2' ;
  x3do:description 'play Pitch E2' .
:Sound_2_9_32_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E2TRANS ;
  x3do:hasSource :PitchE2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchE2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_32_3 ;
  x3do:DEF 'PitchE2' ;
  x3do:description 'playing Pitch E2' ;
  x3do:pitch .315 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-19, :F2, :Sound_2_9_33_3 ;
  x3do:DEF 'F2TRANS' ;
  x3do:translation ( -2.75 0 0 ) .
:WhiteKey-USE-19 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F2TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F2TRANS ;
  x3do:DEF 'F2' ;
  x3do:description 'play pitch F2' .
:Sound_2_9_33_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F2TRANS ;
  x3do:hasSource :PitchF2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchF2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_33_3 ;
  x3do:DEF 'PitchF2' ;
  x3do:description 'playing Pitch F2' ;
  x3do:pitch .334 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-13, :Fs2, :Sound_2_9_34_3 ;
  x3do:DEF 'Fs2TRANS' ;
  x3do:translation ( -2.625 0.1 -0.375 ) .
:BlackKey-USE-13 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs2TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs2TRANS ;
  x3do:DEF 'Fs2' ;
  x3do:description 'play pitch Fs2' .
:Sound_2_9_34_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs2TRANS ;
  x3do:hasSource :PitchFs2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchFs2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_34_3 ;
  x3do:DEF 'PitchFs2' ;
  x3do:description 'playing Pitch Fs2' ;
  x3do:pitch .354 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-20, :G2, :Sound_2_9_35_3 ;
  x3do:DEF 'G2TRANS' ;
  x3do:translation ( -2.5 0 0 ) .
:WhiteKey-USE-20 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G2TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G2TRANS ;
  x3do:DEF 'G2' ;
  x3do:description 'play pitch G2' .
:Sound_2_9_35_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G2TRANS ;
  x3do:hasSource :PitchG2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchG2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_35_3 ;
  x3do:DEF 'PitchG2' ;
  x3do:description 'playing Pitch G2' ;
  x3do:pitch .375 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs2TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-14, :Gs2, :Sound_2_9_36_3 ;
  x3do:DEF 'Gs2TRANS' ;
  x3do:translation ( -2.375 0.1 -0.375 ) .
:BlackKey-USE-14 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs2TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs2 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs2TRANS ;
  x3do:DEF 'Gs2' ;
  x3do:description 'play pitch Gs2' .
:Sound_2_9_36_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs2TRANS ;
  x3do:hasSource :PitchGs2 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchGs2 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_36_3 ;
  x3do:DEF 'PitchGs2' ;
  x3do:description 'playing Pitch Gs2' ;
  x3do:pitch .397 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-21, :A3, :Sound_2_9_37_3 ;
  x3do:DEF 'A3TRANS' ;
  x3do:translation ( -2.25 0 0 ) .
:WhiteKey-USE-21 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A3TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A3TRANS ;
  x3do:DEF 'A3' ;
  x3do:description 'play pitch A3' .
:Sound_2_9_37_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A3TRANS ;
  x3do:hasSource :PitchA3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchA3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_37_3 ;
  x3do:DEF 'PitchA3' ;
  x3do:description 'playing Pitch A3' ;
  x3do:pitch .420 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-15, :As3, :Sound_2_9_38_3 ;
  x3do:DEF 'As3TRANS' ;
  x3do:translation ( -2.125 0.1 -0.375 ) .
:BlackKey-USE-15 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As3TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As3TRANS ;
  x3do:DEF 'As3' ;
  x3do:description 'play pitch As3' .
:Sound_2_9_38_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As3TRANS ;
  x3do:hasSource :PitchAs3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchAs3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_38_3 ;
  x3do:DEF 'PitchAs3' ;
  x3do:description 'playing Pitch As3' ;
  x3do:pitch .445 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-22, :B3, :Sound_2_9_39_3 ;
  x3do:DEF 'B3TRANS' ;
  x3do:translation ( -2 0 0 ) .
:WhiteKey-USE-22 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B3TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B3TRANS ;
  x3do:DEF 'B3' ;
  x3do:description 'play pitch B3' .
:Sound_2_9_39_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B3TRANS ;
  x3do:hasSource :PitchB3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchB3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_39_3 ;
  x3do:DEF 'PitchB3' ;
  x3do:description 'playing Pitch B3' ;
  x3do:pitch .472 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-23, :C3, :Sound_2_9_40_3 ;
  x3do:DEF 'C3TRANS' ;
  x3do:translation ( -1.75 0 0 ) .
:WhiteKey-USE-23 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C3TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C3TRANS ;
  x3do:DEF 'C3' ;
  x3do:description 'play pitch C3' .
:Sound_2_9_40_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C3TRANS ;
  x3do:hasSource :PitchC3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchC3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_40_3 ;
  x3do:DEF 'PitchC3' ;
  x3do:description 'playing Pitch C3' ;
  x3do:pitch .500 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-16, :Cs3, :Sound_2_9_41_3 ;
  x3do:DEF 'Cs3TRANS' ;
  x3do:translation ( -1.625 0.1 -0.375 ) .
:BlackKey-USE-16 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs3TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs3TRANS ;
  x3do:DEF 'Cs3' ;
  x3do:description 'play pitch Cs3' .
:Sound_2_9_41_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs3TRANS ;
  x3do:hasSource :PitchCs3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchCs3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_41_3 ;
  x3do:DEF 'PitchCs3' ;
  x3do:description 'playing Pitch Cs3' ;
  x3do:pitch .530 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-24, :D3, :Sound_2_9_42_3 ;
  x3do:DEF 'D3TRANS' ;
  x3do:translation ( -1.5 0 0 ) .
:WhiteKey-USE-24 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D3TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D3TRANS ;
  x3do:DEF 'D3' ;
  x3do:description 'play pitch D3' .
:Sound_2_9_42_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D3TRANS ;
  x3do:hasSource :PitchD3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchD3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_42_3 ;
  x3do:DEF 'PitchD3' ;
  x3do:description 'playing Pitch D3' ;
  x3do:pitch .561 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-17, :Ds3, :Sound_2_9_43_3 ;
  x3do:DEF 'Ds3TRANS' ;
  x3do:translation ( -1.375 0.1 -0.375 ) .
:BlackKey-USE-17 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds3TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds3TRANS ;
  x3do:DEF 'Ds3' ;
  x3do:description 'play pitch Ds3' .
:Sound_2_9_43_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds3TRANS ;
  x3do:hasSource :PitchDs3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchDs3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_43_3 ;
  x3do:DEF 'PitchDs3' ;
  x3do:description 'playing Pitch Ds3' ;
  x3do:pitch .595 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-25, :E3, :Sound_2_9_44_3 ;
  x3do:DEF 'E3TRANS' ;
  x3do:translation ( -1.25 0 0 ) .
:WhiteKey-USE-25 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E3TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E3TRANS ;
  x3do:DEF 'E3' ;
  x3do:description 'play pitch E3' .
:Sound_2_9_44_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E3TRANS ;
  x3do:hasSource :PitchE3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchE3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_44_3 ;
  x3do:DEF 'PitchE3' ;
  x3do:description 'playing Pitch E3' ;
  x3do:pitch .630 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-26, :F3, :Sound_2_9_45_3 ;
  x3do:DEF 'F3TRANS' ;
  x3do:translation ( -1 0 0 ) .
:WhiteKey-USE-26 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F3TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F3TRANS ;
  x3do:DEF 'F3' ;
  x3do:description 'play pitch F3' .
:Sound_2_9_45_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F3TRANS ;
  x3do:hasSource :PitchF3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchF3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_45_3 ;
  x3do:DEF 'PitchF3' ;
  x3do:description 'playing Pitch F3' ;
  x3do:pitch .667 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-18, :Fs3, :Sound_2_9_46_3 ;
  x3do:DEF 'Fs3TRANS' ;
  x3do:translation ( -0.875 0.1 -0.375 ) .
:BlackKey-USE-18 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs3TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs3TRANS ;
  x3do:DEF 'Fs3' ;
  x3do:description 'play pitch Fs3' .
:Sound_2_9_46_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs3TRANS ;
  x3do:hasSource :PitchFs3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchFs3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_46_3 ;
  x3do:DEF 'PitchFs3' ;
  x3do:description 'playing Pitch Fs3' ;
  x3do:pitch .707 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-27, :G3, :Sound_2_9_47_3 ;
  x3do:DEF 'G3TRANS' ;
  x3do:translation ( -0.75 0 0 ) .
:WhiteKey-USE-27 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G3TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G3TRANS ;
  x3do:DEF 'G3' ;
  x3do:description 'play pitch G3' .
:Sound_2_9_47_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G3TRANS ;
  x3do:hasSource :PitchG3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchG3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_47_3 ;
  x3do:DEF 'PitchG3' ;
  x3do:description 'playing Pitch G3' ;
  x3do:pitch .749 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs3TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-19, :Gs3, :Sound_2_9_48_3 ;
  x3do:DEF 'Gs3TRANS' ;
  x3do:translation ( -0.625 0.1 -0.375 ) .
:BlackKey-USE-19 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs3TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs3 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs3TRANS ;
  x3do:DEF 'Gs3' ;
  x3do:description 'play pitch Gs3' .
:Sound_2_9_48_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs3TRANS ;
  x3do:hasSource :PitchGs3 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchGs3 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_48_3 ;
  x3do:DEF 'PitchGs3' ;
  x3do:description 'playing Pitch Gs3' ;
  x3do:pitch .794 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-28, :A4, :Sound_2_9_49_3 ;
  x3do:DEF 'A4TRANS' ;
  x3do:translation ( -0.5 0 0 ) .
:WhiteKey-USE-28 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A4TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A4TRANS ;
  x3do:DEF 'A4' ;
  x3do:description 'play pitch A4' .
:Sound_2_9_49_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A4TRANS ;
  x3do:hasSource :PitchA4 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchA4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_49_3 ;
  x3do:DEF 'PitchA4' ;
  x3do:description 'playing Pitch A4' ;
  x3do:pitch .841 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-20, :As4, :Sound_2_9_50_3 ;
  x3do:DEF 'As4TRANS' ;
  x3do:translation ( -0.375 0.1 -0.375 ) .
:BlackKey-USE-20 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As4TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As4TRANS ;
  x3do:DEF 'As4' ;
  x3do:description 'play pitch As4' .
:Sound_2_9_50_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As4TRANS ;
  x3do:hasSource :PitchAs4 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchAs4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_50_3 ;
  x3do:DEF 'PitchAs4' ;
  x3do:description 'playing Pitch As4' ;
  x3do:pitch .891 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-29, :B4, :Sound_2_9_51_3 ;
  x3do:DEF 'B4TRANS' ;
  x3do:translation ( -0.25 0 0 ) .
:WhiteKey-USE-29 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B4TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B4TRANS ;
  x3do:DEF 'B4' ;
  x3do:description 'play pitch B4' .
:Sound_2_9_51_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B4TRANS ;
  x3do:hasSource :PitchB4 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchB4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_51_3 ;
  x3do:DEF 'PitchB4' ;
  x3do:description 'playing Pitch B4' ;
  x3do:pitch .944 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-30, :C4, :Sound_2_9_52_3 ;
  x3do:DEF 'C4TRANS' .
:WhiteKey-USE-30 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C4TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C4TRANS ;
  x3do:DEF 'C4' ;
  x3do:description 'play pitch C4' .
:Sound_2_9_52_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C4TRANS ;
  x3do:hasSource :PitchC4 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchC4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_52_3 ;
  x3do:DEF 'PitchC4' ;
  x3do:description 'playing Pitch C4' ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-21, :Cs4, :Sound_2_9_53_3 ;
  x3do:DEF 'Cs4TRANS' ;
  x3do:translation ( 0.125 0.1 -0.375 ) .
:BlackKey-USE-21 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs4TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs4TRANS ;
  x3do:DEF 'Cs4' ;
  x3do:description 'play pitch Csharp4' .
:Sound_2_9_53_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs4TRANS ;
  x3do:hasSource :PitchCs4 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchCs4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_53_3 ;
  x3do:DEF 'PitchCs4' ;
  x3do:description 'playing Pitch Cs4' ;
  x3do:pitch 1.059 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-31, :D4, :Sound_2_9_54_3 ;
  x3do:DEF 'D4TRANS' ;
  x3do:translation ( 0.25 0 0 ) .
:WhiteKey-USE-31 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D4TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D4TRANS ;
  x3do:DEF 'D4' ;
  x3do:description 'play pitch D4' .
:Sound_2_9_54_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D4TRANS ;
  x3do:hasSource :PitchD4 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchD4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_54_3 ;
  x3do:DEF 'PitchD4' ;
  x3do:description 'playing Pitch D4' ;
  x3do:pitch 1.122 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-22, :Ds4, :Sound_2_9_55_3 ;
  x3do:DEF 'Ds4TRANS' ;
  x3do:translation ( 0.375 0.1 -0.375 ) .
:BlackKey-USE-22 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds4TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds4TRANS ;
  x3do:DEF 'Ds4' ;
  x3do:description 'play pitch Dsharp4' .
:Sound_2_9_55_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds4TRANS ;
  x3do:hasSource :PitchDs4 ;
  x3do:maxBack 110 ;
  x3do:maxFront 110 ;
  x3do:minBack 100 ;
  x3do:minFront 100 .
:PitchDs4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_55_3 ;
  x3do:DEF 'PitchDs4' ;
  x3do:description 'playing Pitch Ds4' ;
  x3do:pitch 1.189 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-32, :E4, :Sound_2_9_56_3 ;
  x3do:DEF 'E4TRANS' ;
  x3do:translation ( .5 0 0 ) .
:WhiteKey-USE-32 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E4TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E4TRANS ;
  x3do:DEF 'E4' ;
  x3do:description 'play pitch E4' .
:Sound_2_9_56_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E4TRANS ;
  x3do:hasSource :PitchE4 .
:PitchE4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_56_3 ;
  x3do:DEF 'PitchE4' ;
  x3do:description 'playing Pitch E4' ;
  x3do:pitch 1.260 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-33, :F4, :Sound_2_9_57_3 ;
  x3do:DEF 'F4TRANS' ;
  x3do:translation ( .75 0 0 ) .
:WhiteKey-USE-33 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F4TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F4TRANS ;
  x3do:DEF 'F4' ;
  x3do:description 'play pitch F4' .
:Sound_2_9_57_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F4TRANS ;
  x3do:hasSource :PitchF4 .
:PitchF4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_57_3 ;
  x3do:DEF 'PitchF4' ;
  x3do:description 'playing Pitch F4' ;
  x3do:pitch 1.335 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-23, :Fs4, :Sound_2_9_58_3 ;
  x3do:DEF 'Fs4TRANS' ;
  x3do:translation ( .875 .1 -0.375 ) .
:BlackKey-USE-23 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs4TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs4TRANS ;
  x3do:DEF 'Fs4' ;
  x3do:description 'play pitch Fsharp4' .
:Sound_2_9_58_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs4TRANS ;
  x3do:hasSource :PitchFs4 .
:PitchFs4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_58_3 ;
  x3do:DEF 'PitchFs4' ;
  x3do:description 'playing Pitch Fs4' ;
  x3do:pitch 1.414 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-34, :G4, :Sound_2_9_59_3 ;
  x3do:DEF 'G4TRANS' ;
  x3do:translation ( 1 0 0 ) .
:WhiteKey-USE-34 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G4TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G4TRANS ;
  x3do:DEF 'G4' ;
  x3do:description 'play pitch G4' .
:Sound_2_9_59_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G4TRANS ;
  x3do:hasSource :PitchG4 .
:PitchG4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_59_3 ;
  x3do:DEF 'PitchG4' ;
  x3do:description 'playing Pitch G4' ;
  x3do:pitch 1.498 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs4TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-24, :Gs4, :Sound_2_9_60_3 ;
  x3do:DEF 'Gs4TRANS' ;
  x3do:translation ( 1.125 .1 -0.375 ) .
:BlackKey-USE-24 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs4TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs4 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs4TRANS ;
  x3do:DEF 'Gs4' ;
  x3do:description 'play pitch Gsharp4' .
:Sound_2_9_60_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs4TRANS ;
  x3do:hasSource :PitchGs4 .
:PitchGs4 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_60_3 ;
  x3do:DEF 'PitchGs4' ;
  x3do:description 'playing Pitch Gs4' ;
  x3do:pitch 1.587 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-35, :A5, :Sound_2_9_61_3 ;
  x3do:DEF 'A5TRANS' ;
  x3do:translation ( 1.25 0 0 ) .
:WhiteKey-USE-35 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A5TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A5TRANS ;
  x3do:DEF 'A5' ;
  x3do:description 'play pitch A5' .
:Sound_2_9_61_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A5TRANS ;
  x3do:hasSource :PitchA5 .
:PitchA5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_61_3 ;
  x3do:DEF 'PitchA5' ;
  x3do:description 'playing Pitch A5' ;
  x3do:pitch 1.682 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-25, :As5, :Sound_2_9_62_3 ;
  x3do:DEF 'As5TRANS' ;
  x3do:translation ( 1.375 .1 -0.375 ) .
:BlackKey-USE-25 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As5TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As5TRANS ;
  x3do:DEF 'As5' ;
  x3do:description 'play pitch Asharp5' .
:Sound_2_9_62_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As5TRANS ;
  x3do:hasSource :PitchAs5 .
:PitchAs5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_62_3 ;
  x3do:DEF 'PitchAs5' ;
  x3do:description 'playing Pitch As5' ;
  x3do:pitch 1.782 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-36, :B5, :Sound_2_9_63_3 ;
  x3do:DEF 'B5TRANS' ;
  x3do:translation ( 1.5 0 0 ) .
:WhiteKey-USE-36 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B5TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B5TRANS ;
  x3do:DEF 'B5' ;
  x3do:description 'play pitch B5' .
:Sound_2_9_63_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B5TRANS ;
  x3do:hasSource :PitchB5 .
:PitchB5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_63_3 ;
  x3do:DEF 'PitchB5' ;
  x3do:description 'playing Pitch B5' ;
  x3do:pitch 1.888 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-37, :C5, :Sound_2_9_64_3 ;
  x3do:DEF 'C5TRANS' ;
  x3do:translation ( 1.75 0 0 ) .
:WhiteKey-USE-37 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C5TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C5TRANS ;
  x3do:DEF 'C5' ;
  x3do:description 'play pitch C5' .
:Sound_2_9_64_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C5TRANS ;
  x3do:hasSource :PitchC5 .
:PitchC5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_64_3 ;
  x3do:DEF 'PitchC5' ;
  x3do:description 'playing Pitch C5' ;
  x3do:pitch 2 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-26, :Cs5, :Sound_2_9_65_3 ;
  x3do:DEF 'Cs5TRANS' ;
  x3do:translation ( 1.875 .1 -0.375 ) .
:BlackKey-USE-26 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs5TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs5TRANS ;
  x3do:DEF 'Cs5' ;
  x3do:description 'play pitch Csharp5' .
:Sound_2_9_65_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs5TRANS ;
  x3do:hasSource :PitchCs5 .
:PitchCs5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_65_3 ;
  x3do:DEF 'PitchCs5' ;
  x3do:description 'playing Pitch Cs5' ;
  x3do:pitch 2.119 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-38, :D5, :Sound_2_9_66_3 ;
  x3do:DEF 'D5TRANS' ;
  x3do:translation ( 2 0 0 ) .
:WhiteKey-USE-38 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D5TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D5TRANS ;
  x3do:DEF 'D5' ;
  x3do:description 'play pitch D5' .
:Sound_2_9_66_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D5TRANS ;
  x3do:hasSource :PitchD5 .
:PitchD5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_66_3 ;
  x3do:DEF 'PitchD5' ;
  x3do:description 'playing Pitch D5' ;
  x3do:pitch 2.245 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-27, :Ds5, :Sound_2_9_67_3 ;
  x3do:DEF 'Ds5TRANS' ;
  x3do:translation ( 2.125 .1 -0.375 ) .
:BlackKey-USE-27 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds5TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds5TRANS ;
  x3do:DEF 'Ds5' ;
  x3do:description 'play pitch Ds5' .
:Sound_2_9_67_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds5TRANS ;
  x3do:hasSource :PitchDs5 .
:PitchDs5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_67_3 ;
  x3do:DEF 'PitchDs5' ;
  x3do:description 'playing Pitch Ds5' ;
  x3do:pitch 2.378 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-39, :E5, :Sound_2_9_68_3 ;
  x3do:DEF 'E5TRANS' ;
  x3do:translation ( 2.25 0 0 ) .
:WhiteKey-USE-39 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E5TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E5TRANS ;
  x3do:DEF 'E5' ;
  x3do:description 'play pitch E5' .
:Sound_2_9_68_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E5TRANS ;
  x3do:hasSource :PitchE5 .
:PitchE5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_68_3 ;
  x3do:DEF 'PitchE5' ;
  x3do:description 'playing Pitch E5' ;
  x3do:pitch 2.520 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-40, :F5, :Sound_2_9_69_3 ;
  x3do:DEF 'F5TRANS' ;
  x3do:translation ( 2.5 0 0 ) .
:WhiteKey-USE-40 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F5TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F5TRANS ;
  x3do:DEF 'F5' ;
  x3do:description 'play pitch F5' .
:Sound_2_9_69_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F5TRANS ;
  x3do:hasSource :PitchF5 .
:PitchF5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_69_3 ;
  x3do:DEF 'PitchF5' ;
  x3do:description 'playing Pitch F5' ;
  x3do:pitch 2.670 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-28, :Fs5, :Sound_2_9_70_3 ;
  x3do:DEF 'Fs5TRANS' ;
  x3do:translation ( 2.625 .1 -0.375 ) .
:BlackKey-USE-28 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs5TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs5TRANS ;
  x3do:DEF 'Fs5' ;
  x3do:description 'play pitch Fs5' .
:Sound_2_9_70_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs5TRANS ;
  x3do:hasSource :PitchFs5 .
:PitchFs5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_70_3 ;
  x3do:DEF 'PitchFs5' ;
  x3do:description 'playing Pitch Fs5' ;
  x3do:pitch 2.828 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-41, :G5, :Sound_2_9_71_3 ;
  x3do:DEF 'G5TRANS' ;
  x3do:translation ( 2.75 0 0 ) .
:WhiteKey-USE-41 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G5TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G5TRANS ;
  x3do:DEF 'G5' ;
  x3do:description 'play pitch G5' .
:Sound_2_9_71_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G5TRANS ;
  x3do:hasSource :PitchG5 .
:PitchG5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_71_3 ;
  x3do:DEF 'PitchG5' ;
  x3do:description 'playing Pitch G5' ;
  x3do:pitch 2.997 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs5TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-29, :Gs5, :Sound_2_9_72_3 ;
  x3do:DEF 'Gs5TRANS' ;
  x3do:translation ( 2.875 .1 -0.375 ) .
:BlackKey-USE-29 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs5TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs5 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs5TRANS ;
  x3do:DEF 'Gs5' ;
  x3do:description 'play pitch Gs5' .
:Sound_2_9_72_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs5TRANS ;
  x3do:hasSource :PitchGs5 .
:PitchGs5 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_72_3 ;
  x3do:DEF 'PitchGs5' ;
  x3do:description 'playing Pitch Gs5' ;
  x3do:pitch 3.175 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-42, :A6, :Sound_2_9_73_3 ;
  x3do:DEF 'A6TRANS' ;
  x3do:translation ( 3 0 0 ) .
:WhiteKey-USE-42 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A6TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A6TRANS ;
  x3do:DEF 'A6' ;
  x3do:description 'play pitch A6' .
:Sound_2_9_73_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A6TRANS ;
  x3do:hasSource :PitchA6 .
:PitchA6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_73_3 ;
  x3do:DEF 'PitchA6' ;
  x3do:description 'playing Pitch A6' ;
  x3do:pitch 3.364 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-30, :As6, :Sound_2_9_74_3 ;
  x3do:DEF 'As6TRANS' ;
  x3do:translation ( 3.125 .1 -0.375 ) .
:BlackKey-USE-30 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As6TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As6TRANS ;
  x3do:DEF 'As6' ;
  x3do:description 'play pitch As6' .
:Sound_2_9_74_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As6TRANS ;
  x3do:hasSource :PitchAs6 .
:PitchAs6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_74_3 ;
  x3do:DEF 'PitchAs6' ;
  x3do:description 'playing Pitch As6' ;
  x3do:pitch 3.564 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-43, :B6, :Sound_2_9_75_3 ;
  x3do:DEF 'B6TRANS' ;
  x3do:translation ( 3.25 0 0 ) .
:WhiteKey-USE-43 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B6TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B6TRANS ;
  x3do:DEF 'B6' ;
  x3do:description 'play pitch B6' .
:Sound_2_9_75_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B6TRANS ;
  x3do:hasSource :PitchB6 .
:PitchB6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_75_3 ;
  x3do:DEF 'PitchB6' ;
  x3do:description 'playing Pitch B6' ;
  x3do:pitch 3.775 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-44, :C6, :Sound_2_9_76_3 ;
  x3do:DEF 'C6TRANS' ;
  x3do:translation ( 3.5 0 0 ) .
:WhiteKey-USE-44 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C6TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C6TRANS ;
  x3do:DEF 'C6' ;
  x3do:description 'play pitch C6' .
:Sound_2_9_76_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C6TRANS ;
  x3do:hasSource :PitchC6 .
:PitchC6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_76_3 ;
  x3do:DEF 'PitchC6' ;
  x3do:description 'playing Pitch C6' ;
  x3do:pitch 4 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-31, :Cs6, :Sound_2_9_77_3 ;
  x3do:DEF 'Cs6TRANS' ;
  x3do:translation ( 3.625 .1 -0.375 ) .
:BlackKey-USE-31 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs6TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs6TRANS ;
  x3do:DEF 'Cs6' ;
  x3do:description 'play pitch Cs6' .
:Sound_2_9_77_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs6TRANS ;
  x3do:hasSource :PitchCs6 .
:PitchCs6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_77_3 ;
  x3do:DEF 'PitchCs6' ;
  x3do:description 'playing Pitch Cs6' ;
  x3do:pitch 4.238 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-45, :D6, :Sound_2_9_78_3 ;
  x3do:DEF 'D6TRANS' ;
  x3do:translation ( 3.75 0 0 ) .
:WhiteKey-USE-45 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D6TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D6TRANS ;
  x3do:DEF 'D6' ;
  x3do:description 'play pitch D6' .
:Sound_2_9_78_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D6TRANS ;
  x3do:hasSource :PitchD6 .
:PitchD6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_78_3 ;
  x3do:DEF 'PitchD6' ;
  x3do:description 'playing Pitch D6' ;
  x3do:pitch 4.49 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-32, :Ds6, :Sound_2_9_79_3 ;
  x3do:DEF 'Ds6TRANS' ;
  x3do:translation ( 3.875 .1 -0.375 ) .
:BlackKey-USE-32 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds6TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds6TRANS ;
  x3do:DEF 'Ds6' ;
  x3do:description 'play pitch Ds6' .
:Sound_2_9_79_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds6TRANS ;
  x3do:hasSource :PitchDs6 .
:PitchDs6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_79_3 ;
  x3do:DEF 'PitchDs6' ;
  x3do:description 'playing Pitch Ds6' ;
  x3do:pitch 4.757 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-46, :E6, :Sound_2_9_80_3 ;
  x3do:DEF 'E6TRANS' ;
  x3do:translation ( 4 0 0 ) .
:WhiteKey-USE-46 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E6TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E6TRANS ;
  x3do:DEF 'E6' ;
  x3do:description 'play pitch E6' .
:Sound_2_9_80_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E6TRANS ;
  x3do:hasSource :PitchE6 .
:PitchE6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_80_3 ;
  x3do:DEF 'PitchE6' ;
  x3do:description 'playing Pitch E6' ;
  x3do:pitch 5.04 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-47, :F6, :Sound_2_9_81_3 ;
  x3do:DEF 'F6TRANS' ;
  x3do:translation ( 4.25 0 0 ) .
:WhiteKey-USE-47 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F6TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F6TRANS ;
  x3do:DEF 'F6' ;
  x3do:description 'play pitch F6' .
:Sound_2_9_81_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F6TRANS ;
  x3do:hasSource :PitchF6 .
:PitchF6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_81_3 ;
  x3do:DEF 'PitchF6' ;
  x3do:description 'playing Pitch F6' ;
  x3do:pitch 5.339 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-33, :Fs6, :Sound_2_9_82_3 ;
  x3do:DEF 'Fs6TRANS' ;
  x3do:translation ( 4.375 .1 -0.375 ) .
:BlackKey-USE-33 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs6TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs6TRANS ;
  x3do:DEF 'Fs6' ;
  x3do:description 'play pitch Fs6' .
:Sound_2_9_82_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs6TRANS ;
  x3do:hasSource :PitchFs6 .
:PitchFs6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_82_3 ;
  x3do:DEF 'PitchFs6' ;
  x3do:description 'playing Pitch Fs6' ;
  x3do:pitch 5.657 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-48, :G6, :Sound_2_9_83_3 ;
  x3do:DEF 'G6TRANS' ;
  x3do:translation ( 4.5 0 0 ) .
:WhiteKey-USE-48 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G6TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G6TRANS ;
  x3do:DEF 'G6' ;
  x3do:description 'play pitch G6' .
:Sound_2_9_83_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G6TRANS ;
  x3do:hasSource :PitchG6 .
:PitchG6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_83_3 ;
  x3do:DEF 'PitchG6' ;
  x3do:description 'playing Pitch G6' ;
  x3do:pitch 5.993 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs6TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-34, :Gs6, :Sound_2_9_84_3 ;
  x3do:DEF 'Gs6TRANS' ;
  x3do:translation ( 4.625 .1 -0.375 ) .
:BlackKey-USE-34 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs6TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs6 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs6TRANS ;
  x3do:DEF 'Gs6' ;
  x3do:description 'play pitch Gs6' .
:Sound_2_9_84_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs6TRANS ;
  x3do:hasSource :PitchGs6 .
:PitchGs6 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_84_3 ;
  x3do:DEF 'PitchGs6' ;
  x3do:description 'playing Pitch Gs6' ;
  x3do:pitch 6.35 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-49, :A7, :Sound_2_9_85_3 ;
  x3do:DEF 'A7TRANS' ;
  x3do:translation ( 4.75 0 0 ) .
:WhiteKey-USE-49 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A7TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A7TRANS ;
  x3do:DEF 'A7' ;
  x3do:description 'play pitch A7' .
:Sound_2_9_85_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A7TRANS ;
  x3do:hasSource :PitchA7 .
:PitchA7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_85_3 ;
  x3do:DEF 'PitchA7' ;
  x3do:description 'playing Pitch A7' ;
  x3do:pitch 6.727 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-35, :As7, :Sound_2_9_86_3 ;
  x3do:DEF 'As7TRANS' ;
  x3do:translation ( 4.875 .1 -0.375 ) .
:BlackKey-USE-35 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As7TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As7TRANS ;
  x3do:DEF 'As7' ;
  x3do:description 'play pitch As7' .
:Sound_2_9_86_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As7TRANS ;
  x3do:hasSource :PitchAs7 .
:PitchAs7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_86_3 ;
  x3do:DEF 'PitchAs7' ;
  x3do:description 'playing Pitch As7' ;
  x3do:pitch 7.127 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-50, :B7, :Sound_2_9_87_3 ;
  x3do:DEF 'B7TRANS' ;
  x3do:translation ( 5 0 0 ) .
:WhiteKey-USE-50 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B7TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B7TRANS ;
  x3do:DEF 'B7' ;
  x3do:description 'play pitch B7' .
:Sound_2_9_87_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B7TRANS ;
  x3do:hasSource :PitchB7 .
:PitchB7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_87_3 ;
  x3do:DEF 'PitchB7' ;
  x3do:description 'playing Pitch B7' ;
  x3do:pitch 7.551 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-51, :C7, :Sound_2_9_88_3 ;
  x3do:DEF 'C7TRANS' ;
  x3do:translation ( 5.25 0 0 ) .
:WhiteKey-USE-51 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C7TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C7TRANS ;
  x3do:DEF 'C7' ;
  x3do:description 'play pitch C7' .
:Sound_2_9_88_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C7TRANS ;
  x3do:hasSource :PitchC7 .
:PitchC7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_88_3 ;
  x3do:DEF 'PitchC7' ;
  x3do:description 'playing Pitch C7' ;
  x3do:pitch 8 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Cs7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-36, :Cs7, :Sound_2_9_89_3 ;
  x3do:DEF 'Cs7TRANS' ;
  x3do:translation ( 5.375 .1 -0.375 ) .
:BlackKey-USE-36 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Cs7TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Cs7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Cs7TRANS ;
  x3do:DEF 'Cs7' ;
  x3do:description 'play pitch Cs7' .
:Sound_2_9_89_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Cs7TRANS ;
  x3do:hasSource :PitchCs7 .
:PitchCs7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_89_3 ;
  x3do:DEF 'PitchCs7' ;
  x3do:description 'playing Pitch Cs7' ;
  x3do:pitch 8.476 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:D7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-52, :D7, :Sound_2_9_90_3 ;
  x3do:DEF 'D7TRANS' ;
  x3do:translation ( 5.5 0 0 ) .
:WhiteKey-USE-52 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :D7TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:D7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :D7TRANS ;
  x3do:DEF 'D7' ;
  x3do:description 'play pitch D7' .
:Sound_2_9_90_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :D7TRANS ;
  x3do:hasSource :PitchD7 .
:PitchD7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_90_3 ;
  x3do:DEF 'PitchD7' ;
  x3do:description 'playing Pitch D7' ;
  x3do:pitch 8.980 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Ds7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-37, :Ds7, :Sound_2_9_91_3 ;
  x3do:DEF 'Ds7TRANS' ;
  x3do:translation ( 5.625 .1 -0.375 ) .
:BlackKey-USE-37 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Ds7TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Ds7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Ds7TRANS ;
  x3do:DEF 'Ds7' ;
  x3do:description 'play pitch Ds7' .
:Sound_2_9_91_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Ds7TRANS ;
  x3do:hasSource :PitchDs7 .
:PitchDs7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_91_3 ;
  x3do:DEF 'PitchDs7' ;
  x3do:description 'playing Pitch Ds7' ;
  x3do:pitch 9.514 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:E7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-53, :E7, :Sound_2_9_92_3 ;
  x3do:DEF 'E7TRANS' ;
  x3do:translation ( 5.75 0 0 ) .
:WhiteKey-USE-53 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :E7TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:E7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :E7TRANS ;
  x3do:DEF 'E7' ;
  x3do:description 'play pitch E7' .
:Sound_2_9_92_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :E7TRANS ;
  x3do:hasSource :PitchE7 .
:PitchE7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_92_3 ;
  x3do:DEF 'PitchE7' ;
  x3do:description 'playing Pitch E7' ;
  x3do:pitch 10.079 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:F7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-54, :F7, :Sound_2_9_93_3 ;
  x3do:DEF 'F7TRANS' ;
  x3do:translation ( 6 0 0 ) .
:WhiteKey-USE-54 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :F7TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:F7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :F7TRANS ;
  x3do:DEF 'F7' ;
  x3do:description 'play pitch F7' .
:Sound_2_9_93_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :F7TRANS ;
  x3do:hasSource :PitchF7 .
:PitchF7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_93_3 ;
  x3do:DEF 'PitchF7' ;
  x3do:description 'playing Pitch F7' ;
  x3do:pitch 10.679 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Fs7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-38, :Fs7, :Sound_2_9_94_3 ;
  x3do:DEF 'Fs7TRANS' ;
  x3do:translation ( 6.125 .1 -0.375 ) .
:BlackKey-USE-38 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Fs7TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Fs7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Fs7TRANS ;
  x3do:DEF 'Fs7' ;
  x3do:description 'play pitch Fs7' .
:Sound_2_9_94_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Fs7TRANS ;
  x3do:hasSource :PitchFs7 .
:PitchFs7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_94_3 ;
  x3do:DEF 'PitchFs7' ;
  x3do:description 'playing Pitch Fs7' ;
  x3do:pitch 11.314 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:G7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-55, :G7, :Sound_2_9_95_3 ;
  x3do:DEF 'G7TRANS' ;
  x3do:translation ( 6.25 0 0 ) .
:WhiteKey-USE-55 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :G7TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:G7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :G7TRANS ;
  x3do:DEF 'G7' ;
  x3do:description 'play pitch G7' .
:Sound_2_9_95_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :G7TRANS ;
  x3do:hasSource :PitchG7 .
:PitchG7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_95_3 ;
  x3do:DEF 'PitchG7' ;
  x3do:description 'playing Pitch G7' ;
  x3do:pitch 11.986 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Gs7TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-39, :Gs7, :Sound_2_9_96_3 ;
  x3do:DEF 'Gs7TRANS' ;
  x3do:translation ( 6.375 .1 -0.375 ) .
:BlackKey-USE-39 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Gs7TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:Gs7 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Gs7TRANS ;
  x3do:DEF 'Gs7' ;
  x3do:description 'play pitch Gs7' .
:Sound_2_9_96_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :Gs7TRANS ;
  x3do:hasSource :PitchGs7 .
:PitchGs7 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_96_3 ;
  x3do:DEF 'PitchGs7' ;
  x3do:description 'playing Pitch Gs7' ;
  x3do:pitch 12.699 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:A8TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-56, :A8, :Sound_2_9_97_3 ;
  x3do:DEF 'A8TRANS' ;
  x3do:translation ( 6.5 0 0 ) .
:WhiteKey-USE-56 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :A8TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:A8 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :A8TRANS ;
  x3do:DEF 'A8' ;
  x3do:description 'play pitch A8' .
:Sound_2_9_97_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :A8TRANS ;
  x3do:hasSource :PitchA8 .
:PitchA8 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_97_3 ;
  x3do:DEF 'PitchA8' ;
  x3do:description 'playing Pitch A8' ;
  x3do:pitch 13.454 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:As8TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :BlackKey-USE-40, :As8, :Sound_2_9_98_3 ;
  x3do:DEF 'As8TRANS' ;
  x3do:translation ( 6.625 .1 -0.375 ) .
:BlackKey-USE-40 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :As8TRANS ;
  owl:sameAs :BlackKey . # DEF matching this USE
:As8 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :As8TRANS ;
  x3do:DEF 'As8' ;
  x3do:description 'play pitch As8' .
:Sound_2_9_98_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :As8TRANS ;
  x3do:hasSource :PitchAs8 .
:PitchAs8 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_98_3 ;
  x3do:DEF 'PitchAs8' ;
  x3do:description 'playing Pitch As8' ;
  x3do:pitch 14.254 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:B8TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-57, :B8, :Sound_2_9_99_3 ;
  x3do:DEF 'B8TRANS' ;
  x3do:translation ( 6.75 0 0 ) .
:WhiteKey-USE-57 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :B8TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:B8 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :B8TRANS ;
  x3do:DEF 'B8' ;
  x3do:description 'play pitch B8' .
:Sound_2_9_99_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :B8TRANS ;
  x3do:hasSource :PitchB8 .
:PitchB8 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_99_3 ;
  x3do:DEF 'PitchB8' ;
  x3do:description 'playing Pitch B8' ;
  x3do:pitch 15.102 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:C8TRANS a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :WhiteKey-USE-58, :C8, :Sound_2_9_100_3 ;
  x3do:DEF 'C8TRANS' ;
  x3do:translation ( 7 0 0 ) .
:WhiteKey-USE-58 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :C8TRANS ;
  owl:sameAs :WhiteKey . # DEF matching this USE
:C8 a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :C8TRANS ;
  x3do:DEF 'C8' ;
  x3do:description 'play pitch C8' .
:Sound_2_9_100_3 a owl:NamedIndividual, x3do:Sound ;
  x3do:hasParent :C8TRANS ;
  x3do:hasSource :PitchC8 .
:PitchC8 a owl:NamedIndividual, x3do:AudioClip ;
  x3do:hasParent :Sound_2_9_100_3 ;
  x3do:DEF 'PitchC8' ;
  x3do:description 'playing Pitch C8' ;
  x3do:pitch 16 ;
  x3do:url '"tone1.wav" "../../Vrml2Sourcebook/Chapter24-Sound/tone1.wav" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/tone1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter24-Sound/tone1.wav"' .
:Transform_2_9_101 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasChildren :Shape_2_9_101_1, :StartPlaying ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 1 -2 ) .
:Shape_2_9_101_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_9_101 ;
  x3do:hasGeometry :Sphere_2_9_101_1_1 ;
  x3do:hasAppearance :Appearance_2_9_101_1_2 .
:Sphere_2_9_101_1_1 a owl:NamedIndividual, x3do:Sphere ;
  x3do:hasParent :Shape_2_9_101_1 .
:Appearance_2_9_101_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_9_101_1 ;
  x3do:hasMaterial :Material_2_9_101_1_2_1 .
:Material_2_9_101_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_9_101_1_2 ;
  x3do:diffuseColor ( 1 0 0 ) .
:StartPlaying a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Transform_2_9_101 ;
  x3do:DEF 'StartPlaying' ;
  x3do:description 'Touch to Activate Player Piano Script' .
:ClockA0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA0' .
:ClockAs0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs0' .
:ClockB0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB0' .
:ClockC0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC0' .
:ClockCs0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs0' .
:ClockD0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD0' .
:ClockDs0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs0' .
:ClockE0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE0' .
:ClockF0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF0' .
:ClockFs0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs0' .
:ClockG0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG0' .
:ClockGs0 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs0' .
:ClockAs1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs1' .
:ClockB1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB1' .
:ClockC1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC1' .
:ClockCs1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs1' .
:ClockD1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD1' .
:ClockDs1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs1' .
:ClockE1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE1' .
:ClockF1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF1' .
:ClockFs1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs1' .
:ClockG1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG1' .
:ClockGs1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs1' .
:ClockA1 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA1' .
:ClockA2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA2' .
:ClockAs2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs2' .
:ClockB2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB2' .
:ClockC2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC2' .
:ClockCs2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs2' .
:ClockD2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD2' .
:ClockDs2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs2' .
:ClockE2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE2' .
:ClockF2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF2' .
:ClockFs2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs2' .
:ClockG2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG2' .
:ClockGs2 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs2' .
:ClockA3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA3' .
:ClockAs3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs3' .
:ClockB3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB3' .
:ClockC3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC3' .
:ClockCs3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs3' .
:ClockD3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD3' .
:ClockDs3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs3' .
:ClockE3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE3' .
:ClockF3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF3' .
:ClockFs3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs3' .
:ClockG3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG3' .
:ClockGs3 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs3' .
:ClockA4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA4' .
:ClockAs4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs4' .
:ClockB4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB4' .
:ClockC4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC4' .
:ClockCs4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs4' .
:ClockD4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD4' .
:ClockDs4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs4' .
:ClockE4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE4' .
:ClockF4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF4' .
:ClockFs4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs4' .
:ClockG4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG4' .
:ClockGs4 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs4' .
:ClockA5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA5' .
:ClockAs5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs5' .
:ClockB5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB5' .
:ClockC5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC5' .
:ClockCs5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs5' .
:ClockD5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD5' .
:ClockDs5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs5' .
:ClockE5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE5' .
:ClockF5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF5' .
:ClockFs5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs5' .
:ClockG5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG5' .
:ClockGs5 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs5' .
:ClockA6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA6' .
:ClockAs6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs6' .
:ClockB6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB6' .
:ClockC6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC6' .
:ClockCs6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs6' .
:ClockD6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD6' .
:ClockDs6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs6' .
:ClockE6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE6' .
:ClockF6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF6' .
:ClockFs6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs6' .
:ClockG6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG6' .
:ClockGs6 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs6' .
:ClockA7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA7' .
:ClockAs7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs7' .
:ClockB7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB7' .
:ClockC7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC7' .
:ClockCs7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockCs7' .
:ClockD7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockD7' .
:ClockDs7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockDs7' .
:ClockE7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockE7' .
:ClockF7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockF7' .
:ClockFs7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockFs7' .
:ClockG7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockG7' .
:ClockGs7 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockGs7' .
:ClockA8 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockA8' .
:ClockAs8 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockAs8' .
:ClockB8 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockB8' .
:ClockC8 a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'ClockC8' .
:A0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A0Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -7.5 -0.03 0 -7.5 0 0 ) .
:As0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As0Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -7.375 0 -0.375 -7.375 0.1 -0.375 ) .
:B0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B0Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -7.25 -0.03 0 -7.25 0 0 ) .
:C0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C0Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -7 -0.03 0 -7 0 0 ) .
:Cs0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs0Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -6.875 0 -0.375 -6.875 0.1 -0.375 ) .
:D0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D0Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -6.75 -0.03 0 -6.75 0 0 ) .
:Ds0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds0Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -6.625 0 -0.375 -6.625 0.1 -0.375 ) .
:E0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E0Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -6.5 -0.03 0 -6.5 0 0 ) .
:F0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F0Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -6.25 -0.03 0 -6.25 0 0 ) .
:Fs0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs0Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -6.125 0 -0.375 -6.125 0.1 -0.375 ) .
:G0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G0Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -6 -0.03 0 -6 0 0 ) .
:Gs0Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs0Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -5.875 0 -0.375 -5.875 .1 -0.375 ) .
:A1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A1Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -5.75 -0.03 0 -5.75 0 0 ) .
:As1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As1Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -5.65 0 -0.375 -5.625 0.1 -0.375 ) .
:B1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B1Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -5.5 -0.03 0 -5.5 0 0 ) .
:C1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C1Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -5.25 -0.03 0 -5.25 0 0 ) .
:Cs1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs1Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -5.125 0 -0.375 -5.125 0.1 -0.375 ) .
:D1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D1Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -5 -0.03 0 -5 0 0 ) .
:Ds1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds1Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -4.875 0 -0.375 -4.875 0.1 -0.375 ) .
:E1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E1Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -4.75 -0.03 0 -4.75 0 0 ) .
:F1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F1Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -4.5 -0.03 0 -4.5 0 0 ) .
:Fs1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs1Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -4.375 0 -0.375 -4.375 0.1 -0.375 ) .
:G1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G1Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -4.25 -0.03 0 -4.25 0 0 ) .
:Gs1Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs1Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -4.125 0 -0.375 -4.125 .1 -0.375 ) .
:A2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A2Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -4 -0.03 0 -4 0 0 ) .
:As2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As2Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -3.875 0 -0.3750 -3.875 .1 -0.375 ) .
:B2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B2Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -3.75 -0.03 0 -3.75 0 0 ) .
:C2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C2Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -3.5 -0.03 0 -3.5 0 0 ) .
:Cs2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs2Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -3.375 0 -0.375 -3.375 0.1 -0.375 ) .
:D2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D2Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -3.25 -0.03 0 -3.25 0 0 ) .
:Ds2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds2Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -3.125 0 -0.375 -3.125 0.1 -0.375 ) .
:E2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E2Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -3 -0.03 0 -3 0 0 ) .
:F2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F2Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -2.75 -0.03 0 -2.75 0 0 ) .
:Fs2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs2Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -2.625 0 -0.375 -2.625 0.1 -0.375 ) .
:G2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G2Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -2.5 -0.03 0 -2.5 0 0 ) .
:Gs2Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs2Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -2.375 0 -0.375 -2.375 .1 -0.375 ) .
:A3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A3Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -2.25 -0.03 0 -2.25 0 0 ) .
:As3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As3Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -2.125 0 -0.3750 -2.125 .1 -0.375 ) .
:B3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B3Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -2 -0.03 0 -2 0 0 ) .
:C3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C3Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -1.75 -0.03 0 -1.75 0 0 ) .
:Cs3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs3Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -1.625 0 -0.375 -1.625 0.1 -0.375 ) .
:D3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D3Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -1.5 -0.03 0 -1.5 0 0 ) .
:Ds3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds3Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -1.375 0 -0.375 -1.375 0.1 -0.375 ) .
:E3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E3Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -1.25 -0.03 0 -1.25 0 0 ) .
:F3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F3Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -1 -0.03 0 -1 0 0 ) .
:Fs3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs3Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -0.875 0 -0.375 -0.875 0.1 -0.375 ) .
:G3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G3Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -0.75 -0.03 0 -0.75 0 0 ) .
:Gs3Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs3Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -0.625 0 -0.375 -0.625 .1 -0.375 ) .
:A4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A4Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -0.5 -0.03 0 -0.5 0 0 ) .
:As4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As4Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( -0.375 0 -0.3750 -0.375 .1 -0.375 ) .
:B4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B4Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( -0.25 -0.03 0 -0.25 0 0 ) .
:C4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C4Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 0 -0.03 0 0 0 0 ) .
:Cs4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs4Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( .125 0 -0.375 0.125 0.1 -0.375 ) .
:D4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D4Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 0.25 -0.03 0 0.25 0 0 ) .
:Ds4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds4Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( .375 0 -0.375 0.375 0.1 -0.375 ) .
:E4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E4Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 0.5 -0.03 0 0.5 0 0 ) .
:F4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F4Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( .75 -0.03 0 .75 0 0 ) .
:Fs4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs4Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 0.875 0 -0.375 .875 0.1 -0.375 ) .
:G4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G4Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 1 -0.03 0 1 0 0 ) .
:Gs4Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs4Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 1.125 0 -0.375 1.125 .1 -0.375 ) .
:A5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A5Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 1.25 -0.03 0 1.25 0 0 ) .
:As5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As5Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 1.375 0 -0.3750 1.375 .1 -0.375 ) .
:B5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B5Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 1.5 -0.03 0 1.5 0 0 ) .
:C5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C5Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 1.75 -0.03 0 1.75 0 0 ) .
:Cs5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs5Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 1.875 0 -0.375 1.875 0.1 -0.375 ) .
:D5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D5Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 2 -0.03 0 2 0 0 ) .
:Ds5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds5Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 2.125 0 -0.375 2.125 0.1 -0.375 ) .
:E5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E5Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 2.25 -0.03 0 2.25 0 0 ) .
:F5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F5Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 2.5 -0.03 0 2.5 0 0 ) .
:Fs5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs5Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 2.625 0 -0.375 2.625 0.1 -0.375 ) .
:G5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G5Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 2.75 -0.03 0 2.75 0 0 ) .
:Gs5Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs5Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 2.875 0 -0.375 2.875 .1 -0.375 ) .
:A6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A6Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 3 -0.03 0 3 0 0 ) .
:As6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As6Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 3.125 0 -0.3750 3.125 .1 -0.375 ) .
:B6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B6Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 3.25 -0.03 0 3.25 0 0 ) .
:C6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C6Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 3.5 -0.03 0 3.5 0 0 ) .
:Cs6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs6Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 3.625 0 -0.375 3.625 0.1 -0.375 ) .
:D6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D6Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 3.75 -0.03 0 3.75 0 0 ) .
:Ds6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds6Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 3.875 0 -0.375 3.875 0.1 -0.375 ) .
:E6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E6Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 4 -0.03 0 4 0 0 ) .
:F6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F6Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 4.25 -0.03 0 4.25 0 0 ) .
:Fs6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs6Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 4.375 0 -0.375 4.375 0.1 -0.375 ) .
:G6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G6Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 4.5 -0.03 0 4.5 0 0 ) .
:Gs6Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs6Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 4.625 0 -0.375 4.625 .1 -0.375 ) .
:A7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A7Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 4.75 -0.03 0 4.75 0 0 ) .
:As7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As7Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 4.875 0 -0.3750 4.875 .1 -0.375 ) .
:B7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B7Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 5 -0.03 0 5 0 0 ) .
:C7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C7Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 5.25 -0.03 0 5.25 0 0 ) .
:Cs7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Cs7Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 5.375 0 -0.375 5.375 0.1 -0.375 ) .
:D7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'D7Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 5.5 -0.03 0 5.5 0 0 ) .
:Ds7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Ds7Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 5.625 0 -0.375 5.625 0.1 -0.375 ) .
:E7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'E7Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 5.75 -0.03 0 5.75 0 0 ) .
:F7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'F7Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 6 -0.03 0 6 0 0 ) .
:Fs7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Fs7Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 6.125 0 -0.375 6.125 0.1 -0.375 ) .
:G7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'G7Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 6.25 -0.03 0 6.25 0 0 ) .
:Gs7Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'Gs7Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 6.375 0 -0.375 6.375 .1 -0.375 ) .
:A8Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'A8Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 6.5 -0.03 0 6.5 0 0 ) .
:As8Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'As8Mover' ;
  x3do:key ( 0.0 .99 ) ;
  x3do:keyValue ( 6.625 0 -0.3750 6.625 .1 -0.375 ) .
:B8Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'B8Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 6.75 -0.03 0 6.75 0 0 ) .
:C8Mover a owl:NamedIndividual, x3do:PositionInterpolator ;
  x3do:hasParent :Group_2_9 ;
  x3do:DEF 'C8Mover' ;
  x3do:key ( 0 .99 ) ;
  x3do:keyValue ( 7 -0.03 0 7 0 0 ) .
:PlayerPianoScript a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :Group_2_9 ;
  x3do:hasField :field_2_9_302_1, :field_2_9_302_2, :field_2_9_302_3, :field_2_9_302_4, :field_2_9_302_5, :field_2_9_302_6, :field_2_9_302_7, :field_2_9_302_8, :field_2_9_302_9, :field_2_9_302_10, :field_2_9_302_11, :field_2_9_302_12, :field_2_9_302_13, :field_2_9_302_14, :field_2_9_302_15, :field_2_9_302_16, :field_2_9_302_17, :field_2_9_302_18, :field_2_9_302_19, :field_2_9_302_20, :field_2_9_302_21, :field_2_9_302_22, :field_2_9_302_23, :field_2_9_302_24, :field_2_9_302_25, :field_2_9_302_26, :field_2_9_302_27, :field_2_9_302_28, :field_2_9_302_29, :field_2_9_302_30, :field_2_9_302_31, :field_2_9_302_32, :field_2_9_302_33, :field_2_9_302_34, :field_2_9_302_35, :field_2_9_302_36, :field_2_9_302_37, :field_2_9_302_38, :field_2_9_302_39, :field_2_9_302_40, :field_2_9_302_41, :field_2_9_302_42, :field_2_9_302_43, :field_2_9_302_44, :field_2_9_302_45, :field_2_9_302_46, :field_2_9_302_47, :field_2_9_302_48, :field_2_9_302_49, :field_2_9_302_50, :field_2_9_302_51, :field_2_9_302_52, :field_2_9_302_53, :field_2_9_302_54, :field_2_9_302_55, :field_2_9_302_56, :field_2_9_302_57, :field_2_9_302_58, :field_2_9_302_59, :field_2_9_302_60, :field_2_9_302_61, :field_2_9_302_62, :field_2_9_302_63, :field_2_9_302_64, :field_2_9_302_65, :field_2_9_302_66, :field_2_9_302_67, :field_2_9_302_68, :field_2_9_302_69, :field_2_9_302_70, :field_2_9_302_71, :field_2_9_302_72, :field_2_9_302_73, :field_2_9_302_74, :field_2_9_302_75, :field_2_9_302_76, :field_2_9_302_77, :field_2_9_302_78, :field_2_9_302_79, :field_2_9_302_80, :field_2_9_302_81, :field_2_9_302_82, :field_2_9_302_83, :field_2_9_302_84, :field_2_9_302_85, :field_2_9_302_86, :field_2_9_302_87, :field_2_9_302_88, :field_2_9_302_89, :field_2_9_302_90, :field_2_9_302_91, :field_2_9_302_92, :field_2_9_302_93, :field_2_9_302_94, :field_2_9_302_95, :field_2_9_302_96, :field_2_9_302_97, :field_2_9_302_98, :field_2_9_302_99, :field_2_9_302_100, :field_2_9_302_101 ;
  x3do:DEF 'PlayerPianoScript' ;
  x3do:sourceCode """
ecmascript:

function playScriptedNotes(time, eventTime){

    playC4=eventTime;
  
    playD4=eventTime+1.1;

    playE4=eventTime+2.2;

    playF4=eventTime+3.3;

    playG4=eventTime+4.4;

    playA5=eventTime+5.5;   
}
function hideUnscriptedKeyWarnings ()
{
	playA0=0;
	playAs0=0;
	playB0=0;
	playC0=0;
	playCs0=0;
	playD0=0;
	playDs0=0;
	playE0=0;
	playF0=0;
	playFs0=0;
	playG0=0;
	playGs0=0;
	playA1=0;
	playAs1=0;
	playB1=0;
	playC1=0;
	playCs1=0;
	playD1=0;
	playDs1=0;
	playE1=0;
	playF1=0;
	playFs1=0;
	playG1=0;
	playGs1=0;
	playA2=0;
	playAs2=0;
	playB2=0;
	playC2=0;
	playCs2=0;
	playD2=0;
	playDs2=0;
	playE2=0;
	playF2=0;
	playFs2=0;
	playG2=0;
	playGs2=0;
	playA3=0;
	playAs3=0;
	playB3=0;
	playC3=0;
	playCs3=0;
	playD3=0;
	playDs3=0;
	playE3=0;
	playF3=0;
	playFs3=0;
	playG3=0;
	playGs3=0;
	playA4=0;
	playAs4=0;
	playB4=0;
	playC4=0;
	playCs4=0;
	playD4=0;
	playDs4=0;
	playE4=0;
	playF4=0;
	playFs4=0;
	playG4=0;
	playGs4=0;
	playA5=0;
	playAs5=0;
	playB5=0;
	playC5=0;
	playCs5=0;
	playD5=0;
	playDs5=0;
	playE5=0;
	playF5=0;
	playFs5=0;
	playG5=0;
	playGs5=0;
	playA6=0;
	playAs6=0;
	playB6=0;
	playC6=0;
	playCs6=0;
	playD6=0;
	playDs6=0;
	playE6=0;
	playF6=0;
	playFs6=0;
	playG6=0;
	playGs6=0;
	playA7=0;
	playAs7=0;
	playB7=0;
	playC7=0;
	playCs7=0;
	playD7=0;
	playDs7=0;
	playE7=0;
	playF7=0;
	playFs7=0;
	playG7=0;
	playGs7=0;
	playA8=0;
	playAs8=0;
	playB8=0;
	playC8=0;
}
""" .
:field_2_9_302_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'playScriptedNotes' ;
  x3do:type 'SFTime' .
:field_2_9_302_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA0' ;
  x3do:type 'SFTime' .
:field_2_9_302_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs0' ;
  x3do:type 'SFTime' .
:field_2_9_302_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB0' ;
  x3do:type 'SFTime' .
:field_2_9_302_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC0' ;
  x3do:type 'SFTime' .
:field_2_9_302_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs0' ;
  x3do:type 'SFTime' .
:field_2_9_302_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD0' ;
  x3do:type 'SFTime' .
:field_2_9_302_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs0' ;
  x3do:type 'SFTime' .
:field_2_9_302_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE0' ;
  x3do:type 'SFTime' .
:field_2_9_302_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF0' ;
  x3do:type 'SFTime' .
:field_2_9_302_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs0' ;
  x3do:type 'SFTime' .
:field_2_9_302_12 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG0' ;
  x3do:type 'SFTime' .
:field_2_9_302_13 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs0' ;
  x3do:type 'SFTime' .
:field_2_9_302_14 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA1' ;
  x3do:type 'SFTime' .
:field_2_9_302_15 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs1' ;
  x3do:type 'SFTime' .
:field_2_9_302_16 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB1' ;
  x3do:type 'SFTime' .
:field_2_9_302_17 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC1' ;
  x3do:type 'SFTime' .
:field_2_9_302_18 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs1' ;
  x3do:type 'SFTime' .
:field_2_9_302_19 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD1' ;
  x3do:type 'SFTime' .
:field_2_9_302_20 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs1' ;
  x3do:type 'SFTime' .
:field_2_9_302_21 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE1' ;
  x3do:type 'SFTime' .
:field_2_9_302_22 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF1' ;
  x3do:type 'SFTime' .
:field_2_9_302_23 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs1' ;
  x3do:type 'SFTime' .
:field_2_9_302_24 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG1' ;
  x3do:type 'SFTime' .
:field_2_9_302_25 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs1' ;
  x3do:type 'SFTime' .
:field_2_9_302_26 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA2' ;
  x3do:type 'SFTime' .
:field_2_9_302_27 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs2' ;
  x3do:type 'SFTime' .
:field_2_9_302_28 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB2' ;
  x3do:type 'SFTime' .
:field_2_9_302_29 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC2' ;
  x3do:type 'SFTime' .
:field_2_9_302_30 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs2' ;
  x3do:type 'SFTime' .
:field_2_9_302_31 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD2' ;
  x3do:type 'SFTime' .
:field_2_9_302_32 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs2' ;
  x3do:type 'SFTime' .
:field_2_9_302_33 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE2' ;
  x3do:type 'SFTime' .
:field_2_9_302_34 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF2' ;
  x3do:type 'SFTime' .
:field_2_9_302_35 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs2' ;
  x3do:type 'SFTime' .
:field_2_9_302_36 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG2' ;
  x3do:type 'SFTime' .
:field_2_9_302_37 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs2' ;
  x3do:type 'SFTime' .
:field_2_9_302_38 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA3' ;
  x3do:type 'SFTime' .
:field_2_9_302_39 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs3' ;
  x3do:type 'SFTime' .
:field_2_9_302_40 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB3' ;
  x3do:type 'SFTime' .
:field_2_9_302_41 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC3' ;
  x3do:type 'SFTime' .
:field_2_9_302_42 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs3' ;
  x3do:type 'SFTime' .
:field_2_9_302_43 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD3' ;
  x3do:type 'SFTime' .
:field_2_9_302_44 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs3' ;
  x3do:type 'SFTime' .
:field_2_9_302_45 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE3' ;
  x3do:type 'SFTime' .
:field_2_9_302_46 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF3' ;
  x3do:type 'SFTime' .
:field_2_9_302_47 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs3' ;
  x3do:type 'SFTime' .
:field_2_9_302_48 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG3' ;
  x3do:type 'SFTime' .
:field_2_9_302_49 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs3' ;
  x3do:type 'SFTime' .
:field_2_9_302_50 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA4' ;
  x3do:type 'SFTime' .
:field_2_9_302_51 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs4' ;
  x3do:type 'SFTime' .
:field_2_9_302_52 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB4' ;
  x3do:type 'SFTime' .
:field_2_9_302_53 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC4' ;
  x3do:type 'SFTime' .
:field_2_9_302_54 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs4' ;
  x3do:type 'SFTime' .
:field_2_9_302_55 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD4' ;
  x3do:type 'SFTime' .
:field_2_9_302_56 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs4' ;
  x3do:type 'SFTime' .
:field_2_9_302_57 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE4' ;
  x3do:type 'SFTime' .
:field_2_9_302_58 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF4' ;
  x3do:type 'SFTime' .
:field_2_9_302_59 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs4' ;
  x3do:type 'SFTime' .
:field_2_9_302_60 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG4' ;
  x3do:type 'SFTime' .
:field_2_9_302_61 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs4' ;
  x3do:type 'SFTime' .
:field_2_9_302_62 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA5' ;
  x3do:type 'SFTime' .
:field_2_9_302_63 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs5' ;
  x3do:type 'SFTime' .
:field_2_9_302_64 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB5' ;
  x3do:type 'SFTime' .
:field_2_9_302_65 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC5' ;
  x3do:type 'SFTime' .
:field_2_9_302_66 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs5' ;
  x3do:type 'SFTime' .
:field_2_9_302_67 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD5' ;
  x3do:type 'SFTime' .
:field_2_9_302_68 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs5' ;
  x3do:type 'SFTime' .
:field_2_9_302_69 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE5' ;
  x3do:type 'SFTime' .
:field_2_9_302_70 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF5' ;
  x3do:type 'SFTime' .
:field_2_9_302_71 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs5' ;
  x3do:type 'SFTime' .
:field_2_9_302_72 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG5' ;
  x3do:type 'SFTime' .
:field_2_9_302_73 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs5' ;
  x3do:type 'SFTime' .
:field_2_9_302_74 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA6' ;
  x3do:type 'SFTime' .
:field_2_9_302_75 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs6' ;
  x3do:type 'SFTime' .
:field_2_9_302_76 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB6' ;
  x3do:type 'SFTime' .
:field_2_9_302_77 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC6' ;
  x3do:type 'SFTime' .
:field_2_9_302_78 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs6' ;
  x3do:type 'SFTime' .
:field_2_9_302_79 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD6' ;
  x3do:type 'SFTime' .
:field_2_9_302_80 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs6' ;
  x3do:type 'SFTime' .
:field_2_9_302_81 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE6' ;
  x3do:type 'SFTime' .
:field_2_9_302_82 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF6' ;
  x3do:type 'SFTime' .
:field_2_9_302_83 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs6' ;
  x3do:type 'SFTime' .
:field_2_9_302_84 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG6' ;
  x3do:type 'SFTime' .
:field_2_9_302_85 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs6' ;
  x3do:type 'SFTime' .
:field_2_9_302_86 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA7' ;
  x3do:type 'SFTime' .
:field_2_9_302_87 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs7' ;
  x3do:type 'SFTime' .
:field_2_9_302_88 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB7' ;
  x3do:type 'SFTime' .
:field_2_9_302_89 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC7' ;
  x3do:type 'SFTime' .
:field_2_9_302_90 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playCs7' ;
  x3do:type 'SFTime' .
:field_2_9_302_91 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playD7' ;
  x3do:type 'SFTime' .
:field_2_9_302_92 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playDs7' ;
  x3do:type 'SFTime' .
:field_2_9_302_93 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playE7' ;
  x3do:type 'SFTime' .
:field_2_9_302_94 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playF7' ;
  x3do:type 'SFTime' .
:field_2_9_302_95 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playFs7' ;
  x3do:type 'SFTime' .
:field_2_9_302_96 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playG7' ;
  x3do:type 'SFTime' .
:field_2_9_302_97 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playGs7' ;
  x3do:type 'SFTime' .
:field_2_9_302_98 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playA8' ;
  x3do:type 'SFTime' .
:field_2_9_302_99 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playAs8' ;
  x3do:type 'SFTime' .
:field_2_9_302_100 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playB8' ;
  x3do:type 'SFTime' .
:field_2_9_302_101 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :PlayerPianoScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'playC8' ;
  x3do:type 'SFTime' .
:ROUTE_2_10 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'StartPlaying' ;
  x3do:toField 'playScriptedNotes' ;
  x3do:toNode 'PlayerPianoScript' .
:ROUTE_2_11 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA1' .
:ROUTE_2_12 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs1' .
:ROUTE_2_13 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB1' .
:ROUTE_2_14 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC1' .
:ROUTE_2_15 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs1' .
:ROUTE_2_16 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD1' .
:ROUTE_2_17 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs1' .
:ROUTE_2_18 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE1' .
:ROUTE_2_19 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF1' .
:ROUTE_2_20 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs1' .
:ROUTE_2_21 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG1' .
:ROUTE_2_22 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs1' .
:ROUTE_2_23 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA1' .
:ROUTE_2_24 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs1' .
:ROUTE_2_25 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB1' .
:ROUTE_2_26 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC1' .
:ROUTE_2_27 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs1' .
:ROUTE_2_28 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD1' .
:ROUTE_2_29 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs1' .
:ROUTE_2_30 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE1' .
:ROUTE_2_31 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF1' .
:ROUTE_2_32 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs1' .
:ROUTE_2_33 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG1' .
:ROUTE_2_34 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs1' .
:ROUTE_2_35 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA2' .
:ROUTE_2_36 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs2' .
:ROUTE_2_37 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB2' .
:ROUTE_2_38 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC2' .
:ROUTE_2_39 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs2' .
:ROUTE_2_40 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD2' .
:ROUTE_2_41 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs2' .
:ROUTE_2_42 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE2' .
:ROUTE_2_43 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF2' .
:ROUTE_2_44 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs2' .
:ROUTE_2_45 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG2' .
:ROUTE_2_46 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs2' .
:ROUTE_2_47 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA3' .
:ROUTE_2_48 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs3' .
:ROUTE_2_49 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB3' .
:ROUTE_2_50 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC3' .
:ROUTE_2_51 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs3' .
:ROUTE_2_52 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD3' .
:ROUTE_2_53 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs3' .
:ROUTE_2_54 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE3' .
:ROUTE_2_55 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF3' .
:ROUTE_2_56 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs3' .
:ROUTE_2_57 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG3' .
:ROUTE_2_58 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs3' .
:ROUTE_2_59 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA4' .
:ROUTE_2_60 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs4' .
:ROUTE_2_61 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB4' .
:ROUTE_2_62 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC4' .
:ROUTE_2_63 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs4' .
:ROUTE_2_64 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD4' .
:ROUTE_2_65 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs4' .
:ROUTE_2_66 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE4' .
:ROUTE_2_67 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF4' .
:ROUTE_2_68 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs4' .
:ROUTE_2_69 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG4' .
:ROUTE_2_70 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs4' .
:ROUTE_2_71 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA5' .
:ROUTE_2_72 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs5' .
:ROUTE_2_73 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB5' .
:ROUTE_2_74 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC5' .
:ROUTE_2_75 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs5' .
:ROUTE_2_76 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD5' .
:ROUTE_2_77 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs5' .
:ROUTE_2_78 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE5' .
:ROUTE_2_79 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF5' .
:ROUTE_2_80 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs5' .
:ROUTE_2_81 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG5' .
:ROUTE_2_82 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs5' .
:ROUTE_2_83 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA6' .
:ROUTE_2_84 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs6' .
:ROUTE_2_85 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB6' .
:ROUTE_2_86 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC6' .
:ROUTE_2_87 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs6' .
:ROUTE_2_88 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD6' .
:ROUTE_2_89 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs6' .
:ROUTE_2_90 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE6' .
:ROUTE_2_91 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF6' .
:ROUTE_2_92 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs6' .
:ROUTE_2_93 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG6' .
:ROUTE_2_94 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs6' .
:ROUTE_2_95 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA7' .
:ROUTE_2_96 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs7' .
:ROUTE_2_97 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB7' .
:ROUTE_2_98 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC7' .
:ROUTE_2_99 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs7' .
:ROUTE_2_100 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD7' .
:ROUTE_2_101 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs7' .
:ROUTE_2_102 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE7' .
:ROUTE_2_103 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF7' .
:ROUTE_2_104 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs7' .
:ROUTE_2_105 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG7' .
:ROUTE_2_106 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs7' .
:ROUTE_2_107 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA8' .
:ROUTE_2_108 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs8' .
:ROUTE_2_109 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB8' .
:ROUTE_2_110 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC8' .
:ROUTE_2_111 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA0' .
:ROUTE_2_112 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A0Mover' .
:ROUTE_2_113 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A0TRANS' .
:ROUTE_2_114 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs0' .
:ROUTE_2_115 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As0Mover' .
:ROUTE_2_116 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As0TRANS' .
:ROUTE_2_117 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB0' .
:ROUTE_2_118 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B0Mover' .
:ROUTE_2_119 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B0TRANS' .
:ROUTE_2_120 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC0' .
:ROUTE_2_121 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C0Mover' .
:ROUTE_2_122 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C0TRANS' .
:ROUTE_2_123 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs0' .
:ROUTE_2_124 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs0Mover' .
:ROUTE_2_125 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs0TRANS' .
:ROUTE_2_126 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD0' .
:ROUTE_2_127 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D0Mover' .
:ROUTE_2_128 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D0TRANS' .
:ROUTE_2_129 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs0' .
:ROUTE_2_130 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds0Mover' .
:ROUTE_2_131 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds0TRANS' .
:ROUTE_2_132 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE0' .
:ROUTE_2_133 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E0Mover' .
:ROUTE_2_134 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E0TRANS' .
:ROUTE_2_135 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF0' .
:ROUTE_2_136 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F0Mover' .
:ROUTE_2_137 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F0TRANS' .
:ROUTE_2_138 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs0' .
:ROUTE_2_139 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs0Mover' .
:ROUTE_2_140 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs0TRANS' .
:ROUTE_2_141 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG0' .
:ROUTE_2_142 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G0Mover' .
:ROUTE_2_143 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G0TRANS' .
:ROUTE_2_144 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs0' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs0' .
:ROUTE_2_145 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs0' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs0Mover' .
:ROUTE_2_146 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs0Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs0TRANS' .
:ROUTE_2_147 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA1' .
:ROUTE_2_148 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A1Mover' .
:ROUTE_2_149 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A1TRANS' .
:ROUTE_2_150 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs1' .
:ROUTE_2_151 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As1Mover' .
:ROUTE_2_152 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As1TRANS' .
:ROUTE_2_153 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB1' .
:ROUTE_2_154 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B1Mover' .
:ROUTE_2_155 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B1TRANS' .
:ROUTE_2_156 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC1' .
:ROUTE_2_157 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C1Mover' .
:ROUTE_2_158 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C1TRANS' .
:ROUTE_2_159 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs1' .
:ROUTE_2_160 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs1Mover' .
:ROUTE_2_161 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs1TRANS' .
:ROUTE_2_162 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD1' .
:ROUTE_2_163 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D1Mover' .
:ROUTE_2_164 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D1TRANS' .
:ROUTE_2_165 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs1' .
:ROUTE_2_166 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds1Mover' .
:ROUTE_2_167 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds1TRANS' .
:ROUTE_2_168 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE1' .
:ROUTE_2_169 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E1Mover' .
:ROUTE_2_170 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E1TRANS' .
:ROUTE_2_171 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF1' .
:ROUTE_2_172 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F1Mover' .
:ROUTE_2_173 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F1TRANS' .
:ROUTE_2_174 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs1' .
:ROUTE_2_175 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs1Mover' .
:ROUTE_2_176 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs1TRANS' .
:ROUTE_2_177 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG1' .
:ROUTE_2_178 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G1Mover' .
:ROUTE_2_179 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G1TRANS' .
:ROUTE_2_180 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs1' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs1' .
:ROUTE_2_181 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs1' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs1Mover' .
:ROUTE_2_182 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs1Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs1TRANS' .
:ROUTE_2_183 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA2' .
:ROUTE_2_184 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A2Mover' .
:ROUTE_2_185 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A2TRANS' .
:ROUTE_2_186 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs2' .
:ROUTE_2_187 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As2Mover' .
:ROUTE_2_188 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As2TRANS' .
:ROUTE_2_189 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB2' .
:ROUTE_2_190 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B2Mover' .
:ROUTE_2_191 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B2TRANS' .
:ROUTE_2_192 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC2' .
:ROUTE_2_193 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C2Mover' .
:ROUTE_2_194 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C2TRANS' .
:ROUTE_2_195 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs2' .
:ROUTE_2_196 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs2Mover' .
:ROUTE_2_197 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs2TRANS' .
:ROUTE_2_198 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD2' .
:ROUTE_2_199 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D2Mover' .
:ROUTE_2_200 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D2TRANS' .
:ROUTE_2_201 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs2' .
:ROUTE_2_202 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds2Mover' .
:ROUTE_2_203 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds2TRANS' .
:ROUTE_2_204 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE2' .
:ROUTE_2_205 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E2Mover' .
:ROUTE_2_206 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E2TRANS' .
:ROUTE_2_207 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF2' .
:ROUTE_2_208 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F2Mover' .
:ROUTE_2_209 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F2TRANS' .
:ROUTE_2_210 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs2' .
:ROUTE_2_211 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs2Mover' .
:ROUTE_2_212 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs2TRANS' .
:ROUTE_2_213 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG2' .
:ROUTE_2_214 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G2Mover' .
:ROUTE_2_215 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G2TRANS' .
:ROUTE_2_216 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs2' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs2' .
:ROUTE_2_217 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs2' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs2Mover' .
:ROUTE_2_218 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs2Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs2TRANS' .
:ROUTE_2_219 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA3' .
:ROUTE_2_220 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A3Mover' .
:ROUTE_2_221 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A3TRANS' .
:ROUTE_2_222 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs3' .
:ROUTE_2_223 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As3Mover' .
:ROUTE_2_224 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As3TRANS' .
:ROUTE_2_225 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB3' .
:ROUTE_2_226 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B3Mover' .
:ROUTE_2_227 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B3TRANS' .
:ROUTE_2_228 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC3' .
:ROUTE_2_229 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C3Mover' .
:ROUTE_2_230 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C3TRANS' .
:ROUTE_2_231 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs3' .
:ROUTE_2_232 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs3Mover' .
:ROUTE_2_233 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs3TRANS' .
:ROUTE_2_234 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD3' .
:ROUTE_2_235 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D3Mover' .
:ROUTE_2_236 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D3TRANS' .
:ROUTE_2_237 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs3' .
:ROUTE_2_238 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds3Mover' .
:ROUTE_2_239 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds3TRANS' .
:ROUTE_2_240 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE3' .
:ROUTE_2_241 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E3Mover' .
:ROUTE_2_242 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E3TRANS' .
:ROUTE_2_243 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF3' .
:ROUTE_2_244 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F3Mover' .
:ROUTE_2_245 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F3TRANS' .
:ROUTE_2_246 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs3' .
:ROUTE_2_247 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs3Mover' .
:ROUTE_2_248 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs3TRANS' .
:ROUTE_2_249 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG3' .
:ROUTE_2_250 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G3Mover' .
:ROUTE_2_251 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G3TRANS' .
:ROUTE_2_252 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs3' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs3' .
:ROUTE_2_253 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs3' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs3Mover' .
:ROUTE_2_254 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs3Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs3TRANS' .
:ROUTE_2_255 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA4' .
:ROUTE_2_256 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A4Mover' .
:ROUTE_2_257 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A4TRANS' .
:ROUTE_2_258 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs4' .
:ROUTE_2_259 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As4Mover' .
:ROUTE_2_260 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As4TRANS' .
:ROUTE_2_261 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB4' .
:ROUTE_2_262 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B4Mover' .
:ROUTE_2_263 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B4TRANS' .
:ROUTE_2_264 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC4' .
:ROUTE_2_265 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C4Mover' .
:ROUTE_2_266 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C4TRANS' .
:ROUTE_2_267 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs4' .
:ROUTE_2_268 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs4Mover' .
:ROUTE_2_269 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs4TRANS' .
:ROUTE_2_270 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD4' .
:ROUTE_2_271 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D4Mover' .
:ROUTE_2_272 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D4TRANS' .
:ROUTE_2_273 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs4' .
:ROUTE_2_274 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds4Mover' .
:ROUTE_2_275 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds4TRANS' .
:ROUTE_2_276 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE4' .
:ROUTE_2_277 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E4Mover' .
:ROUTE_2_278 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E4TRANS' .
:ROUTE_2_279 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF4' .
:ROUTE_2_280 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F4Mover' .
:ROUTE_2_281 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F4TRANS' .
:ROUTE_2_282 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs4' .
:ROUTE_2_283 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs4Mover' .
:ROUTE_2_284 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs4TRANS' .
:ROUTE_2_285 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG4' .
:ROUTE_2_286 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G4Mover' .
:ROUTE_2_287 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G4TRANS' .
:ROUTE_2_288 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs4' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs4' .
:ROUTE_2_289 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs4' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs4Mover' .
:ROUTE_2_290 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs4Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs4TRANS' .
:ROUTE_2_291 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA5' .
:ROUTE_2_292 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A5Mover' .
:ROUTE_2_293 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A5TRANS' .
:ROUTE_2_294 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs5' .
:ROUTE_2_295 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As5Mover' .
:ROUTE_2_296 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As5TRANS' .
:ROUTE_2_297 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB5' .
:ROUTE_2_298 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B5Mover' .
:ROUTE_2_299 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B5TRANS' .
:ROUTE_2_300 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC5' .
:ROUTE_2_301 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C5Mover' .
:ROUTE_2_302 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C5TRANS' .
:ROUTE_2_303 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs5' .
:ROUTE_2_304 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs5Mover' .
:ROUTE_2_305 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs5TRANS' .
:ROUTE_2_306 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD5' .
:ROUTE_2_307 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D5Mover' .
:ROUTE_2_308 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D5TRANS' .
:ROUTE_2_309 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs5' .
:ROUTE_2_310 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds5Mover' .
:ROUTE_2_311 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds5TRANS' .
:ROUTE_2_312 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE5' .
:ROUTE_2_313 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E5Mover' .
:ROUTE_2_314 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E5TRANS' .
:ROUTE_2_315 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF5' .
:ROUTE_2_316 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F5Mover' .
:ROUTE_2_317 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F5TRANS' .
:ROUTE_2_318 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs5' .
:ROUTE_2_319 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs5Mover' .
:ROUTE_2_320 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs5TRANS' .
:ROUTE_2_321 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG5' .
:ROUTE_2_322 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G5Mover' .
:ROUTE_2_323 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G5TRANS' .
:ROUTE_2_324 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs5' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs5' .
:ROUTE_2_325 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs5' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs5Mover' .
:ROUTE_2_326 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs5Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs5TRANS' .
:ROUTE_2_327 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA6' .
:ROUTE_2_328 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A6Mover' .
:ROUTE_2_329 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A6TRANS' .
:ROUTE_2_330 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs6' .
:ROUTE_2_331 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As6Mover' .
:ROUTE_2_332 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As6TRANS' .
:ROUTE_2_333 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB6' .
:ROUTE_2_334 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B6Mover' .
:ROUTE_2_335 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B6TRANS' .
:ROUTE_2_336 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC6' .
:ROUTE_2_337 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C6Mover' .
:ROUTE_2_338 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C6TRANS' .
:ROUTE_2_339 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs6' .
:ROUTE_2_340 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs6Mover' .
:ROUTE_2_341 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs6TRANS' .
:ROUTE_2_342 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD6' .
:ROUTE_2_343 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D6Mover' .
:ROUTE_2_344 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D6TRANS' .
:ROUTE_2_345 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs6' .
:ROUTE_2_346 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds6Mover' .
:ROUTE_2_347 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds6TRANS' .
:ROUTE_2_348 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE6' .
:ROUTE_2_349 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E6Mover' .
:ROUTE_2_350 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E6TRANS' .
:ROUTE_2_351 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF6' .
:ROUTE_2_352 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F6Mover' .
:ROUTE_2_353 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F6TRANS' .
:ROUTE_2_354 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs6' .
:ROUTE_2_355 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs6Mover' .
:ROUTE_2_356 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs6TRANS' .
:ROUTE_2_357 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG6' .
:ROUTE_2_358 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G6Mover' .
:ROUTE_2_359 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G6TRANS' .
:ROUTE_2_360 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs6' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs6' .
:ROUTE_2_361 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs6' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs6Mover' .
:ROUTE_2_362 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs6Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs6TRANS' .
:ROUTE_2_363 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA7' .
:ROUTE_2_364 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A7Mover' .
:ROUTE_2_365 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A7TRANS' .
:ROUTE_2_366 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs7' .
:ROUTE_2_367 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As7Mover' .
:ROUTE_2_368 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As7TRANS' .
:ROUTE_2_369 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB7' .
:ROUTE_2_370 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B7Mover' .
:ROUTE_2_371 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B7TRANS' .
:ROUTE_2_372 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC7' .
:ROUTE_2_373 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C7Mover' .
:ROUTE_2_374 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C7TRANS' .
:ROUTE_2_375 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Cs7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs7' .
:ROUTE_2_376 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockCs7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Cs7Mover' .
:ROUTE_2_377 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Cs7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Cs7TRANS' .
:ROUTE_2_378 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'D7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD7' .
:ROUTE_2_379 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockD7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'D7Mover' .
:ROUTE_2_380 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'D7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'D7TRANS' .
:ROUTE_2_381 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Ds7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs7' .
:ROUTE_2_382 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockDs7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ds7Mover' .
:ROUTE_2_383 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ds7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Ds7TRANS' .
:ROUTE_2_384 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'E7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE7' .
:ROUTE_2_385 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockE7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'E7Mover' .
:ROUTE_2_386 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'E7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'E7TRANS' .
:ROUTE_2_387 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'F7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF7' .
:ROUTE_2_388 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockF7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'F7Mover' .
:ROUTE_2_389 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'F7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'F7TRANS' .
:ROUTE_2_390 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Fs7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs7' .
:ROUTE_2_391 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockFs7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Fs7Mover' .
:ROUTE_2_392 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Fs7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Fs7TRANS' .
:ROUTE_2_393 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'G7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG7' .
:ROUTE_2_394 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockG7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'G7Mover' .
:ROUTE_2_395 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'G7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'G7TRANS' .
:ROUTE_2_396 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Gs7' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs7' .
:ROUTE_2_397 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockGs7' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Gs7Mover' .
:ROUTE_2_398 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Gs7Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'Gs7TRANS' .
:ROUTE_2_399 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'A8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA8' .
:ROUTE_2_400 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockA8' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'A8Mover' .
:ROUTE_2_401 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'A8Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'A8TRANS' .
:ROUTE_2_402 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'As8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs8' .
:ROUTE_2_403 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockAs8' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'As8Mover' .
:ROUTE_2_404 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'As8Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'As8TRANS' .
:ROUTE_2_405 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'B8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB8' .
:ROUTE_2_406 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockB8' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'B8Mover' .
:ROUTE_2_407 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'B8Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'B8TRANS' .
:ROUTE_2_408 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'C8' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC8' .
:ROUTE_2_409 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'ClockC8' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'C8Mover' .
:ROUTE_2_410 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'C8Mover' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'C8TRANS' .
:ROUTE_2_411 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA0' .
:ROUTE_2_412 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA0' .
:ROUTE_2_413 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs0' .
:ROUTE_2_414 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs0' .
:ROUTE_2_415 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB0' .
:ROUTE_2_416 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB0' .
:ROUTE_2_417 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC0' .
:ROUTE_2_418 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC0' .
:ROUTE_2_419 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs0' .
:ROUTE_2_420 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs0' .
:ROUTE_2_421 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD0' .
:ROUTE_2_422 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD0' .
:ROUTE_2_423 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs0' .
:ROUTE_2_424 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs0' .
:ROUTE_2_425 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE0' .
:ROUTE_2_426 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE0' .
:ROUTE_2_427 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF0' .
:ROUTE_2_428 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF0' .
:ROUTE_2_429 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs0' .
:ROUTE_2_430 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs0' .
:ROUTE_2_431 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG0' .
:ROUTE_2_432 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG0' .
:ROUTE_2_433 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs0' .
:ROUTE_2_434 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs0' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs0' .
:ROUTE_2_435 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA1' .
:ROUTE_2_436 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA1' .
:ROUTE_2_437 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs1' .
:ROUTE_2_438 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs1' .
:ROUTE_2_439 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB1' .
:ROUTE_2_440 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB1' .
:ROUTE_2_441 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC1' .
:ROUTE_2_442 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC1' .
:ROUTE_2_443 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs1' .
:ROUTE_2_444 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs1' .
:ROUTE_2_445 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD1' .
:ROUTE_2_446 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD1' .
:ROUTE_2_447 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs1' .
:ROUTE_2_448 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs1' .
:ROUTE_2_449 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE1' .
:ROUTE_2_450 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE1' .
:ROUTE_2_451 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF1' .
:ROUTE_2_452 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF1' .
:ROUTE_2_453 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs1' .
:ROUTE_2_454 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs1' .
:ROUTE_2_455 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG1' .
:ROUTE_2_456 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG1' .
:ROUTE_2_457 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs1' .
:ROUTE_2_458 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs1' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs1' .
:ROUTE_2_459 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA2' .
:ROUTE_2_460 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA2' .
:ROUTE_2_461 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs2' .
:ROUTE_2_462 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs2' .
:ROUTE_2_463 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB2' .
:ROUTE_2_464 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB2' .
:ROUTE_2_465 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC2' .
:ROUTE_2_466 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC2' .
:ROUTE_2_467 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs2' .
:ROUTE_2_468 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs2' .
:ROUTE_2_469 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD2' .
:ROUTE_2_470 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD2' .
:ROUTE_2_471 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs2' .
:ROUTE_2_472 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs2' .
:ROUTE_2_473 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE2' .
:ROUTE_2_474 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE2' .
:ROUTE_2_475 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF2' .
:ROUTE_2_476 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF2' .
:ROUTE_2_477 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs2' .
:ROUTE_2_478 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs2' .
:ROUTE_2_479 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG2' .
:ROUTE_2_480 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG2' .
:ROUTE_2_481 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs2' .
:ROUTE_2_482 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs2' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs2' .
:ROUTE_2_483 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA3' .
:ROUTE_2_484 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA3' .
:ROUTE_2_485 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs3' .
:ROUTE_2_486 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs3' .
:ROUTE_2_487 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB3' .
:ROUTE_2_488 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB3' .
:ROUTE_2_489 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC3' .
:ROUTE_2_490 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC3' .
:ROUTE_2_491 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs3' .
:ROUTE_2_492 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs3' .
:ROUTE_2_493 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD3' .
:ROUTE_2_494 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD3' .
:ROUTE_2_495 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs3' .
:ROUTE_2_496 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs3' .
:ROUTE_2_497 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE3' .
:ROUTE_2_498 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE3' .
:ROUTE_2_499 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF3' .
:ROUTE_2_500 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF3' .
:ROUTE_2_501 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs3' .
:ROUTE_2_502 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs3' .
:ROUTE_2_503 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG3' .
:ROUTE_2_504 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG3' .
:ROUTE_2_505 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs3' .
:ROUTE_2_506 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs3' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs3' .
:ROUTE_2_507 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA4' .
:ROUTE_2_508 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA4' .
:ROUTE_2_509 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs4' .
:ROUTE_2_510 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs4' .
:ROUTE_2_511 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB4' .
:ROUTE_2_512 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB4' .
:ROUTE_2_513 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC4' .
:ROUTE_2_514 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC4' .
:ROUTE_2_515 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs4' .
:ROUTE_2_516 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs4' .
:ROUTE_2_517 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD4' .
:ROUTE_2_518 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD4' .
:ROUTE_2_519 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs4' .
:ROUTE_2_520 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs4' .
:ROUTE_2_521 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE4' .
:ROUTE_2_522 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE4' .
:ROUTE_2_523 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF4' .
:ROUTE_2_524 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF4' .
:ROUTE_2_525 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs4' .
:ROUTE_2_526 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs4' .
:ROUTE_2_527 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG4' .
:ROUTE_2_528 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG4' .
:ROUTE_2_529 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs4' .
:ROUTE_2_530 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs4' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs4' .
:ROUTE_2_531 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB5' .
:ROUTE_2_532 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC5' .
:ROUTE_2_533 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC5' .
:ROUTE_2_534 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs5' .
:ROUTE_2_535 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs5' .
:ROUTE_2_536 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD5' .
:ROUTE_2_537 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD5' .
:ROUTE_2_538 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs5' .
:ROUTE_2_539 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs5' .
:ROUTE_2_540 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE5' .
:ROUTE_2_541 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE5' .
:ROUTE_2_542 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF5' .
:ROUTE_2_543 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF5' .
:ROUTE_2_544 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs5' .
:ROUTE_2_545 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs5' .
:ROUTE_2_546 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG5' .
:ROUTE_2_547 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG5' .
:ROUTE_2_548 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs5' .
:ROUTE_2_549 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs5' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs5' .
:ROUTE_2_550 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA6' .
:ROUTE_2_551 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA6' .
:ROUTE_2_552 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs6' .
:ROUTE_2_553 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs6' .
:ROUTE_2_554 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB6' .
:ROUTE_2_555 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB6' .
:ROUTE_2_556 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC6' .
:ROUTE_2_557 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC6' .
:ROUTE_2_558 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs6' .
:ROUTE_2_559 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs6' .
:ROUTE_2_560 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD6' .
:ROUTE_2_561 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD6' .
:ROUTE_2_562 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs6' .
:ROUTE_2_563 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs6' .
:ROUTE_2_564 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE6' .
:ROUTE_2_565 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE6' .
:ROUTE_2_566 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF6' .
:ROUTE_2_567 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF6' .
:ROUTE_2_568 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs6' .
:ROUTE_2_569 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs6' .
:ROUTE_2_570 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG6' .
:ROUTE_2_571 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG6' .
:ROUTE_2_572 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs6' .
:ROUTE_2_573 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs6' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs6' .
:ROUTE_2_574 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA7' .
:ROUTE_2_575 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA7' .
:ROUTE_2_576 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs7' .
:ROUTE_2_577 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs7' .
:ROUTE_2_578 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB7' .
:ROUTE_2_579 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB7' .
:ROUTE_2_580 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC7' .
:ROUTE_2_581 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC7' .
:ROUTE_2_582 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchCs7' .
:ROUTE_2_583 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playCs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockCs7' .
:ROUTE_2_584 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchD7' .
:ROUTE_2_585 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playD7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockD7' .
:ROUTE_2_586 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchDs7' .
:ROUTE_2_587 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playDs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockDs7' .
:ROUTE_2_588 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchE7' .
:ROUTE_2_589 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playE7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockE7' .
:ROUTE_2_590 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchF7' .
:ROUTE_2_591 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playF7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockF7' .
:ROUTE_2_592 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchFs7' .
:ROUTE_2_593 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playFs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockFs7' .
:ROUTE_2_594 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchG7' .
:ROUTE_2_595 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playG7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockG7' .
:ROUTE_2_596 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchGs7' .
:ROUTE_2_597 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playGs7' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockGs7' .
:ROUTE_2_598 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchA8' .
:ROUTE_2_599 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playA8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockA8' .
:ROUTE_2_600 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchAs8' .
:ROUTE_2_601 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playAs8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockAs8' .
:ROUTE_2_602 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchB8' .
:ROUTE_2_603 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playB8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockB8' .
:ROUTE_2_604 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'PitchC8' .
:ROUTE_2_605 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'playC8' ;
  x3do:fromNode 'PlayerPianoScript' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'ClockC8' .
