<div dir="ltr"><div dir="ltr">Don,<div>I used MIDI Editor but just briefly, didn't master it.</div><div>PROTOS > General Sequencing Node - something that sequences similar to MIDI that could be done in a PROTO is a general sequencing node, which could have the benefits of a text/string field for in-scene hacking and multiple output fields like the MIDI music octave style node type.</div><div>GeneralSequencer {</div><div>SFString in/out sequence </div><div>SFTime in start</div><div>SFBool out o1</div><div>SFBool out o2</div><div>SFBool out o3</div><div>...</div><div>SFBool out o100</div><div>}<br></div><div>example</div><div>DEF GS1 GeneralSequencer {</div><div># out field number, out field value, time offset from start</div><div>sequence "</div><div>1 T 0.0</div><div>1 F 0.25</div><div>1 T 1.0</div><div>2 T 1.0</div><div>3 T 1.0</div><div>4 T 1.0</div><div>"</div><div># or time offset from start, out value, list of fields </div><div>"</div><div>0.0 T 1,</div><div>.25 F 1,</div><div>1.0 T 1 2 3 4,</div><div>"</div><div>or something like that</div><div>}</div><div>The general sequencer could be convenient for naval simulations -with the string sequence being replaced according to different attack or submersible robot maneuvers.</div><div>And convenient for musical HANIM sequences to synchronize musical riff play --using standard sound nodes-- and certain humanoid articulations.</div><div>On each frame the Proto code would check if there are any in the sequence that have (start + offset) time > current time and haven't been played, and play them.</div><div><br></div><div>-Doug</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 23, 2024 at 8:54 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="msg418692810189878218">




<div dir="ltr">
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
OK very good, thanks for information Doug.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Meanwhile, am hoping to improve the MIDI files that we have, and potentially add more examples.  Wondering if there is a good open-source software tool for MIDI?</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
I looked again within Audacity, which is an excellent open source tool.  It does support MIDI but does not seem to give any information about what type of MIDI file is loaded or exported.  Some vulnerabilities are noted in NIST National Vulnerability Database
 but they are all on very old versions, so it seems trustworthy.  Linked for installation and easy use within X3D-Edit as a helper application.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://www.audacityteam.org" target="_blank">https://www.audacityteam.org</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&search_type=all&query=Audacity" target="_blank">https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&search_type=all&query=Audacity</a></div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Previous I was using MuseScore every now and then.  However an upgrade earlier this year integrated some kind of p2p streaming activity (aka Muse Hub) that triggered a variety of security warnings, so I stopped using it.  However, I now see that they offer
 a version without Muse Hub, will try again.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0);direction:ltr">
<a href="https://musescore.org/en" target="_blank">https://musescore.org/en</a><br>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0);direction:ltr">
<a href="https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&search_type=all&query=musescore" target="_blank">https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&search_type=all&query=musescore</a><br>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
The midieditor looks possible but it is free software (hobbyist) and not open source, so less appealing.  Also does not have an https server, which is a red flag.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0);direction:ltr">
<a href="http://www.midieditor.org" target="_blank">http://www.midieditor.org</a><br>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Am hoping to test binary and text-based MIDI (and possibly MIDI version 1 and 2) using different versions of the example file.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Wondering if there are any open-source audio tools you can recommend that support</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">Identifying MIDI version within a file,</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">Exporting between different MIDI formats</div>
</li></ul>
<div id="m_418692810189878218x_Signature">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"><br>
</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">all the best, Don</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">--</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank">https://faculty.nps.edu/brutzman</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
</div>
<div id="m_418692810189878218x_appendonsend"></div>
<hr style="direction:ltr;display:inline-block;width:98%">
<div id="m_418692810189878218x_divRplyFwdMsg" dir="ltr"><span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> on behalf of GPU Group via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
<b>Sent:</b> Friday, August 23, 2024 7:18 AM<br>
<b>Cc:</b> GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>; Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
<b>Subject:</b> Re: [x3d-public] MIDI suggestions</span>
<div> </div>
</div>
<div style="direction:ltr">Don,</div>
<div style="direction:ltr">MIDI via PROTOs > working in C I used threads and queues between the MIDI port and the x3d rendering thread, and I don't know how to do that with PROTOs. But it might be different with Web MIDI API. So one idea is to wait until/in-case
 one of the web based x3d browsers implements a MIDI component using PROTOs, and see how they did that, and then the native browsers can adapt to that.</div>
<div style="direction:ltr">-Doug</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">On Thu, Aug 22, 2024 at 6:35 PM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" id="m_418692810189878218OWA24f4a36d-6cec-bea9-36f6-19ed7bc3506a" target="_blank">brutzman@nps.edu</a>> wrote:</div>
<blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left:1px solid rgb(204,204,204)">
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Understood.  The work you describe regarding MIDI nodes looks quite involved.  Possible component extension if someone did the work involved.  Implementing as Prototype library using Script nodes might work.  Writing extensions for X_ITE or X3DOM might work. 
 In each case that would be proof-of-capability and maybe not a path to wide availability.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
I think it is doubtful that MIDI editing would be accepted as a high-value use case and recommended practice for X3D 4.1, which might take an undetermined length of time anyway.  Seems like a long, unlikely and unsatisfying path to pursue.  Nevertheless possible.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
I looked in Audacity briefly for "saving as" MIDI ASCII but didn't find it.  Perhaps I missed it or another tool is useful.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
If we do have a text-base example MIDI file archived, that might encourage use of other online editors.  Note how X_ITE is already able to show XML, ClassicVRML and JSON encodings equivalently (see links in upper-right corner).</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">X_ITE Playground Editor</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 05 Appearance Material Textures, Pixel Texture Snowman</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://create3000.github.io/x_ite/playground/?url=https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowman.x3d" id="m_418692810189878218OWAa300e12c-3257-7888-0c28-c607b42dcdb3" target="_blank">https://create3000.github.io/x_ite/playground/?url=https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowman.x3d</a></div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">... but has error:  Couldn't load URL '<a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/frosty2.mid'.EncodingError" id="m_418692810189878218OWA450f623e-0216-acf0-f7eb-b45f1f639901" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/frosty2.mid'.EncodingError</a>:
 Failed to execute 'decodeAudioData' on 'BaseAudioContext': Unable to decode audio data</div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">X3DOM similarly seems to have a problem paying the midi file</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowmanX3dom.xhtml" id="m_418692810189878218OWA41983362-d1f9-c054-8b8d-ce63c3513027" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowmanX3dom.xhtml</a></div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">Nothing heard using latest FreeWrl</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">Nothing heard using current Castle Model Viewer</div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Audacity plays the .midi file OK.  Might there be a problem with the file?</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Regarding sound-related implementations, am hoping we get more examples and start showing compelling implementation support for the Web Audio API nodes that are already added to the X3D 4.0 Sound Component.  Huge but unrealized potential is already available
 to us...</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"> Spatial Sound in X3DOM with Web Audio API</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://medialab.hmu.gr/minipages/x3domAudio" id="m_418692810189878218OWA4ea31a7c-c609-b748-80b6-51f4e83cd98c" target="_blank">https://medialab.hmu.gr/minipages/x3domAudio</a></div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">X3D Example Archives: X3D4AM, X3D for Advanced Modeling, Audio Spatial Sound</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0);direction:ltr">
<a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/" id="m_418692810189878218OWAdd5e483c-a7bb-881c-4c83-fbcf9f8c5b03" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/</a><br>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Again thanks for pushing on the limits, hope these potential paths forward can help us focus further progress.</div>
<div id="m_418692810189878218x_x_m_-2884927993464429209Signature">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"><br>
</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">all the best, Don</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">--</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Don Brutzman  Naval Postgraduate School, Code USW/Br       
<a href="mailto:brutzman@nps.edu" id="m_418692810189878218OWA064a3893-c921-2804-272c-65dc5e89cc6e" style="margin-top:0px;margin-bottom:0px" target="_blank">
brutzman@nps.edu</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">X3D graphics, virtual worlds, navy robotics
<a href="https://faculty.nps.edu/brutzman" id="m_418692810189878218OWA9359ecd8-b706-0d00-934f-b1ac941f83ea" style="margin-top:0px;margin-bottom:0px" target="_blank">
https://faculty.nps.edu/brutzman</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
</div>
<div id="m_418692810189878218x_x_m_-2884927993464429209appendonsend"></div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<hr style="direction:ltr;display:inline-block;width:98%">
<div id="m_418692810189878218x_x_m_-2884927993464429209divRplyFwdMsg" dir="ltr"><span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><b>From:</b> GPU Group <<a href="mailto:gpugroup@gmail.com" id="m_418692810189878218OWA200a4b96-fd85-0e18-d63b-81ec9636aa42" target="_blank">gpugroup@gmail.com</a>><br>
<b>Sent:</b> Thursday, August 22, 2024 11:20 AM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" id="m_418692810189878218OWAaaebeb01-2890-a895-e5bf-29fc5c9afd3c" target="_blank">brutzman@nps.edu</a>><br>
<b>Cc:</b> Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" id="m_418692810189878218OWA9d7ca2b5-7026-ec33-f4a0-3e696b3d7890" target="_blank">x3d-public@web3d.org</a>><br>
<b>Subject:</b> Re: [x3d-public] MIDI suggestions</span>
<div> <span style="font-family:Calibri;font-size:10pt;color:yellow">.</span></div>
</div>
<div style="direction:ltr">Don,</div>
<div style="direction:ltr">The current Sound component doesn't have a way to look at each MIDI note as an event, nor to create MIDI notes with events during scene execution. </div>
<div style="direction:ltr">See this proposed separate 43 MIDI Component which allows that.</div>
<div style="direction:ltr"><a href="https://freewrl.sourceforge.io/tests/43_MIDI/" id="m_418692810189878218x_x_m_-2884927993464429209OWAd33100ee-ba68-edc4-b776-76e73c7363f5" target="_blank">https://freewrl.sourceforge.io/tests/43_MIDI/</a> </div>
<div style="direction:ltr"><a href="https://freewrl.sourceforge.io/tests/43_MIDI/NOTES_midi.txt" id="m_418692810189878218x_x_m_-2884927993464429209OWA45c4dd96-de29-f07d-7a07-5511bf3f3098" target="_blank">freewrl.sourceforge.io/tests/43_MIDI/NOTES_midi.txt</a> </div>
<div style="direction:ltr">-Doug</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">On Thu, Aug 22, 2024 at 11:16 AM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" id="m_418692810189878218x_x_m_-2884927993464429209OWAddfbd280-473f-dc67-6d52-1f749b78b16d" target="_blank">brutzman@nps.edu</a>> wrote:</div>
<blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left:1px solid rgb(204,204,204)">
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Doug, thanks for your suggestions.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Regarding MIDI support:</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><i>X3D 4.0 Architecture, 16 Sound component, 16.4.2 AudioClip</i></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#AudioClip" id="m_418692810189878218x_x_m_-2884927993464429209OWA86c3567c-9030-39f5-5218-dbf3bbf28ca8" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#AudioClip</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr">The <i>url</i> field specifies the URL from which the sound file is loaded.
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#AudioEncodingFormats" id="m_418692810189878218x_x_m_-2884927993464429209OWAf5dc09e6-055a-5ae5-ee13-4f6f1e5f6ea2" style="text-align:left" target="_blank">
16.2.6 Audio encoding formats</a> describes required and recommended file format support.
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html#URLs" id="m_418692810189878218x_x_m_-2884927993464429209OWA3a7ac240-d73e-803d-a20a-cc84d2b9c8f9" style="text-align:left" target="_blank">
9.2.1 URLs, URNs and URIs</a> contains details on the <i>url</i> field.</div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="direction:ltr;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><i>X3D 4.0 Architecture, 16 Sound component, 16.2.6 Audio encoding formats</i></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#AudioEncodingFormats" id="m_418692810189878218x_x_m_-2884927993464429209OWA30ac76c7-5f44-31a8-3cb5-826a1b236cf4" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#AudioEncodingFormats</a></div>
</li></ul>
<div style="direction:ltr;text-align:left;text-indent:0px;margin-top:1em;margin-bottom:1em;margin-left:40px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
X3D browsers shall support at least the <i>wavefile</i> format in uncompressed PCM format (see
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/bibliography.html#WAV" id="m_418692810189878218x_x_m_-2884927993464429209OWA73af248f-d50a-6b9d-d5a9-106d0d927aed" target="_blank">
[WAV]</a>).</div>
<div style="direction:ltr;text-align:left;text-indent:0px;margin-top:1em;margin-bottom:1em;margin-left:40px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
It is recommended that X3D browsers support the MIDI file type 1 sound format (see
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/references.html#MIDI-1" id="m_418692810189878218x_x_m_-2884927993464429209OWAd33cc33f-9493-a0ba-bb38-65d76392d581" target="_blank">
[MIDI 1.0]</a>). MIDI files are presumed to use the General MIDI patch set.<br>
<span style="background-color:rgb(255,255,0)">X3D browser support is also recommended for MIDI 2.0</span> (see
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/references.html#MIDI-2" id="m_418692810189878218x_x_m_-2884927993464429209OWA41b75f29-2c9e-b8b2-7154-a5acef8fe941" target="_blank">
[MIDI 2.0]</a> and Web MIDI API (see <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/references.html#W3C-WebMIDI" id="m_418692810189878218x_x_m_-2884927993464429209OWAb669865f-ecb1-f94a-e3ac-652a22b74782" target="_blank">
[W3C-WebMIDI]</a>).</div>
<div style="direction:ltr;text-align:left;text-indent:0px;margin-top:1em;margin-bottom:1em;margin-left:40px;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
It is also recommended that X3D browsers support the following formats:</div>
<ul style="direction:ltr;text-align:left;margin-left:40px">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0);direction:ltr;margin-top:4px">
Format=MP3, container=MP3, compressed (see <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/references.html#I11172_1" id="m_418692810189878218x_x_m_-2884927993464429209OWA72769d1a-f33a-db6c-91f2-d515ffb0a675" target="_blank">
[I11172-1]</a>).</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0);direction:ltr;margin-top:4px">
Format=AAC, container=MP4 (see <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/references.html#14496_14" id="m_418692810189878218x_x_m_-2884927993464429209OWA791e37f7-30fd-cbc4-c927-57249e01bafc" target="_blank">
[14496-14]</a>).</li></ul>
<div style="direction:ltr;text-align:left;text-indent:0px;margin-top:4px;margin-bottom:1em;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Example X3Dscene with MIDI content:</div>
<div style="margin-top:4px;margin-bottom:1em">
<ul style="direction:ltr;text-align:left;margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0);text-indent:0px">
<div style="direction:ltr">X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 05 Appearance Material Textures, Pixel Texture Snowman</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr;margin:0px"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowmanIndex.html" id="m_418692810189878218x_x_m_-2884927993464429209OWAb9caa3fe-5283-aebf-9979-8758f2fdb4bb" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowmanIndex.html</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowman.x3d" id="m_418692810189878218x_x_m_-2884927993464429209OWA09dbcb92-6617-d4d7-7601-7cea9cd00360" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/PixelTextureSnowman.x3d</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div style="direction:ltr"><a href="https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/frosty2.mid" id="m_418692810189878218x_x_m_-2884927993464429209OWAbeced879-0129-f686-d951-7da0bcae9b44" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/frosty2.mid</a></div>
</li></ul>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Regarding MIDI content in ASCII form, it is certainly not disallowed in the X3D specification.   Might you please send some references and an example?  Perhaps an ASCII plaintext version of frosty2.</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Have fun with X3D and MIDI!  8)</div>
</div>
<div id="m_418692810189878218x_x_m_-2884927993464429209x_m_-6959943095254044046m_-2583774351546268228Signature">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">all the best, Don</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">--</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Don Brutzman  Naval Postgraduate School, Code USW/Br       
<a href="mailto:brutzman@nps.edu" id="m_418692810189878218x_x_m_-2884927993464429209OWA677c0f5c-8ad7-37f7-ada6-6791966be493" style="margin-top:0px;margin-bottom:0px" target="_blank">
brutzman@nps.edu</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">X3D graphics, virtual worlds, navy robotics
<a href="https://faculty.nps.edu/brutzman" id="m_418692810189878218x_x_m_-2884927993464429209OWA0ebd3608-1c7e-4546-af69-3dcdac77cf32" style="margin-top:0px;margin-bottom:0px" target="_blank">
https://faculty.nps.edu/brutzman</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
</div>
<div id="m_418692810189878218x_x_m_-2884927993464429209x_m_-6959943095254044046m_-2583774351546268228appendonsend">
</div>
<div style="direction:ltr;font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<hr style="direction:ltr;display:inline-block;width:98%">
<div id="m_418692810189878218x_x_m_-2884927993464429209x_m_-6959943095254044046m_-2583774351546268228divRplyFwdMsg" dir="ltr">
<span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" id="m_418692810189878218x_x_m_-2884927993464429209OWAab496f24-3074-4eaf-0514-28857b648177" target="_blank">x3d-public-bounces@web3d.org</a>>
 on behalf of GPU Group via x3d-public <<a href="mailto:x3d-public@web3d.org" id="m_418692810189878218x_x_m_-2884927993464429209OWA29e8ace5-3b8c-03d9-3703-351b9282bd43" target="_blank">x3d-public@web3d.org</a>><br>
<b>Sent:</b> Wednesday, August 21, 2024 3:14 PM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" id="m_418692810189878218x_x_m_-2884927993464429209OWA03bacc73-cb7e-82ba-70ac-295575547ea1" target="_blank">x3d-public@web3d.org</a>><br>
<b>Cc:</b> GPU Group <<a href="mailto:gpugroup@gmail.com" id="m_418692810189878218x_x_m_-2884927993464429209OWA7163bf68-1225-389b-88e1-11da12e2c864" target="_blank">gpugroup@gmail.com</a>><br>
<b>Subject:</b> Re: [x3d-public] Web3D 2024: HAnim Music Animation competition - Win cash prizes!</span>
<div> </div>
</div>
<div style="direction:ltr">MIDI > at least one web3d browser supports MIDI with nodes that give events, which could be used to synchronize HAnim motions to music tones / beats, or vice versa.</div>
<div style="direction:ltr">Something missing from prior work: a node that holds MIDI directly in ASCII format, for easy tinkering in X3D scene file.</div>
<div style="direction:ltr">-Doug</div>
</blockquote>
</blockquote>
</div>

</div></blockquote></div>