Buses File
This configuration file allows you to register the list of buses Amplitude will use at runtime. For each bus, you can configure settings for auto-ducking between them.
Info
The flatbuffers schema of this file can be found here.
When configuring buses, you are allowed to create as many buses you want, but there should be at least one master
bus. The master bus is a special bus that controls all the other buses. It should have a id
attribute set to 1
and a name
attribute set to master
.
Warning
If at the initialization of the engine no master bus has been found, Amplitude will stop, and you won't be able to play any audio.
buses¶
array
required
The buses
property is the only root property of this file. It should store an array of bus objects describing the settings for each bus. Each object of this array should have the following properties:
id¶
uint64
required
The unique identifier of the bus. This value should be unique per bus and should have a value different from 0
. There is a special rule for the master
bus which should have this value set to 1
.
name¶
string
required
The unique name of the bus. This value is required and should be unique per bus. There is a special rule for the master
bus which should have this value set to master
.
gain¶
float
default: 1.0
The linear gain is applied to all the sound objects playing on the bus. If set to 0.0
, all the sound objects of this bus will be muted.
The final gain of a bus is calculated by multiplying this value with the parent bus' gain, a user-specified gain provided at runtime, and this bus ducked gain.
child_buses¶
array
optional
The child_buses
property stores a list of integer values, each value representing the id
of a bus that should be considered as a child of this one. Child buses are affected by the parent bus' final gain. So if the parent bus is muted (gain = 0.0), then all the children of this bus will be muted too.
For the master
bus to work properly, you may want to feed his child_buses
property with all the root buses (buses with no parent) of your configuration. That way, the master
bus will correctly control the gain of all the other buses.
duck_buses¶
array
optional
duck_buses
is an array of objects allowing you to set up a ducking behavior between two or more buses that play sound objects simultaneously. Each object of this array should have the following properties:
id
: This is the ID of the bus to control between the list of declared buses.target_gain
: This specifies the target gain the controlled bus should have after the ducking is done.fade_in
: This is the fader setting used when the controlled bus is being ducked to the target gain.fade_out
: This is the fader setting used when the controlled bus is being restored to its original gain.
fader¶
string
required
This property stores the name of the fader algorithm that will be used when the gain of this bus is manually updated at runtime.
Info
Fader and fader settings help you to control how a property should move from one value to another. You can learn more about faders in the Fader API reference.
Example¶
An example of a bus configuration file may look like:
{
"buses": [
{
"id": 1,
"name": "master",
"gain": 1.0,
"child_buses": [
2,
7678456242523
],
"fader": "Linear"
},
{
"id": 2,
"name": "voices",
"gain": 1,
"duck_buses": [
{
"id": 7678456242523,
"target_gain": 0.25,
"fade_in": {
"duration": 3,
"fader": "SCurveSmooth"
},
"fade_out": {
"duration": 3,
"fader": "Linear"
}
}
],
"fader": "Linear"
},
{
"id": 7678456242523,
"name": "environment",
"gain": 0.75,
"fader": "Linear"
}
]
}