<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile='Interchange'  version='4.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-4.0.xsd ' >
<head/>
<!-- -->
<Scene>
<WorldInfo title='GrampsBoxAudio.x3d'/>
<NavigationInfo/>
<!-- Viewpoint DEF='Scene_StageFrontViewFar' description='Stage Front View' orientation='0.5 1.5 0.2 -1' position='-15 10 30'/ here!!! -->

<!-- ROUTE information for GrampsBoxTimerLoopControl node:  [from GrampsBoxTimer.fraction_changed to set_fraction ] [from value_changed to GrampsBoxTimer.loop ] [from value_changed to Melodies.loop ] -->
<BooleanSequencer DEF='GrampsBoxTimerLoopControlkey='0 0.9 1keyValue='true false false'/>

< ROUTE  fromNode=' GrampsBoxTimer' fromField='fraction_changed' toNode=' GrampsBoxTimerLoopControl' toField='set_fraction'/>
< ROUTE  fromNode=' GrampsBoxTimerLoopControl' fromField='value_changed' toNode=' GrampsBoxTimer' toField='loop'/>
<!-- startTime for GrampsBoxTimer from AudioClip startTime here!!! -->
<!-- enabled for GrampsBoxTimer from AudioClip isActive here!!! -->
<Sound DEF='SceneMusicdirection='0 1 1location='9 4 7maxBack='50maxFront='50minBack='10minFront='10'>
<!-- ROUTE information for Melodies node:  [from GrampsBoxTimerLoopControl.value_changed to loop ] [from startTime to GrampsBoxTimer.set_startTime ] [from isActive to GrampsBoxTimer.set_enabled ] -->
<AudioClip DEF='Melodiesdescription='John Harrison with the Wichita State University Chamberloop='true'
  url=' "audio/winter_spring_rv2_keyed_143.wav" ' />
</Sound>
< ROUTE  fromNode=' Melodies' fromField='startTime' toNode=' GrampsBoxTimer' toField='set_startTime'/>
< ROUTE  fromNode=' Melodies' fromField='isActive' toNode=' GrampsBoxTimer' toField='set_enabled'/>
< ROUTE  fromNode=' GrampsBoxTimerLoopControl' fromField='value_changed' toNode=' Melodies' toField='loop'/>
<!-- audio startTime is actual startTime for scene time here!!! -->
<!-- controls scene time start also stop if audio time less than scene time here!!! -->
<!-- controls scene time start also stop if audio time less than scene time here!!! -->
<Transform DEF='Grampssyscoord'>
<Inline
  url=' "JointCoordinateAxes.x3dv" ' />
</Transform>
<Viewpoint DEF='Gramps01description='Look at Grampsorientation='-0.25 0 0 0.3position='0 4 9'/>
<Viewpoint DEF='Gramps02description='Look over Gramps Shoulderorientation='0 1 0 3position='-2 2 -7'/>
<Viewpoint DEF='Gramps03description='Look at Heart over Gramps Sholderorientation='0 0.7 0 3position='-2 2 1'/>
<Transform DEF='GrampsModel'>
<Inline
  url=' "zGramps.x3dv" ' />
</Transform>
</Transform>
<!-- ROUTE information for Gramps_HumanoidRoot_TranslationInterpolator node:  [from GrampsBoxTimer.fraction_changed to set_fraction ] [from value_changed to GrampsBox.set_translation ] -->
<PositionInterpolator DEF='Gramps_HumanoidRoot_TranslationInterpolatorkey='0 0.09 0.11 0.22 0.43 0.55 0.63 0.73 0.85 0.86 0.88 0.90 0.92 0.94 0.96 0.98 1keyValue='6.8557 0 0.5 6.8557 0 0.5 6.8557 0 0.5 9.8557 0 3.5 9.8557 0 3.5 9.8557 0 3.5 14.3558 0 8.0 16.8558 0 15.0 21.3557 0 24.5 21.3557 0.1 24.5 21.3557 0 24.5 21.3557 0.1 24.5 21.3557 0 24.5 21.3557 0.1 24.5 21.3557 0 24.5 21.3557 0.1 24.5 21.3557 0 24.5'/>

<!-- ROUTE information for Gramps_HumanoidRoot_RotationInterpolator node:  [from GrampsBoxTimer.fraction_changed to set_fraction ] [from value_changed to GrampsBox.set_rotation ] -->
<OrientationInterpolator DEF='Gramps_HumanoidRoot_RotationInterpolatorkey='0 0.09 0.11 0.22 0.43 0.55 0.63 0.73 0.85 0.86 1keyValue='0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0'/>

< ROUTE  fromNode=' GrampsBoxTimer' fromField='fraction_changed' toNode=' Gramps_HumanoidRoot_TranslationInterpolator' toField='set_fraction'/>
< ROUTE  fromNode=' Gramps_HumanoidRoot_TranslationInterpolator' fromField='value_changed' toNode=' GrampsBox' toField='set_translation'/>
< ROUTE  fromNode=' GrampsBoxTimer' fromField='fraction_changed' toNode=' Gramps_HumanoidRoot_RotationInterpolator' toField='set_fraction'/>
< ROUTE  fromNode=' Gramps_HumanoidRoot_RotationInterpolator' fromField='value_changed' toNode=' GrampsBox' toField='set_rotation'/>
</Scene>
</X3D>
<!--

Index for DEF nodes: Gramps_HumanoidRoot_RotationInterpolator, Gramps_HumanoidRoot_TranslationInterpolator, Gramps01, Gramps02, Gramps03, GrampsBox, GrampsBoxTimer, GrampsBoxTimerLoopControl, GrampsModel, Grampssyscoord, Melodies, SceneMusic and Event Graph ROUTE Table

Index for Viewpoint nodes: Gramps01, Gramps02, Gramps03
-->

Event Graph ROUTE Table entries with 9 ROUTE connections total, showing event model relationships for this scene.



-->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->