Post

DynamicsCompressor

Overview

DynamicsCompressor node implements a dynamics compression effect, lowering volume of loudest parts of signal and raising volume of softest parts.

The DynamicsCompressor node belongs to the Sound component and requires at least level 2, its default container field is children. It is available from X3D version 4.0 or higher.

Hierarchy

1
2
3
4
5
+ X3DNode
  + X3DChildNode
   + X3DTimeDependentNode
     + X3DSoundProcessingNode
       + DynamicsCompressor

Fields

SFNode [in, out] metadata NULL [X3DMetadataObject]

Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.

Hint

SFString [in, out] description “”

Author-provided prose that describes intended purpose of the url asset.

Hint

  • Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as & for & ampersand character, or " for “ quotation-mark character).

SFBool [in, out] enabled TRUE

Enables/disables node operation.

SFFloat [in, out] gain 1 (-∞,∞)

The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.

Hint

  • Negative gain factors negate the input signal.

Warning

  • Decibel values shall not be used.

SFTime [in, out] tailTime 0 [0,∞)

tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent.

SFTime [in, out] attack 0.003 [0,∞)

The attack field is the duration of time (in seconds) to reduce the gain by 10dB.

SFFloat [in, out] knee 30 [0,∞)

knee field contains a decibel value representing range above threshold where the curve smoothly transitions to compressed portion.

SFFloat [in, out] ratio 12 [0,∞)

ratio field represents amount of input change, in dB, needed for 1 dB change in output.

SFTime [in, out] release 0.25 [0,∞)

release field represents amount of time (in seconds) to increase gain by 10dB.

SFFloat [in, out] threshold -24 [0,∞)

threshold field represents decibel value above which compression starts taking effect.

SFFloat [out] reduction 0 [0,∞)

reduction field provides amount of gain reduction in dB currently applied by compressor to signal. If fed no signal, then value is 0 (no gain reduction)

SFInt32 [in, out] channelCount

channelCount reports number of channels provided by input nodes.

Hint

SFString [in, out] channelCountMode “MAX” [“MAX”, “CLAMPED-MAX”, “EXPLICIT”]

channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.

Hint

SFString [in, out] channelInterpretation “SPEAKERS” [“SPEAKERS”, “DISCRETE”]

channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.

Hint

SFTime [in, out] startTime 0 (-∞,∞)

Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.

Hint

  • ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.

SFTime [in, out] resumeTime 0 (-∞,∞)

When resumeTime becomes <= time now, isPaused becomes false and AudioClip becomes active. Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.

Hint

  • ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.

SFTime [in, out] pauseTime 0 (-∞,∞)

When time now >= pauseTime, isPaused becomes true and AudioClip becomes paused. Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.

Hint

  • ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.

SFTime [in, out] stopTime 0 (-∞,∞)

Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.

Hint

  • ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.

Warnings

  • An active TimeSensor node ignores set_cycleInterval and set_startTime events.
  • An active TimeSensor node ignores set_stopTime event values less than or equal to startTime.

SFBool [out] isPaused

isPaused true/false events are sent when AudioClip is paused/resumed.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFBool [out] isActive

isActive true/false events are sent when playback starts/stops.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFTime [out] elapsedTime

Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.

Hint

  • elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

MFNode [in, out] children [ ] [X3DSoundChannelNode,X3DSoundProcessingNode,X3DSoundSourceNode]

The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.

Hint

  • Can be original (DEF) or referenced (USE) nodes.

Warning

  • Contained AudioClip or MovieTexture nodes must have containerField='children' to override otherwise-incorrect defaults.

Advice

Hint

  • W3C Web Audio API w3.org/TR/webaudio/#dynamicscompressornode

See Also

This post is licensed under CC BY 4.0 by the author.