[x3d-public] Sound component: additional adjustments

Don Brutzman brutzman at nps.edu
Sat Jul 25 23:15:10 PDT 2020

Am reviewing W3C Audio API Candidate Recommendation (CR) while adjusting new nodes and fields in Sound component.

Some adjustments:

1.  We already agreed to add "description" field to many nodes in audio graph so that purpose was discernible, combining all these node elements can be quite cryptic otherwise.

Wondering what else might be suitable... Looking "up" the interface hierarchy, refactoring to the next-level parent of abstract node type looks appropriate.

Am thinking that "description" field should also be part of X3DTimeDependentNode, since authors likely want to express intent for all time-varying behavior (likely several nodes have it already) and browsers might want to display a list of what behaviors are active (and why) as part of their optional user interface.  Certainly helps make sense of what an event-chain behavior is trying to accomplish.

This adds the field to one other node: TimeSensor.  Seems safe and sensible, hope everyone agrees.  Sample wording:

"The description field specifies a textual description for intended purpose of the node. This information is beneficial for authoring, and may be used by optional browser-specific user interfaces that wish to present users with more detailed information about active time-dependent behavior."

Similarly, the enabled field is a commonly needed capability, and already part of all implementing nodes, and so belongs in the abstract node type as well.  Proposed prose:

"The enabled field enables and disables operation in a manner appropriate for the associated node."

Added to issues list for review, and to draft specification.

[1] Mantis 1323: description and enabled fields for X3DTimeDependentNode


2.  AudioBufferSource playbackRate can be negative.  Adjusted field bounds accordingly.

   SFFloat  [in,out] playbackRate          0    [-∞,∞)


3. Moved the following section from AudioClip to X3DSoundSourceNode and related interfaces:

"The loop, pauseTime, resumeTime, startTime, and stopTime inputOutput fields and the elapsedTime, isActive, and isPaused outputOnly fields, and their effects on the AudioClip node, are discussed in detail in 8 Time component."


"The loop, pauseTime, resumeTime, startTime, and stopTime inputOutput fields and the elapsedTime, isActive, and isPaused outputOnly fields, and their effects on nodes implementing this abstract node type, are discussed in detail in X3DTimeDependentNode and 8.2.4 Time-dependent nodes."

Also moved definitions for pitch, duration_changed and isActive from AudioClip to X3DSoundSourceNode.


4. WaveShaper curve is an MFFloat array rather than MFInt32.

   MFFloat  [in,out] curve                 []         [-1,-1]


5. Added periodicWave to OscillatorSource, for use when type='custom'.

   SFNode   [in,out] periodicWave     NULL   [PeriodicWave]


The majority of field definitions are now added, a number of editorsNote TODO items can likely be resolved easily via email and our next meeting.

Please review closely between now and next Wednesday so that we might finalize and release X3D4 WD2 public release immediately afterwards.  Thanks!

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

More information about the x3d-public mailing list