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:
| Key | Type |
|---|---|
any String | Array of String |
From
The outgoing side. Omit to match any container.
Type information:
(Nullable)
MusicMatchConfig with the following properties:
| Key | Type | Description |
|---|---|---|
| Container | (Nullable) String | Match exactly this container. |
| TagPattern | (Nullable) Either String or TagPattern | 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:
| Key | Type | Description |
|---|---|---|
| Container | (Nullable) String | Match exactly this container. |
| TagPattern | (Nullable) Either String or TagPattern | 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:
| Key | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Point | (Nullable) Any one of the following String (defaults to Immediate):
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. | ||||||||||||
| BarMultiple | Integer 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):
| Name | Description |
|---|---|
"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:
| Key | Type | Description |
|---|---|---|
| Bars | Integer 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):
| Name | Description |
|---|---|
"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:
| Key | Type | Description |
|---|---|---|
| Bars | Integer 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:
| Key | Type | Description |
|---|---|---|
| Bars | Integer 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):
| Name | Description |
|---|---|
"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
