<div dir="ltr"><div dir="ltr">Somewhat tangentially related: test automation and MIDI files<div>- both have sequenced events</div><div>- with a delta-time between events</div><div><information about event> dtime</div><div><information about event> dtime</div><div>For MIDI the information is the music key aka midiNote:</div><div><p class="MsoNormal"><span style="font-family:Consolas">MIDIOut<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">{<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> MFInt32 [out] octave<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> MFInt32 [out] key12<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> MFInt32 [out] key88<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> MFInt32 [out] keyPiano<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> MFInt32 [out] midiNote<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">}<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">MidiOctaveOut :
X3DUtilityNode<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">{<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFInt32 [in,out] octaveFilter -1<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> MFInt32 [in] midiNote <span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] C<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] Cs<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] D<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] Ds<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] E<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] F<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] Fs<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] G<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] Gs<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] A<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] As<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"> SFBool [out] B<span></span></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">}<span></span></span></p><p class="MsoNormal">so a midi keyboard could be used to record a midi file, and played back with the time between notes recorded and affecting when an out event is triggered.</p><p class="MsoNormal">Test automation: (yet to be published version of) freewrl has --record and --playback commandline options.</p><p class="MsoNormal">On --record it monitors mouse and keyboard input and writes <information = mouse xy, button> dtime and <information = key> dtime records in a <scene_name>.fwplay file. On running with --playback, it reads that file in a separate thread, sleeping(dtime) between sending the events to the program.</p><p class="MsoNormal">-Doug</p></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 3, 2023 at 10:12 AM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-5411682666495474941"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="m_-5411682666495474941WordSection1"><p class="MsoNormal">Here is one way to do it.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in">X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 07 Event Animation Interpolation, Time Sensor Chaining<u></u><u></u></li><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in">Connecting TimeSensor nodes so that the completion of one behavior chain triggers another.<u></u><u></u></li><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in"><a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/TimeSensorChainingIndex.html" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/TimeSensorChainingIndex.html</a><u></u><u></u></li><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in"><a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/TimeSensorChaining.x3d" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/TimeSensorChaining.x3d</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">However, seems like a ROUTE or two might be missing/mistaken... Clicking to open the door opens OK, but then has trouble closing again.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If anyone sees the mistake in the event chain, please advise, all corrections welcome.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">This is a good occasion to point out that something which took an X3D file and produced an event graph diagram (perhaps in SVG) would be generally useful. (On Linux, the Titania authoring tool has such a diagramming capability,)<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I will print out the HTML documentation version and draw the ROUTE lines mNUlly to visualize what is happening and troubleshoot further.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in"><a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/TimeSensorChaining.html" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/TimeSensorChaining.html</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">p.s. here are some helpful author checklists from book chapters on animation and interactivity.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in">10-step process for constructing animation chains<u></u><u></u></li><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in"><a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/Chapter07-EventAnimationInterpolation.10StepAnimationDesignProcess.pdf" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/Chapter07-EventAnimationInterpolation.10StepAnimationDesignProcess.pdf</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in">X3D Event Utility Nodes: Field Event Diagrams<u></u><u></u></li><li class="m_-5411682666495474941MsoListParagraph" style="margin-left:0in"><a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Have fun with X3D animation! 8)<u></u><u></u></p><div><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New""><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">all the best, Don<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">-- <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank">https://faculty.nps.edu/brutzman</a><u></u><u></u></span></p></div><p class="MsoNormal"><u></u> <u></u></p><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> <b>On Behalf Of </b>Joseph D Williams<br><b>Sent:</b> Monday, July 3, 2023 6:52 AM<br><b>To:</b> X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> [x3d-public] TimeSensor Hierarchy<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Hi All,<u></u><u></u></p><p class="MsoNormal">So, I have a master timesensor that will run enabled and several other timesernsors that need to be enabled or disabled in various sequences during the main time evolution. What is best way to build this control?<u></u><u></u></p><p class="MsoNormal">Thanks,<u></u><u></u></p><p class="MsoNormal">Joe<u></u><u></u></p></div></div>_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</div></blockquote></div>