<div dir="ltr">Show the links to the marked-up Spec sheets and I can explain each proposed change.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 3, 2023 at 9:47 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-4582331339206940192">
<div lang="EN-US" style="overflow-wrap: break-word;"><div class="m_-4582331339206940192WordSection1"><p class="MsoNormal">The X3D Working Group meets weekly on Fridays 09-1000 Pacific on Web3D Consortium zoom channel.  Telcon information:<u></u><u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoPlainText"><a href="https://us02web.zoom.us/j/81634670698?pwd=a1VPeU5tN01rc21Oa3hScUlHK0Rxdz09" target="_blank">https://us02web.zoom.us/j/81634670698?pwd=a1VPeU5tN01rc21Oa3hScUlHK0Rxdz09</a> <u></u><u></u></li><li class="m_-4582331339206940192MsoPlainText"><a href="https://zoom.us/j/148206572" target="_blank">https://zoom.us/j/148206572</a>  Password 483805 <u></u><u></u></li><li class="m_-4582331339206940192MsoPlainText"><a href="https://www.web3d.org/member/teleconference-information" target="_blank">https://www.web3d.org/member/teleconference-information</a> <u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><ol style="margin-top:0in" start="1" type="1"><li class="m_-4582331339206940192MsoListParagraph"><b>X3D 2023 goals.  </b>Our primary activities for X3D Working Group in 2023 are focused on broad and correct deployment.<u></u><u></u></li></ol><p class="MsoNormal"><u></u> <u></u></p><ol style="margin-top:0in" start="1" type="a"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0.25in">Encourage consistent rendering, interaction and usage for the many tremendous capabilities in X3D4.<u></u><u></u></li><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0.25in">Update ISO specifications and implementations for multiple programming languages and file encodings to match X3D4.<u></u><u></u></li></ol><p class="MsoNormal"><u></u> <u></u></p><ol style="margin-top:0in" start="2" type="1"><li class="m_-4582331339206940192MsoListParagraph"><b>Focus: review of X3D4 Sound Component and W3C Audio API.</b><u></u><u></u></li></ol><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Our current goal is to identify and remedy and errors or gaps in the X3D4 Architecture with respect to W3C Audio API.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in">X3D 4.0 Architecture Draft International Specification (DIS) Clause 4, Sound component<u></u><u></u></li><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html</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_-4582331339206940192MsoListParagraph" style="margin-left:0in">Web Audio API, W3C Recommendation<u></u><u></u></li><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="https://www.w3.org/TR/webaudio" target="_blank">https://www.w3.org/TR/webaudio</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">As part of implementation efforts for FreeWrl, Doug Sanden has posted a series of public emails identifying possible mismatches or omission.<u></u><u></u></p><div style="border-top:none;border-right:none;border-left:none;border-bottom:1.5pt solid windowtext;padding:0in 0in 1pt"><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p></div><p class="MsoNormal">TimeDependentNode<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-January/018420.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-January/018420.html</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">notes apparent mismatch between X3D timing and W3C Audio timing representations for audio-source nodes.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/time.html#X3DTimeDependentNode" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/time.html#X3DTimeDependentNode</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><pre style="margin-left:0.25in">X3DTimeDependentNode : X3DChildNode {<u></u><u></u></pre><pre style="margin-left:0.25in">  SFString [in,out] description  ""<u></u><u></u></pre><pre style="margin-left:0.25in">  SFBool   [in,out] enabled      FALSE<u></u><u></u></pre><pre style="margin-left:0.25in">  SFBool   [in,out] loop         FALSE<u></u><u></u></pre><pre style="margin-left:0.25in">  SFNode   [in,out] metadata     NULL  [X3DMetadataObject]<u></u><u></u></pre><pre style="margin-left:0.25in">  SFTime   [in,out] pauseTime    0     (-∞,∞)<u></u><u></u></pre><pre style="margin-left:0.25in">  SFTime   [in,out] resumeTime   0     (-∞,∞)<u></u><u></u></pre><pre style="margin-left:0.25in">  SFTime   [in,out] startTime    0     (-∞,∞)<u></u><u></u></pre><pre style="margin-left:0.25in">  SFTime   [in,out] stopTime     0     (-∞,∞)<u></u><u></u></pre><pre style="margin-left:0.25in">  SFTime   [out]    elapsedTime<u></u><u></u></pre><pre style="margin-left:0.25in">  SFBool   [out]    isActive<u></u><u></u></pre><pre style="margin-left:0.25in">  SFBool   [out]    isPaused<u></u><u></u></pre><pre style="margin-left:0.25in">}<u></u><u></u></pre><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="https://www.w3.org/TR/webaudio/#AudioScheduledSourceNode" target="_blank">https://www.w3.org/TR/webaudio/#AudioScheduledSourceNode</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><pre style="margin-left:0.25in">interface <code><i>AudioScheduledSourceNode</i></code> : <a href="https://www.w3.org/TR/webaudio/#audionode" target="_blank">AudioNode</a> {<u></u><u></u></pre><pre style="margin-left:0.25in">  attribute <a href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" target="_blank">EventHandler</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-onended" target="_blank">onended</a>;<u></u><u></u></pre><pre style="margin-left:0.25in">  <a href="https://heycam.github.io/webidl/#idl-undefined" target="_blank">undefined</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-start" target="_blank">start</a>(optional <a href="https://heycam.github.io/webidl/#idl-double" target="_blank">double</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-start-when-when" target="_blank">when</a> = 0);<u></u><u></u></pre><pre style="margin-left:0.25in">  <a href="https://heycam.github.io/webidl/#idl-undefined" target="_blank">undefined</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-stop" target="_blank">stop</a>(optional <a href="https://heycam.github.io/webidl/#idl-double" target="_blank">double</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-stop-when-when" target="_blank">when</a> = 0);<u></u><u></u></pre><pre style="margin-left:0.25in">};<u></u><u></u></pre><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Design goals are attempting to align existing patterns and semantics wherever possible.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Matching for sources makes sense as a direct correspondence.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Matching for X3DSoundDestinationNode and X3DSoundProcessingNode was included to provide X3D authors with fine-grained control of nodes including animation options in addition to enabled/disabled.  For larger audio graphs impacting multiple outputs from a large diverse scene, such additional flexibility of control seemed to add value.  Not considered heavyweight since it is an existing (and commonly needed) interface.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Note that we are not re-designing at this point, rather we are checking for flaws or omissions.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Seems like this is implementable… let’s review carefully please.<u></u><u></u></p><div style="border-top:none;border-right:none;border-left:none;border-bottom:1.5pt solid windowtext;padding:0in 0in 1pt"><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p></div><p class="MsoNormal">Analyser Outputs<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018423.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018423.html</a><u></u><u></u></li><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="https://medialab.hmu.gr/minipages/x3domAudio/SpatialSoundFilter.xhtml" target="_blank">https://medialab.hmu.gr/minipages/x3domAudio/SpatialSoundFilter.xhtml</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Audio graph drawing produced by Efi Lakka.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018423.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018423.html</a><u></u><u></u></li><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Analyser" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Analyser</a><u></u><u></u></li><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="https://www.w3.org/TR/webaudio/#AnalyserNode" target="_blank">https://www.w3.org/TR/webaudio/#AnalyserNode</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">“It is a mystery to me how we would use it to visualize without access to the data.”<u></u><u></u></p><div style="border-top:none;border-right:none;border-left:none;border-bottom:1.5pt solid windowtext;padding:0in 0in 1pt"><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">First, a node implementation can provide analytic output, i.e. browser-dependent outputs.<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Second, the Web Audio API does include output fields.<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-size:10pt;font-family:"Courier New"">  undefined getFloatFrequencyData (Float32Array array);<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-size:10pt;font-family:"Courier New"">  undefined getByteFrequencyData (Uint8Array array);<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-size:10pt;font-family:"Courier New"">  undefined getFloatTimeDomainData (Float32Array array);<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-size:10pt;font-family:"Courier New"">  undefined getByteTimeDomainData (Uint8Array array);<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-size:10pt;font-family:"Courier New""><u></u> <u></u></span></p><p class="MsoNormal" style="border:none;padding:0in">So point well taken that we should provide corresponding outputs.  How should we define corresponding fields in X3D?  Doug’s subsequent suggestion:<span style="font-size:10pt;font-family:"Courier New""><u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p></div><pre><u></u> <u></u></pre><pre style="margin-left:0.5in"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">        </span></span></span><u></u><span style="font-family:Calibri,sans-serif"><a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018430.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018430.html</a><u></u><u></u></span></pre><pre><span style="font-family:Calibri,sans-serif"><u></u> <u></u></span></pre><pre style="margin-left:0.25in">frequencyData MFFloat outputOnly<u></u><u></u></pre><pre style="margin-left:0.25in">timeDomainData MFFloat outputOnly<u></u><u></u></pre><pre><span style="font-family:Calibri,sans-serif"><u></u> <u></u></span></pre><pre><span style="font-family:Calibri,sans-serif">with cool example outputs demonstrated<u></u><u></u></span></pre><pre><span style="font-family:Calibri,sans-serif"><u></u> <u></u></span></pre><pre style="margin-left:0.5in"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">        </span></span></span><u></u><span style="font-family:Calibri,sans-serif"><a href="https://drive.google.com/file/d/1h_ECxw7IwGVvYNblBw9thIEsqMnnZ6a9/view" target="_blank">https://drive.google.com/file/d/1h_ECxw7IwGVvYNblBw9thIEsqMnnZ6a9/view</a><u></u><u></u></span></pre><pre style="margin-left:0.5in"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">        </span></span></span><u></u><span style="font-family:Calibri,sans-serif"><a href="https://drive.google.com/file/d/1OWtDr-cvCnwhEDeORUfusiyAaEBL_vuj/view" target="_blank">https://drive.google.com/file/d/1OWtDr-cvCnwhEDeORUfusiyAaEBL_vuj/view</a><u></u><u></u></span></pre><div style="border-top:none;border-right:none;border-left:none;border-bottom:1.5pt solid windowtext;padding:0in 0in 1pt"><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Resolution?<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p></div><pre><u></u> <u></u></pre><div style="border-top:none;border-right:none;border-left:none;border-bottom:1.5pt solid windowtext;padding:0in 0in 1pt"><p class="MsoNormal" style="border:none;padding:0in">Sound v4 suggestions<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">* <a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018456.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018456.html</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">DynamicsCompressor: make field type for attack and release the same (both in seconds)<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">*  <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#DynamicsCompressor" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#DynamicsCompressor</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">DynamicsCompressor : X3DSoundProcessingNode {<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">  SFFloat   [in,out] attack                0.003      [0,∞)<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">  SFTime   [in,out] release               0.25       [0,∞)<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">* <a href="https://www.w3.org/TR/webaudio/#DynamicsCompressorNode" target="_blank">https://www.w3.org/TR/webaudio/#DynamicsCompressorNode</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">  readonly attribute AudioParam attack;<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">  readonly attribute AudioParam release;<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Wikipedia: Perceptual attack time<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">* <a href="https://en.wikipedia.org/wiki/Perceptual_attack_time" target="_blank">https://en.wikipedia.org/wiki/Perceptual_attack_time</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">* “Perceptual Attack Time (often abbreviated "PAT") is a subjective measure of the time instant at which a musical sound's rhythmic emphasis is heard.”<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Agreed with that change, makes sense that both X3D fields should have type SFTime.<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">____<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">ChannelMerger<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">* <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#ChannelMerger" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#ChannelMerger</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">*  The ChannelMergerNode Interface<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in">* <a href="https://www.w3.org/TR/webaudio/#ChannelMergerNode" target="_blank">https://www.w3.org/TR/webaudio/#ChannelMergerNode</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Channel count often not found in Web Audio API, seems to be implicit.  Adding lots of variations to match W3C Audio API details would turn X3D interfaces into a programming interface that required Script support.  Thus ChannelMerger and ChannelSplitter simply merge all or split all.  ChannelSelector provided to pick just one.  Hopefully this provides authoring paths to handle any case.<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Suggest we continue if that is workable.  Further refinements or extensions are likely best deferred for a possible future X3D 4.1 version once better X3D practice and understanding is established.<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Convolution: allow url loading of buffer field<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">* <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Convolver" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Convolver</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">Convolver : X3DSoundProcessingNode {<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">  MFFloat  [in,out] buffer                []         [−1,1]<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New""><u></u> <u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">  The buffer field represents a memory-resident audio asset (for one-shot sounds and other short audio clips). Its format is non-interleaved 32-bit linear floating-point PCM values with a normal range of [−1,1], but values are not limited to this range. It can contain one or more channels. Typically, it would be expected that the length of the PCM data would be fairly short (usually somewhat less than a minute). For longer sounds, such as music soundtracks, streaming should be used with the <audio> HTML element and AudioClip.<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">* <a href="https://www.w3.org/TR/webaudio/#convolvernode" target="_blank">https://www.w3.org/TR/webaudio/#convolvernode</a><u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">interface ConvolverNode : AudioNode {<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">  constructor (BaseAudioContext context, optional ConvolverOptions options = {});<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">  attribute AudioBuffer? buffer;<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">  attribute boolean normalize;<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><span style="font-family:"Courier New"">};<u></u><u></u></span></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p><p class="MsoNormal" style="border:none;padding:0in">Seems reasonable to permit a url alternative for buffer – but what formats should be allowed?  Should be well defined.<u></u><u></u></p><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p></div><p class="MsoNormal">ListenerPointSource<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018570.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018570.html</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Spec: “If the <i>dopplerEnabled</i> field is TRUE, ListenerPointSource <i>children</i> sources which are moving spatially in the transformation hierarchy, relative to the location of the ListenerPointSource node, shall apply velocity-induced frequency shifts corresponding to Doppler effect.”<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">The word “children” and phrase “relative to the location of the ListenerPointSource node,“ should be omitted since there are no children.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Hopefully that is sufficient to remove any remaining ambiguity.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018572.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018572.html</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">ListenerPointSource creates (is a source of) audio streams, based on its location and orientation in the scene.  No input field is needed.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><ul style="margin-top:0in" type="disc"><li class="m_-4582331339206940192MsoListParagraph" style="margin-left:0in"><a href="http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018573.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018573.html</a><u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">“Q6. while paused or stopped, should SAD stream be buffered/queued or lost? If buffered, should there be a buffer size limit?”<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Defer to Web Audio API, we are not adding further constraints or limitations.<u></u><u></u></p><div style="border-top:none;border-right:none;border-left:none;border-bottom:1.5pt solid windowtext;padding:0in 0in 1pt"><p class="MsoNormal" style="border:none;padding:0in"><u></u> <u></u></p></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Anything else Doug?<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="font-family:Century,serif">all the best, Don<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Century,serif">-- <u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Century,serif">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-family:Century,serif">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-family:Century,serif">X3D graphics, virtual worlds, navy robotics, data  <a href="http://faculty.nps.edu/brutzman" target="_blank">http://faculty.nps.edu/brutzman</a><u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p></div></div></div></blockquote></div>