<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Century;
        panose-1:2 4 6 4 5 5 5 2 3 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:251857693;
        mso-list-type:hybrid;
        mso-list-template-ids:854870204 67698713 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.25in;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:1.75in;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.75in;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:3.25in;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.75in;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:4.25in;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:4.75in;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:553079115;
        mso-list-type:hybrid;
        mso-list-template-ids:2100214894 -1838132160 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:22.5pt;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:58.5pt;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:94.5pt;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:130.5pt;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:166.5pt;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:202.5pt;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:238.5pt;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:274.5pt;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:310.5pt;
        text-indent:-9.0pt;}
@list l2
        {mso-list-id:560406225;
        mso-list-type:hybrid;
        mso-list-template-ids:750027378 519217722 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l3
        {mso-list-id:1109621787;
        mso-list-type:hybrid;
        mso-list-template-ids:-206155874 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l3:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;}
@list l3:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
@list l3:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:1.25in;
        text-indent:-9.0pt;}
@list l3:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.75in;
        text-indent:-.25in;}
@list l3:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.25in;}
@list l3:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:2.75in;
        text-indent:-9.0pt;}
@list l3:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.25in;
        text-indent:-.25in;}
@list l3:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.75in;
        text-indent:-.25in;}
@list l3:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:4.25in;
        text-indent:-9.0pt;}
@list l4
        {mso-list-id:1403869727;
        mso-list-type:hybrid;
        mso-list-template-ids:486066396 -222130382 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l4:level1
        {mso-level-start-at:4;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l4:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l4:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l4:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l4:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l4:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l4:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l4:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l4:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>The X3D Working Group meets weekly on Fridays 09-1000 Pacific on Web3D Consortium zoom channel.  Telcon information:<o:p></o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l4 level1 lfo3'><a href="https://us02web.zoom.us/j/81634670698?pwd=a1VPeU5tN01rc21Oa3hScUlHK0Rxdz09">https://us02web.zoom.us/j/81634670698?pwd=a1VPeU5tN01rc21Oa3hScUlHK0Rxdz09</a> <o:p></o:p></li><li class=MsoPlainText style='mso-list:l4 level1 lfo3'><a href="https://zoom.us/j/148206572">https://zoom.us/j/148206572</a>  Password 483805 <o:p></o:p></li><li class=MsoPlainText style='mso-list:l4 level1 lfo3'><a href="https://www.web3d.org/member/teleconference-information">https://www.web3d.org/member/teleconference-information</a> <o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><ol style='margin-top:0in' start=1 type=1><li class=MsoListParagraph style='margin-left:-13.5pt;mso-list:l1 level1 lfo4'><b>X3D 2023 goals.  </b>Our primary activities for X3D Working Group in 2023 are focused on broad and correct deployment.<o:p></o:p></li></ol><p class=MsoNormal><o:p> </o:p></p><ol style='margin-top:0in' start=1 type=a><li class=MsoListParagraph style='margin-left:.25in;mso-list:l0 level1 lfo5'>Encourage consistent rendering, interaction and usage for the many tremendous capabilities in X3D4.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:.25in;mso-list:l0 level1 lfo5'>Update ISO specifications and implementations for multiple programming languages and file encodings to match X3D4.<o:p></o:p></li></ol><p class=MsoNormal><o:p> </o:p></p><ol style='margin-top:0in' start=2 type=1><li class=MsoListParagraph style='margin-left:-13.5pt;mso-list:l1 level1 lfo4'><b>Focus: review of X3D4 Sound Component and W3C Audio API.</b><o:p></o:p></li></ol><p class=MsoNormal><o:p> </o:p></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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>X3D 4.0 Architecture Draft International Specification (DIS) Clause 4, Sound component<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>Web Audio API, W3C Recommendation<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>https://www.w3.org/TR/webaudio<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></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.<o:p></o:p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal>TimeDependentNode<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>http://web3d.org/pipermail/x3d-public_web3d.org/2023-January/018420.html<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>notes apparent mismatch between X3D timing and W3C Audio timing representations for audio-source nodes.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/time.html#X3DTimeDependentNode<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><pre style='margin-left:.25in'>X3DTimeDependentNode : X3DChildNode {<o:p></o:p></pre><pre style='margin-left:.25in'>  SFString [in,out] description  ""<o:p></o:p></pre><pre style='margin-left:.25in'>  SFBool   [in,out] enabled      FALSE<o:p></o:p></pre><pre style='margin-left:.25in'>  SFBool   [in,out] loop         FALSE<o:p></o:p></pre><pre style='margin-left:.25in'>  SFNode   [in,out] metadata     NULL  [X3DMetadataObject]<o:p></o:p></pre><pre style='margin-left:.25in'>  SFTime   [in,out] pauseTime    0     (-∞,∞)<o:p></o:p></pre><pre style='margin-left:.25in'>  SFTime   [in,out] resumeTime   0     (-∞,∞)<o:p></o:p></pre><pre style='margin-left:.25in'>  SFTime   [in,out] startTime    0     (-∞,∞)<o:p></o:p></pre><pre style='margin-left:.25in'>  SFTime   [in,out] stopTime     0     (-∞,∞)<o:p></o:p></pre><pre style='margin-left:.25in'>  SFTime   [out]    elapsedTime<o:p></o:p></pre><pre style='margin-left:.25in'>  SFBool   [out]    isActive<o:p></o:p></pre><pre style='margin-left:.25in'>  SFBool   [out]    isPaused<o:p></o:p></pre><pre style='margin-left:.25in'>}<o:p></o:p></pre><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>https://www.w3.org/TR/webaudio/#AudioScheduledSourceNode<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><pre style='margin-left:.25in'>interface <code><i>AudioScheduledSourceNode</i></code> : <a href="https://www.w3.org/TR/webaudio/#audionode">AudioNode</a> {<o:p></o:p></pre><pre style='margin-left:.25in'>  attribute <a href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandler</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-onended">onended</a>;<o:p></o:p></pre><pre style='margin-left:.25in'>  <a href="https://heycam.github.io/webidl/#idl-undefined">undefined</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-start">start</a>(optional <a href="https://heycam.github.io/webidl/#idl-double">double</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-start-when-when">when</a> = 0);<o:p></o:p></pre><pre style='margin-left:.25in'>  <a href="https://heycam.github.io/webidl/#idl-undefined">undefined</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-stop">stop</a>(optional <a href="https://heycam.github.io/webidl/#idl-double">double</a> <a href="https://www.w3.org/TR/webaudio/#dom-audioscheduledsourcenode-stop-when-when">when</a> = 0);<o:p></o:p></pre><pre style='margin-left:.25in'>};<o:p></o:p></pre><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Design goals are attempting to align existing patterns and semantics wherever possible.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Matching for sources makes sense as a direct correspondence.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Note that we are not re-designing at this point, rather we are checking for flaws or omissions.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Seems like this is implementable… let’s review carefully please.<o:p></o:p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal>Analyser Outputs<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018423.html<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>https://medialab.hmu.gr/minipages/x3domAudio/SpatialSoundFilter.xhtml<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Audio graph drawing produced by Efi Lakka.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018423.html<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Analyser<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>https://www.w3.org/TR/webaudio/#AnalyserNode<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>“It is a mystery to me how we would use it to visualize without access to the data.”<o:p></o:p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>First, a node implementation can provide analytic output, i.e. browser-dependent outputs.<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>Second, the Web Audio API does include output fields.<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>  undefined getFloatFrequencyData (Float32Array array);<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>  undefined getByteFrequencyData (Uint8Array array);<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>  undefined getFloatTimeDomainData (Float32Array array);<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>  undefined getByteTimeDomainData (Uint8Array array);<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></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:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><pre><o:p> </o:p></pre><pre style='margin-left:.5in;text-indent:-.25in;mso-list:l4 level1 lfo3'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>        </span></span></span><![endif]><span style='font-family:"Calibri",sans-serif'>http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018430.html<o:p></o:p></span></pre><pre><span style='font-family:"Calibri",sans-serif'><o:p> </o:p></span></pre><pre style='margin-left:.25in'>frequencyData MFFloat outputOnly<o:p></o:p></pre><pre style='margin-left:.25in'>timeDomainData MFFloat outputOnly<o:p></o:p></pre><pre><span style='font-family:"Calibri",sans-serif'><o:p> </o:p></span></pre><pre><span style='font-family:"Calibri",sans-serif'>with cool example outputs demonstrated<o:p></o:p></span></pre><pre><span style='font-family:"Calibri",sans-serif'><o:p> </o:p></span></pre><pre style='margin-left:.5in;text-indent:-.25in;mso-list:l4 level1 lfo3'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>        </span></span></span><![endif]><span style='font-family:"Calibri",sans-serif'>https://drive.google.com/file/d/1h_ECxw7IwGVvYNblBw9thIEsqMnnZ6a9/view<o:p></o:p></span></pre><pre style='margin-left:.5in;text-indent:-.25in;mso-list:l4 level1 lfo3'><![if !supportLists]><span style='font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>        </span></span></span><![endif]><span style='font-family:"Calibri",sans-serif'>https://drive.google.com/file/d/1OWtDr-cvCnwhEDeORUfusiyAaEBL_vuj/view<o:p></o:p></span></pre><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>Resolution?<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><pre><o:p> </o:p></pre><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'>Sound v4 suggestions<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>* http://web3d.org/pipermail/x3d-public_web3d.org/2023-February/018456.html<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>DynamicsCompressor: make field type for attack and release the same (both in seconds)<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>*  https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#DynamicsCompressor<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>DynamicsCompressor : X3DSoundProcessingNode {<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>  SFFloat   [in,out] attack                0.003      [0,∞)<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>  SFTime   [in,out] release               0.25       [0,∞)<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>* https://www.w3.org/TR/webaudio/#DynamicsCompressorNode<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>  readonly attribute AudioParam attack;<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>  readonly attribute AudioParam release;<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>Wikipedia: Perceptual attack time<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>* https://en.wikipedia.org/wiki/Perceptual_attack_time<o:p></o:p></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.”<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>Agreed with that change, makes sense that both X3D fields should have type SFTime.<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>____<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>ChannelMerger<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>* https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#ChannelMerger<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>*  The ChannelMergerNode Interface<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'>* https://www.w3.org/TR/webaudio/#ChannelMergerNode<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></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.<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></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.<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>Convolution: allow url loading of buffer field<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>* https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/sound.html#Convolver<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'>Convolver : X3DSoundProcessingNode {<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'>  MFFloat  [in,out] buffer                []         [−1,1]<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'><o:p> </o:p></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.<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>* https://www.w3.org/TR/webaudio/#convolvernode<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'>interface ConvolverNode : AudioNode {<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'>  constructor (BaseAudioContext context, optional ConvolverOptions options = {});<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'>  attribute AudioBuffer? buffer;<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'>  attribute boolean normalize;<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><span style='font-family:"Courier New"'>};<o:p></o:p></span></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></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.<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal>ListenerPointSource<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018570.html<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></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.”<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hopefully that is sufficient to remove any remaining ambiguity.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018572.html<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l4 level1 lfo3'>http://web3d.org/pipermail/x3d-public_web3d.org/2023-March/018573.html<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></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?”<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Defer to Web Audio API, we are not adding further constraints or limitations.<o:p></o:p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Anything else Doug?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-family:"Century",serif'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Century",serif'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Century",serif'>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Century",serif'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA  +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Century",serif'>X3D graphics, virtual worlds, navy robotics, data  http://faculty.nps.edu/brutzman<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>