HytaleDocs
Audio

AudioCategories

Asset path: Server/Audio/AudioCategories/*.json

An asset used to define an audio category. Can be used to adjust the volume of all sound events that reference a given category. Note: categories form a hierarchy via the generic JSON parent mechanism, acting as an audio bus. e.g. if the category's volume is 4dB and the parent is -2dB, the final volume will be 2dB.

Parent

When set this asset will inherit properties from the named asset.

When inheriting from another AudioCategory most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

Type information: String

Tags

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

Type information:

(Nullable) Map of the following:

KeyType
any StringArray of String

Volume

Volume adjustment for this audio category in decibels.

Type information:

(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

StateBindings

Subscribe this AudioCategory to one or more AudioState axes. Per-state volume deltas drive the category's volume modifier and cascade to voices in descendant categories.

Type information:

(Nullable) Array of the type:

StateBindingConfig with the following properties:

KeyTypeDescription
AudioState(Nullable) String

Id of the AudioState this binding subscribes to.

Deltas(Nullable) Array of the type:
StateDeltaConfig

StateDeltaConfig with the following properties:

KeyTypeDescription
Value(Nullable) String

State value name this delta applies to.

VolumeDb(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Signed dB offset applied to voice gain when this state value is active. Ignored when Mute is true.

MuteBoolean defaults to: false

When true, forces the subscriber silent for this state value. Fading is still applied.

PitchSemitones(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Signed semitone offset applied to the subscriber's playback pitch when this state value is active. 0 = no change. 12 = one octave up, -12 = one octave down, -6 = half octave down (tritone), -60 = perceptually frozen / time-stop effect.

Fade(Nullable) StateFadeConfig

This subscriber's own ramp onto this state value, overriding field by field what the axis resolved. A transition override sent with the state change still outranks it. Omit so every subscriber moves together. Where more than one binding covers this axis, later ones refine earlier ones field by field. A later binding can set a field but cannot clear one back to the axis. Music composes ancestors, then the Segment, then the LayerPlacement, then the leaf container. A sound event composes its own before the AmbienceFX that plays it.

Per-state-value deltas. Unlisted values default to zero (no effect).

DuckingRules

Per-bus default duck rules. When any voice is routed through this category (or any descendant category), each rule attenuates its TargetCategory.

Type information:

(Nullable) Array of the type:

AudioCategoryDuckingRuleConfig with the following properties:

KeyTypeDescription
TargetCategory(Nullable) String

Reference to a AudioCategory asset

Id of the AudioCategory this rule ducks.

DuckingVolumeDb(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Authored ducking target in dB.

AttackMs(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Milliseconds to tween from 0 dB (no duck) toward DuckingVolumeDb when the rule's source first becomes active. Zero snaps immediately.

HoldMs(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Milliseconds to hold the duck at DuckingVolumeDb after the source becomes inactive.

ReleaseMs(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Milliseconds to tween from the held duck value back toward the next-priority value. Zero snaps immediately.

Curve(Nullable) Any one of the following String (defaults to Linear):
FadeCurve
NameDescription
"Linear"
"Logarithmic"
"Exponential"
"SCurve"
"EqualPowerSine"

Curve applied to the Attack tween.

ReleaseCurve(Nullable) Any one of the following String (defaults to Linear):
FadeCurve
NameDescription
"Linear"
"Logarithmic"
"Exponential"
"SCurve"
"EqualPowerSine"

Curve applied to the Release tween.

PriorityInteger defaults to: 0

When multiple rules are active on the same target, only entries at the highest active priority contribute to the composite. Within a priority class, the most-negative dB wins.

MaxDuckingDb

Ceiling on how much this category can be ducked.

Type information:

(Nullable) Either Number defaults to: -100.0 or String that matches the pattern: ^(-?Infinity|NaN)$

On this page