[x3d-public] problem: omissions in X3D4 nodes implementing Web Audio API?

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Jan 16 12:21:07 PST 2023


Dr. Malamos and I had an excellent examination and discussion regarding the
(possibly) missing enumerations of Web Audio API.

 

*	X3D4 Architecture, Sound Component
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/
components/sound.html

 

*	Web Audio API, W3C Recommendation, 17 June 2021
*	https://www.w3.org/TR/webaudio

 

Some of the apparent gaps were part of the specification, perhaps just in
different ways.  For example,

 

*	Panner node and hrtf functionality is integrated as part of Spatial
Sound
*	X3D4 Architecture, Sound Component, 16.4.18 SpatialSound
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/
components/sound.html#SpatialSound
*	"SpatialSound represents a processing node which positions, emits
and spatializes an audio stream in three-dimensional (3D) space. This node
provides full spatialization of panner capabilities defined by W3C Web Audio
API [W3C-WebAudio] within an X3D scene.
*	    SFBool   [in,out] enableHRTF        FALSE
*	"The enableHRTF field specifies whether to enable Head Related
Transfer Function (HRTF) auralization, if available."
*	[etc.]

 

Some of these might have been overlooked as inputOutput fields and yet
remain valuable as necessary outputOnly values for keeping track of a
running audio context, for example:

*        enum AudioContextState {
   <https://www.w3.org/TR/webaudio/#dom-audiocontextstate-suspended>
"suspended",
   <https://www.w3.org/TR/webaudio/#dom-audiocontextstate-running>
"running",
   <https://www.w3.org/TR/webaudio/#dom-audiocontextstate-closed> "closed"
};

 

We expect to document each of these correspondences.  Some of that
documentation might well need to be in the specification to ensure that
other standards implementers can execute faithfully.  Hmmm, when everything
is confirmed correct, there are opportunities for an excellent workshop and
book or two.

 

These are important "due diligence" efforts to ensure we fully correctly and
compatibly implements the Web Audio API, as claimed in the X3D4 Architecture
specification.

 

Onward we go. What a great world we might have with audio and acoustics as
first-class sharable media on the Web.  Exciting possibilities, for sure!!

 

Thanks Thanos, hello + thanks Efi.

 

We're having fun with X3D4. Further scrutiny continues, all opinions
welcome.

 

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 https://
faculty.nps.edu/brutzman

 

From: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> 
Sent: Friday, January 13, 2023 7:02 PM
To: Efi Lakka <efilakka at gmail.com>; Athanasios Malamos
<athanasios.malamos at gmail.com>; puk at igraphics.com
Cc: X3D Public Mailing List (x3d-public at web3d.org) <x3d-public at web3d.org>;
Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Subject: problem: omissions in X3D4 nodes implementing Web Audio API

 

Hi guys, hope you are well.

 

I'm applying X3D naming conventions to Web Audio API enumerations.
capitalizing constant names, changing hyphens to underscores.

 

Problem report: during this effort have uncovered some apparent omissions in
our specification.

 

We have support for only 5 of 10 sets of enumerations.  The following
enumeration sets are omissions.  This implies that corresponding fields in
nodes are missing too.

 

 

*	1.1. The BaseAudioContext
<https://www.w3.org/TR/webaudio/#baseaudiocontext>  Interface
*	https://www.w3.org/TR/webaudio/#BaseAudioContext

 

*        enum AudioContextState {
   <https://www.w3.org/TR/webaudio/#dom-audiocontextstate-suspended>
"suspended",
   <https://www.w3.org/TR/webaudio/#dom-audiocontextstate-running>
"running",
   <https://www.w3.org/TR/webaudio/#dom-audiocontextstate-closed> "closed"
};

*	https://www.w3.org/TR/webaudio/#enumdef-audiocontextstate

 

 

*	1.2. The AudioContext <https://www.w3.org/TR/webaudio/#audiocontext>
Interface
*	https://www.w3.org/TR/webaudio/#AudioContext

 
*        enum AudioContextLatencyCategory {
 
<https://www.w3.org/TR/webaudio/#dom-audiocontextlatencycategory-balanced>
"balanced",
 
<https://www.w3.org/TR/webaudio/#dom-audiocontextlatencycategory-interactive
> "interactive",
 
<https://www.w3.org/TR/webaudio/#dom-audiocontextlatencycategory-playback>
"playback"
};

*	https://www.w3.org/TR/webaudio/#enumdef-audiocontextlatencycategory

 

 

*	1.6. The AudioParam <https://www.w3.org/TR/webaudio/#audioparam>
Interface
*	https://www.w3.org/TR/webaudio/#AudioParam

*        enum AutomationRate {
   <https://www.w3.org/TR/webaudio/#dom-automationrate-a-rate> "a-rate",
   <https://www.w3.org/TR/webaudio/#dom-automationrate-k-rate> "k-rate"
};

*	https://www.w3.org/TR/webaudio/#enumdef-automationrate

 

 

*	1.27. The PannerNode <https://www.w3.org/TR/webaudio/#pannernode>
Interface
*	https://www.w3.org/TR/webaudio/#PannerNode

 
*        enum PanningModelType {
     <https://www.w3.org/TR/webaudio/#dom-panningmodeltype-equalpower>
"equalpower",
     <https://www.w3.org/TR/webaudio/#dom-panningmodeltype-hrtf> "HRTF"
};

*	https://www.w3.org/TR/webaudio/#enumdef-panningmodeltype

 
*        enum DistanceModelType {
   <https://www.w3.org/TR/webaudio/#dom-distancemodeltype-linear> "linear",
   <https://www.w3.org/TR/webaudio/#dom-distancemodeltype-inverse>
"inverse",
   <https://www.w3.org/TR/webaudio/#dom-distancemodeltype-exponential>
"exponential"
};

*	https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype

 

 

Looks like we might have already uncovered some X3D4 omissions.  ouch.

 

Discussion here on mailing list please.  Tracking issue as

*	Mantis 1420: Missing 5 enumeration sets (and likely fields) from Web
Audio interfaces
*	https://www.web3d.org/member-only/mantis/view.php?id=1420

 

Please look over these missing interfaces, and where they belong, and then
let's figure out next steps.

 

p.s. X3D XML Schema and DOCTYPE revised, updated the other already-existing
interfaces with capitalized enumeration names:

 

*
https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_biqua
dTypeFilterChoices.html
*
https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_chann
elCountModeChoices.html
*
https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_chann
elInterpretationChoices.html
*
https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_dista
nceModelChoices.html
*
https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_perio
dicWaveTypeChoices.html

 

Thanks in advance for another round of close scrutiny on this important
capability for spatialized high-fidelity computational sound in X3D4.

 

all the best, Don

-- 

Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu
<mailto:brutzman at nps.edu> 

Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149

X3D graphics, virtual worlds, Navy robotics https://
faculty.nps.edu/brutzman

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230116/05fbf70d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5353 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230116/05fbf70d/attachment-0001.p7s>


More information about the x3d-public mailing list