HytaleDocs
Audio

AudioStates

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

A named state axis that any audio object can subscribe to. Server-authority axes are driven by server logic and broadcast to clients. Client-authority axes are driven locally on the client (e.g. by AmbienceFX SetStates).

Parent

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

When inheriting from another AudioState 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

Authority

Server: written on the server and broadcast. Client: written locally by AmbienceFX SetStates.

Type information:

(Nullable) Any one of the following String (defaults to Server):

NameDescription
"Server"
"Client"

Values

Ordered list of state value names on this axis.

Type information: Array of String

DefaultValue

State value name the axis reports as active before any explicit setting.

Type information: (Nullable) String

DefaultSyncTo

Where transitions on this axis begin when the matched edge includes no SyncTo of its own. Carries the same Point, Marker, Offset, and BarMultiple as a music transition's ExitAt. Omit to begin immediately.

Type information:

(Nullable)

MusicSyncConfig with the following properties:

KeyTypeDescription
Point(Nullable) Any one of the following String (defaults to Immediate):
SyncPoint
NameDescription
"Immediate"
"NextBeat"
"NextBar"
"ExitMarker"
"NextMarker"

Which boundary to wait for: Immediate, NextBeat, NextBar, ExitMarker, or NextMarker.

Marker(Nullable) String

Marker name to sync to. Only used with Point: NextMarker. Omit to take the next marker of any name.

Offset(Nullable)
BarBeatDuration

BarBeatDuration with the following properties:

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

Beats, which may be fractional. Against a quarter-note beat, 0.5 is an eighth and 1.5 a dotted quarter.

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

Additional millisecond offset summed with bar/beat components. Allows pure ms authoring (e.g. { Ms: 1234 }) or fine-tuning bar/beat positions without a divide.

Signed offset from the boundary, as bars + beats + ms. Negative fires early, for lead-in material or to land on the last bar of a phrase.

BarMultipleInteger defaults to: 0

Only used with Point: NextBar. Waits for every Nth bar counted from the grid origin, so 4 hands over on four-bar phrase boundaries. Omit, 0 or 1 all mean every bar.

DefaultTransition

Fallback transition used when no edge matches the from/to pair. Omission means no default is provided (transition immediately in 0 ms).

Type information:

(Nullable)

StateTransitionConfig with the following properties:

KeyTypeDescription
From(Nullable) String

State value name this edge transitions from. '*' for wildcard. Unused when used as an override.

To(Nullable) String

State value name this edge transitions to. '*' for wildcard. Unused when used as an override.

Duration(Nullable)
BarBeatDuration

BarBeatDuration with the following properties:

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

Beats, which may be fractional. Against a quarter-note beat, 0.5 is an eighth and 1.5 a dotted quarter.

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

Additional millisecond offset summed with bar/beat components. Allows pure ms authoring (e.g. { Ms: 1234 }) or fine-tuning bar/beat positions without a divide.

How long the transition takes, as bars plus beats plus ms against each subscribed voice's tempo. A voice with no tempo takes the Ms component alone. Omit to take the axis DefaultTransition.

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

Interpolation curve shape. Read only from the rung that supplies Duration, so a Curve alongside no Duration is ignored. Linear if not supplied.

SyncTo(Nullable)
MusicSyncConfig

MusicSyncConfig with the following properties:

KeyTypeDescription
Point(Nullable) SyncPoint

Which boundary to wait for: Immediate, NextBeat, NextBar, ExitMarker, or NextMarker.

Marker(Nullable) String

Marker name to sync to. Only used with Point: NextMarker. Omit to take the next marker of any name.

Offset(Nullable) BarBeatDuration

Signed offset from the boundary, as bars + beats + ms. Negative fires early, for lead-in material or to land on the last bar of a phrase.

BarMultipleInteger defaults to: 0

Only used with Point: NextBar. Waits for every Nth bar counted from the grid origin, so 4 hands over on four-bar phrase boundaries. Omit, 0 or 1 all mean every bar.

Where on the playing music the transition begins, carrying the same Point, Marker, Offset, and BarMultiple as a music transition's ExitAt. A signed Offset moves the start off the boundary, so a fade can begin half a bar past the downbeat. Omit to take the axis DefaultSyncTo. A voice with no tempo and no markers begins immediately regardless.

Delay(Nullable)
BarBeatDuration

BarBeatDuration with the following properties:

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

Beats, which may be fractional. Against a quarter-note beat, 0.5 is an eighth and 1.5 a dotted quarter.

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

Additional millisecond offset summed with bar/beat components. Allows pure ms authoring (e.g. { Ms: 1234 }) or fine-tuning bar/beat positions without a divide.

How long a voice holds its old level past the boundary before its ramp starts. An audio category has no hold, so a delay lengthens its ramp instead. Non-negative: to begin before a boundary, move the boundary itself with SyncTo Offset.

PostEvent(Nullable) String

Music event posted when this edge is taken. A free-form name, so a state change can mark a musical moment without naming a stinger.

Transitions

Per-edge transition settings keyed by From/To state value names. '*' wildcards supported.

Type information:

(Nullable) Array of the type:

StateTransitionConfig with the following properties:

KeyTypeDescription
From(Nullable) String

State value name this edge transitions from. '*' for wildcard. Unused when used as an override.

To(Nullable) String

State value name this edge transitions to. '*' for wildcard. Unused when used as an override.

Duration(Nullable)
BarBeatDuration

BarBeatDuration with the following properties:

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

Beats, which may be fractional. Against a quarter-note beat, 0.5 is an eighth and 1.5 a dotted quarter.

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

Additional millisecond offset summed with bar/beat components. Allows pure ms authoring (e.g. { Ms: 1234 }) or fine-tuning bar/beat positions without a divide.

How long the transition takes, as bars plus beats plus ms against each subscribed voice's tempo. A voice with no tempo takes the Ms component alone. Omit to take the axis DefaultTransition.

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

Interpolation curve shape. Read only from the rung that supplies Duration, so a Curve alongside no Duration is ignored. Linear if not supplied.

SyncTo(Nullable)
MusicSyncConfig

MusicSyncConfig with the following properties:

KeyTypeDescription
Point(Nullable) SyncPoint

Which boundary to wait for: Immediate, NextBeat, NextBar, ExitMarker, or NextMarker.

Marker(Nullable) String

Marker name to sync to. Only used with Point: NextMarker. Omit to take the next marker of any name.

Offset(Nullable) BarBeatDuration

Signed offset from the boundary, as bars + beats + ms. Negative fires early, for lead-in material or to land on the last bar of a phrase.

BarMultipleInteger defaults to: 0

Only used with Point: NextBar. Waits for every Nth bar counted from the grid origin, so 4 hands over on four-bar phrase boundaries. Omit, 0 or 1 all mean every bar.

Where on the playing music the transition begins, carrying the same Point, Marker, Offset, and BarMultiple as a music transition's ExitAt. A signed Offset moves the start off the boundary, so a fade can begin half a bar past the downbeat. Omit to take the axis DefaultSyncTo. A voice with no tempo and no markers begins immediately regardless.

Delay(Nullable)
BarBeatDuration

BarBeatDuration with the following properties:

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

Beats, which may be fractional. Against a quarter-note beat, 0.5 is an eighth and 1.5 a dotted quarter.

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

Additional millisecond offset summed with bar/beat components. Allows pure ms authoring (e.g. { Ms: 1234 }) or fine-tuning bar/beat positions without a divide.

How long a voice holds its old level past the boundary before its ramp starts. An audio category has no hold, so a delay lengthens its ramp instead. Non-negative: to begin before a boundary, move the boundary itself with SyncTo Offset.

PostEvent(Nullable) String

Music event posted when this edge is taken. A free-form name, so a state change can mark a musical moment without naming a stinger.

RevertWhenInactive

When true, the axis reverts to DefaultValue when every active AmbienceFX that was writing it goes inactive and no new writer claims it. Only meaningful for Authority: Client axes.

Type information: Boolean defaults to: false

Notes:

Types referenced by this type

SyncPoint

(Nullable) Any one of the following String (defaults to Immediate):

NameDescription
"Immediate"
"NextBeat"
"NextBar"
"ExitMarker"
"NextMarker"

On this page