Audio Volume and Mixing
Volume
Use the volume operator to adjusts the level of an input or output audio stream. The volume determines the linear gain applied to all channels. A linear gain of 1.0 is equivalent to a logarithmic gain of 0 dB.
For example the following composition attenuates the volume by -6 dB (0.5):
---
input:
container:
- name: input1
audio:
- name: a1
volume: 0.5
output:
container:
- name: output1
type: 'wav '
audio:
- name: a1
{
"input": {
"container": [
{
"name": "input1",
"audio": [
{
"name": "a1",
"volume": 0.5
}
]
}
]
},
"output": {
"container": [
{
"name": "output1",
"type": "wav ",
"audio": [
{
"name": "a1"
}
]
}
]
}
}
Fade Up/Down
The volume of an input stream can be interpolated to achieve a fade up or fade down effect. For example the following composition produces a 2 second fade at the beginning of the audio stream:
---
input:
segment:
container:
- name: input1
audio:
- name: a1
head:
duration: 2.0
volume: 0.0
body:
volume: 1.0
output:
container:
- name: output1
type: 'wav '
audio:
- name: a1
{
"input": {
"segment": {
"container": [
{
"name": "input1",
"audio": [
{
"name": "a1",
"head": {
"duration": 2.0,
"volume": 0.0
},
"body": {
"volume": 1.0
}
}
]
}
]
},
"output": {
"container": [
{
"name": "output1",
"type": "wav ",
"audio": [
{
"name": "a1"
}
]
}
]
}
}
}
See the Stream Parts reference for details.
Stream Mixing
Use the mix operator to combine multiple audio input streams. The name property identifies each input stream and the level property specifies linear gain applied to that input.
For example the following composition combines streams a1 and a2 attenuating the music by -6 dB (0.5):
---
input:
container:
- name: program
audio:
- name: a1
- name: music
audio:
- name: a2
output:
container:
- audio:
- mix:
- name: a1
level: 1.0
- name: a2
level: 0.5
{
"input": {
"container": [
{
"name": "program",
"audio": [
{
"name": "a1"
}
]
},
{
"name": "music",
"audio": [
{
"name": "a2"
}
]
}
]
},
"output": {
"container": [
{
"audio": [
{
"mix": [
{
"name": "a1",
"level": 1.0
},
{
"name": "a2",
"level": 0.5
}
]
}
]
}
]
}
}
Channel Mixing
By default the mix operator combines the channels from each input stream starting with channel number 1. Use the channel array to specify the input channel numbers for each stream. The output stream channels property determines the size of the array.
For example the following composition produces a 2 channel output stream using channels 3/4 from the program input and channels 1/2 from the music input:
input:
container:
- name: program
audio:
- name: a1
channels: 4
- name: music
audio:
- name: a2
channels: 2
output:
container:
- audio:
- channels: 2
mix:
- name: a1
channel:
- 3
- 4
- name: a2
channel:
- 1
- 2
{
"input": {
"container": [
{
"name": "program",
"audio": [
{
"name": "a1",
"channels": 4
}
]
},
{
"name": "music",
"audio": [
{
"name": "a2",
"channels": 2
}
]
}
]
},
"output": {
"container": [
{
"audio": [
{
"channels": 2,
"mix": [
{
"name": "a1",
"channel": [
3,
4
]
},
{
"name": "a2",
"channel": [
1,
2
]
}
]
}
]
}
]
}
}
The channel array may also specify the level and phase for each input channel.
Updated about 2 years ago
