HytaleDocs
Audio

MusicTransitions

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

How the music moves from one container to another. Match either side by container name or tag pattern, or leave a side out to match anything.

Parent

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

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

From

The outgoing side. Omit to match any container.

Type information:

(Nullable)

MusicMatchConfig with the following properties:

KeyTypeDescription
Container(Nullable) String

Reference to a MusicContainer asset

Match exactly this container.

TagPattern(Nullable) Either String or TagPattern

Reference to a TagPattern asset

Match every container whose tags satisfy this pattern.

To

The incoming side. Omit to match any container.

Type information:

(Nullable)

MusicMatchConfig with the following properties:

KeyTypeDescription
Container(Nullable) String

Reference to a MusicContainer asset

Match exactly this container.

TagPattern(Nullable) Either String or TagPattern

Reference to a TagPattern asset

Match every container whose tags satisfy this pattern.

ExitAt

When the handoff happens, on the outgoing container's grid. Omit to leave the boundary to the incoming container's own ExitAt, or failing that to the boundary its TransitionType implies.

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.

Align

Where the incoming container begins on its own timeline. EntryMarker lands its downbeat on the handoff.

Type information:

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

NameDescription
"EntryMarker"
"NamedMarker"
"SamePosition"

AlignMarker

Marker of the incoming container to align to. Only used with Align: NamedMarker.

Type information: (Nullable) String

FadeOutDuration

How long the outgoing container takes to ramp down from the handoff, as bars plus beats plus ms against the grid the handoff sits on. Omit or leave every component at 0 to hold it at full gain, which is what PlayPostExit is for.

Type information:

(Nullable)

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.

FadeOutCurve

Shape of the outgoing ramp. Leave at EqualPowerSine for crossfades. Linear dips about 3 dB through the middle.

Type information:

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

NameDescription
"Linear"
"Logarithmic"
"Exponential"
"SCurve"
"EqualPowerSine"

FadeOutDelay

How long the outgoing container holds full gain after the handoff before its ramp starts. For a transition the incoming enters over, where the fade is written to begin once it has. Omit to start the ramp at the handoff.

Type information:

(Nullable)

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.

FadeInDuration

How long the incoming container takes to ramp up from the handoff, in the same musical form as FadeOutDuration.

Type information:

(Nullable)

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.

FadeInCurve

Shape of the incoming ramp.

Type information:

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

NameDescription
"Linear"
"Logarithmic"
"Exponential"
"SCurve"
"EqualPowerSine"

PlayPostExit

Let the outgoing container run to end of file after the handoff, so an authored tail rings out. Applies to a switch between top-level containers. A phase change inside a Horizontal container always stops the outgoing phase.

Type information: Boolean defaults to: false

PostEvent

Music event posted at the handoff. A free-form name. What it plays is whatever the incoming container binds it to. A stinger covering the seam is what lets the switch hard-start on the boundary with no crossfade.

Type information: (Nullable) String

Priority

Higher wins. Ties fall back to how narrowly each rule matches.

Type information: Integer defaults to: 0

On this page