[x3d-public] X3D minutes1 May 2020: X3D4 Audio and Sound Component

John Carlson yottzumm at gmail.com
Mon May 4 10:40:45 PDT 2020


I am trying to reconcile events and effects in X3D.   There appear to be 3
ways to do this.

Refer to a DEF node in AudioContext, HAnim.

Refer to nodes/fields in a route.

Parents affecting children (Transform).

Would it be appropriate to add an AudioTransform node?  How do we send
sound to shapes?   Do we need something like the various light nodes for
sound?

John

On Sat, May 2, 2020 at 2:05 PM Don Brutzman <brutzman at nps.edu> wrote:

> Friday 1 May 2020, 0800-0930 pacific, X3D Working Group continues its
> regular weekly efforts on building X3D4 specification.
>
> Attendees: Efi Lakka, Athanasios Malamos, John Carlson, Doug Sanden, Anita
> Havele, Vince Marchetti, Dick Puk, Don Brutzman.
>
> Thanks Efi and Thanos for joining us during a holiday, much appreciated as
> we press ahead with X3D4.
>
> [1.1] X3D Graphics Working Group
>        https://www.web3d.org/working-groups/x3d
>
> Confirmed that no member-only information is present in these minutes.
> Noted that the information here:
> - helps members pay full attention to the detailed improvement of X3D4,
> - helps community understand and trust the diligence of the process, and
> - helps everyone understand that Web3D Consortium offers serious member
> value!
>    https://www.web3d.org/join
>
> Zoom room coordinates are now linked via the Web3D Calendar. Note that all
> Web3D zoom conference lines are now protected by password.
>
> [1.2] Web3D Teleconference Information
>        https://www.web3d.org/member/teleconference-information
>
> [1.3] Web3D Calendar
>        https://www.web3d.org/calendar/month
>
> https://www.web3d.org/calendar/x3d-graphics-working-group/2019-09-13t150000-2019-09-13t163000-2019-09-20t150000-2019-09
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - -
>
> 2. *Mantis Issue Tracker*
>
> Feedback on Mantis issues remains welcome. Dick and I continue to make
> progress with 6 more editorial changes resolved this week.
>
> [2.0] Mantis: View Issues
>        https://www.web3d.org/member-only/mantis/view_all_bug_page.php
>
> Troubleshooting access problems:
>
> a. There is a double (maybe triple?) login process.  We need a help page
> page documenting this.
>
> b. Doug is able to login as member but does not get the MEMBER menu that
> includes the MANTIS ISSUE TRACKER link.
>
> c. John is able to login as member, and then get to MANTIS ISSUE TRACKER
> link, but not all the way into the Mantis system.
>
> d. Anita will pursue and resolve their access difficulties - thank you.
>
> e. Vince asked an excellent question: is there any member-only information
> in there to protect?  Dick and I are not aware of anything technical.  I
> did a search for terms like Member, IPR, proprietary with no hits;
> exporting all X3D issues as CSV had positive indication 'public' for all
> issues.  The only restricted issues appear to be in the Website project.
> Most recent resolution was 2019-11-09, some are pending since 2016.  Issues
> list forwarded to communications team.
>
> f. Facilitating access or loosening restrictions to mantis will be very
> help.  This is a recurring problem that consumes group time and inhibits
> progress.
>
> We next reviewed Mantis process, progress and status.  7 issues were
> resolved this past week.
>
> Id      Project Reporter        Assigned To     Priority        Severity
>       View Status     Updated Summary Status  Resolution
> 1286    X3D     brutzman        brutzman        normal  minor   public
> 4/30/2020       rename "Node index" as "Node, abstract type, and abstract
> interface index", also check Concepts resolved        fixed
> 1298    X3D     brutzman        brutzman        normal  minor   public
> 4/30/2020       Use consistent nomenclature, "abstract node type" rather
> than base type         resolved        fixed
> 1288    X3D     brutzman        brutzman        normal  minor   public
> 4/28/2020       ensure abstract interfaces are not referred to as abstract
> node types           resolved        fixed
> 1294    X3D     brutzman        brutzman        normal  minor   public
> 4/28/2020       X3DPickSensorNode intersectionType values BOUNDS and
> GEOMETRY are undefined     resolved        fixed
> 1295    X3D     brutzman        brutzman        normal  minor   public
> 4/28/2020       X3DPickSensorNode objectType example value "TERRAIN" not
> explained              resolved        fixed
> 1296    X3D     brutzman        brutzman        normal  minor   public
> 4/28/2020       consistent definitions in tables for Texture
> magnification/minification modes   resolved        fixed
> 1297    X3D     brutzman        brutzman        normal  minor   public
> 4/28/2020       Table 18.10 — Texture compression modes, "NICEST"
> description   resolved        fixed
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - -
>
> 3. *Audio and Sound: Overview*
>
> Today's session focused on X3D Sound Component and work by Efi Lakka and
> Athanasios Malamos to gain compatibility with W3C Web Audio components that
> are commonly being implemented in HTML5 browsers.  Efi's recent
> modifications to PR9 for shape.html and sound.html have been integrated
> online in github.  For members:
>
> [3.0] X3D4 draft components, github
>
> https://github.com/Web3DConsortium/X3D/tree/master/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.0/ISO-IEC19775-1v4-WD1/Part01/components
>
> [3.1] Mantis 1267: Strategies to Improve X3Dv4 Audio and Sound Component
>        https://www.web3d.org/member-only/mantis/view.php?id=1267
>
> Slides from last meeting now attached to following page
>
> [3.2] X3D4 Implementations: attachments
>        https://www.web3d.org/x3dv4-implementations
>        X3dSoundPresentationSynopsis_CallMeeting17_04_2020.pdf
>
> Efi provided a full set of references:
>
> [3.3] X3D4 Audio references
>
> https://www.dropbox.com/sh/s5cien4rzg4i9fy/AAA40LrsqBS_RfUODJMOWaEoa?dl=0
>
> This link makes available all the content of the Sound Nodes Proposal in
> X3D (slides from October, Demo, whitepaper, etc...).
>
> Important addition: acoustic properties have been proposed for Shape
> component.  For a variety of reasons, we think that the relevant fields are
> better added as an AcousticProperties node, rather than further individual
> fields under Material.  This would appear as under Appearance as an
> acousticProperties field (similar to how LineProperties, PointProperties
> and TextureProperties are handled).
>
> =================================
> 12.4.1 Appearance
> Appearance : X3DAppearanceNode {
>    SFNode [in,out] acousticProperties NULL [AcousticProperties]
>    SFNode [in,out] fillProperties     NULL [FillProperties]
>    SFNode [in,out] lineProperties     NULL [LineProperties]
>    SFNode [in,out] pointProperties    NULL [PointProperties]
>    SFNode [in,out] material           NULL [X3DMaterialNode]
>    SFNode [in,out] metadata           NULL [X3DMetadataObject]
>    MFNode [in,out] shaders            []   [X3DShaderNode]
>    SFNode [in,out] texture            NULL [X3DTextureNode]
>    SFNode [in,out] textureTransform   NULL [X3DTextureTransformNode]
> }
> =================================
>
> Incidentally AcousticProperties seems like the correct name for this node
> (rather than SoundProperties) because of it's relationship to geometry in a
> world, rather than sound generation per se.
>
> [3.4] Wiktionary: Acoustics
>        https://en.wiktionary.org/wiki/acoustics
>        "1. The physical quality of a space for conveying sound."
>
> Many questions were considered during the meeting, big conversation.
>
> *Analysis review*
>
> - X3D nodes themselves have /inheritance relationships/ to abstract node
> types and abstract interfaces.
> -- Abstract node types have naming pattern X3D*Something*Node
> -- Abstract interfaces have naming pattern X3D*Something*Object
>
> - X3D nodes contain child /fields/ which can contain different nodes (or
> nodes having certain node types). Example:
>    Group : X3DGroupingNode {
>       MFNode  [in,out] children       []       [X3DChildNode] // ...
>
> - Node inheritance and contained SFNode fields are completely separate
> issues!
>
> - Likely much of our collective puzzlement derives from intermingling the
> two.  Much of our conversation has been a bit circular as a result.
>
> - For current X3D 3.3 detail please see the always-valuable ASCII-art tree
> diagram (originally by Joe Williams).
>
> [3.5] 4.4.2.3 Interface hierarchy
>
> https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#InterfaceHierarchy
>
> It is clear that the resulting structures in the X3D4 Sound Component will
> be well defined.
> - We are aligning a mature W3C API with X3D specification parlance.
> - There is no desire to be creative and invent a new W3C Audio API here!!
> - This next effort will focus on how to deconflict jargon and align
> interface hierarchy, as well as parent-child node relationships.
> - Then we define connection relationships.
>
> Efi and Thanos will spend a few hours to get clearer on this. They will
> then meet with Don and Dick to discuss further.  Then we will come back to
> the working group.
>
> As a reward for everyone's patience today, our next session will start
> with the Demo!  8)
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - -
>
> 4. *Audio and Sound: Questions and Dialog*
>
> Conversation details follow - still somewhat foggy!  That is OK because
> our understanding is converging, only because of lots of work and patient
> dialog together, going through all issues repeatedly until we finally
> achieve something clear.  (What a great group.)
>
> --------------------
>
> /Fundamental structure/
>
> a1. How do we connect filters together in a chain?  Parent-child node
> relationship, ROUTE connections, or something else?
> a2. We need to discuss the hierarchy of Audio nodes
>
> a3. Merge of AudioNode with X3DSoundSourceNode, or rename as
> X3DAudioNode?  And variations thereof... good discussion
>
>  From X3D Specification:
>
> AudioClip : X3DSoundSourceNode, X3DUrlObject {
>    ...
> }
>
> 16.4.2 Sound
> Sound : X3DSoundNode {
>    ...
>    SFNode  [in,out] source     NULL  [X3DSoundSourceNode]
> }
>
>  From this we see that AudioClip is not an X3DChildNode.  Rather it can
> only fit inside a Sound node as the /source/ field.
>
> Similarly, a MovieTexture node can be a /source/ field.
>
> Both AudioClip and MovieTexture have /X3DSoundSourceNode/ abstract node
> type.
>
> Therefore, it seems that we want AudioContext as a /source/ field as well,
> in turn making AudioContext a /X3DSoundSourceNode/ abstract node type.
>
> AudioNode seems to be an abstract node interface.  If so it is better
> named something like /X3DAudioNode/ abstract node type...
>
> Alternatively we might say that AudioContext is a little bit different and
> is actually a replacement for Sound node.
>
> =====================
> 16.3.1 X3DSoundNode
> X3DSoundNode : X3DChildNode {
>    SFNode [in,out] metadata NULL [X3DMetadataObject]
> }
>
> This abstract node type is the base for all sound nodes.
>
> 16.3.2 X3DSoundSourceNode
>
> X3DSoundSourceNode : X3DTimeDependentNode {
>    SFString [in,out] description      ""
>    SFBool   [in,out] loop             FALSE
>    SFNode   [in,out] metadata         NULL [X3DMetadataObject]
>    SFTime   [in,out] pauseTime        0    (-∞,∞)
>    SFFloat  [in,out] pitch            1.0  (0,∞)
>    SFTime   [in,out] resumeTime       0    (-∞,∞)
>    SFTime   [in,out] startTime        0    (-∞,∞)
>    SFTime   [in,out] stopTime         0    (-∞,∞)
>    SFTime   [out]    duration_changed
>    SFTime   [out]    elapsedTime
>    SFBool   [out]    isActive
>    SFBool   [out]    isPaused
>
> # new:
>    SFNode   [in,out] transform         NULL [Transform]
>    SFNode   [in,out] panner            NULL [PannerNode]
>    SFNode   [in,out] filter            NULL [BiquadFilterNode]
>    SFNode   [in,out] delay             NULL [DelayNode]
> }
> =====================
>
> /Node inheritance and field details/
>
> b1. X3DSoundSourceNode is abstract and cannot be used as a node - need to
> fix example. Sound node, with Web Audio chain as input?
> b2. Change name of AudioParam to AudioParameters?
> b4. Are all the “Effects” really the list of filters in which case we may
> need an intermediate X3DAudioFilterNode interface
> b3. Current architecture disallows inheriting a node interface from a
> concrete node so we may need an X3DAudioContextNode abstract node type and
> concrete nodes to flesh it out.
> b4. AudioNode inherits from a concrete node type (see g above)
> b5. Why is Transform inside AudioNode?
> b6. Latency hint string or double precision decision, or both?
>
> /Editorial/
> c1. Please add numbers to the slides
> c2. Please add revision date to first page of slide sets
> c3. When ready, should we move these to web3d version control?
>
> /Future work/
> d1. Examples in version control.
> d2. link to example models for demonstration and comparison with evolving
> specification interfaces.
> d3. start list of feedback comments for W3C Audio working group.
> d4. How we are going to test conformance of browsers with respect to
> sound.   How did we do it with the previous version?
>
> [4.0] Writing tests for the Web Audio API
>        https://blog.chrislowis.co.uk/2014/04/30/testing-web-audio.html
>
> d5. Is this like 7:1 or 5:1 sound?
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - -
>
> 5. *Next + Thanks*
>
> Corrections, clarifications and additions to these best-effort minutes are
> always welcome.
>
> We will continue iterating on Audio and Sound, Physically Based Rendering
> (PBR) and glTF, HTML5 interactions and Mantis issues.
>
> Steady progress continues, figuring out every worthy challenge.  Thanks
> for all activity and attendance.
>
> Special thanks to Doug Sanden for joining us today.  Your implementation
> experience and X3D knowledge proved really valuable.
>
> ======================================
> [5.0] FreeWRL X3D/VRML browser
>        http://freewrl.sourceforge.net
>
> FreeWRL is an X3D/VRML open source viewer for Windows, Linux, OSX and
> Android.
>
> FreeWRL has had a long track record, is here to stay. X3D Components get
> added, problems get resolved. Program with GLSL Shaders using the X3D
> Shaders Component, put your models exactly where you want them with the
> Geospatial Component, or just throw triangles to the screen as Extrusions,
> IndexedFaceSets, TriangleSets, Circle2D, Disk2D, Spheres, Boxes, Cubes; the
> list goes on and on.
>
> With royalty free open standards, your models will continue to render,
> year after year.
> ======================================
>
> Have Fun With X3D!  8)
>
> all the best, Don
> --
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> X3D graphics, virtual worlds, navy robotics
> http://faculty.nps.edu/brutzman
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200504/894a7896/attachment-0001.html>


More information about the x3d-public mailing list