Dolby Atmos Mezzanine Analysis
If you want to analyze your Dolby Atmos Mezzanine, then this is the analysis type you’ll want to use. You may also be interested in creating Dolby Atmos audio content, which you can learn more about here: Dolby Atmos Tutorial
Sample Usage
The sample json below is set to analyze Dolby Atmos Mezzanines with:
{
"uid": "analyze_task",
"kind": "analyze",
"payload": {
"general_properties": {
"enabled": true
},
"deep_properties": {
"audio": {
"dolby_atmos": {
"enabled": true
}
}
}
}
}
Limitations
At this time, the Atmos Analyzer can only accept a single-file Mezzanine. This means your Atmos Mezzanine must be an ADM BWF or IAB in MXF. DAMF is not supported.
You must also specify in your source that the content type is atmos_mezzanine
in the contents
array of the source:
{
"uid": "source_file",
"kind": "source",
"payload": {
"kind": "asset_url",
"payload": {
"storage_provider": "s3",
"url": "{{source_file}}",
"contents": [
{
"kind": "audio",
"format": "atmos_mezzanine"
}
]
}
}
}
Analyzer Results
Deep Properties
Results from running this analysis on a Dolby Atmos Mezzanine file will be reported in the job summary json, in the “analyzer results” section of the Hybrik UI or search for dolby_atmos
in the job result:
"audio": [
{
"dolby_atmos": {
"master_type": "IAB MXF",
"master_version": "0.0.0",
"creation_tool": "Dolby Atmos Conversion Tool 1.9.0",
"samples": 12628000,
"sample_size": "24 bit integer",
"sample_rate": 48000,
"first_frame_of_action_sec": 0,
"start_sec": 0,
"frame_rate": "24",
"render_warp_mode": "LoRo",
"spatially_processed": false,
"channels": {
"beds": [
{
"index": 0,
"id": 0,
"label": "L"
},
{
"index": 1,
"id": 0,
"label": "R"
},
{
"index": 2,
"id": 0,
"label": "C"
},
{
"index": 3,
"id": 0,
"label": "LFE"
},
{
"index": 4,
"id": 0,
"label": "LSS"
},
{
"index": 5,
"id": 0,
"label": "RSS"
},
{
"index": 6,
"id": 0,
"label": "LRS"
},
{
"index": 7,
"id": 0,
"label": "RRS"
},
{
"index": 8,
"id": 0,
"label": "LTM"
},
{
"index": 9,
"id": 0,
"label": "RTM"
}
],
"objects": [
{
"index": 10,
"id": 0
},
{
"index": 11,
"id": 1
},
{
"index": 12,
"id": 2
},
{
"index": 13,
"id": 3
},...
{
"index": 73,
"id": 63
},
{
"index": 74,
"id": 64
},...
{
"index": 90,
"id": 80
},
{
"index": 91,
"id": 81
}
]
},
"trims": [
{
"label": "NoSurroundsNoHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "NoSurroundsSomeHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "NoSurroundsManyHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "SomeSurroundsNoHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "SomeSurroundsSomeHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "SomeSurroundsManyHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "ManySurroundsNoHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "ManySurroundsSomeHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
},
{
"label": "ManySurroundsManyHeights",
"auto_trim": true,
"center_trim": 0,
"surround_trim": 0,
"height_trim": 0,
"front_back_balance_overhead_floor": 0,
"front_back_balance_listener": 0
}
],
"binaural_metadata": [
{
"channel_index": 0,
"binaural_render_mode": "Undefined",
"head_track_mode": "Undefined"
},
{
"channel_index": 1,
"binaural_render_mode": "Undefined",
"head_track_mode": "Undefined"
},
{
"channel_index": 2,
"binaural_render_mode": "Far",
"head_track_mode": "Undefined"
},
{
"channel_index": 3,
"binaural_render_mode": "Far",
"head_track_mode": "Undefined"
},...
{
"channel_index": 63,
"binaural_render_mode": "Near",
"head_track_mode": "Undefined"
},
{
"channel_index": 64,
"binaural_render_mode": "Near",
"head_track_mode": "Undefined"
},...
{
"channel_index": 90,
"binaural_render_mode": "Stereo-Bypass",
"head_track_mode": "Undefined"
},
{
"channel_index": 91,
"binaural_render_mode": "Stereo-Bypass",
"head_track_mode": "Undefined"
}
]
}
}
]
Here are the explanations for each result parameter:
Parameter Name | Type | Description |
---|---|---|
master_type |
string | State whether the type of the mezzanine is ADM or IAB |
master_version |
string | The number of master version |
creation_tool |
string | The mezzanine creating software and version number |
samples |
integer | The number of samples in the file |
sample_size |
string | A description of the sample size |
sample_rate |
integer | The sample rate of the mezzanine |
first_frame_of_action_sec |
integer | The first frame of action represented in seconds, set in the mezzanine creating software |
start_sec |
integer | The starting time of the file, in seconds, set in the mezzanine creating software |
frame_rate |
integer | The frame rate of the file |
render_warp_mode |
string | The warp mode specified for downmix set in the mezzanine creating software |
spatially_processed |
boolean | an indication if the Mezzanine is spatially processed |
channels |
object | An object containing bed and object details set in the mezzanine creating software |
trim |
array | An array containing trim details set in the mezzanine creating software |
binaural_metadata |
array | An array containing binaural render mode and head track mode details set in the mezzanine creating software |
General Properties
You can also run an analyze task on your Dolby Atmos Mezzanine using general_properties
, which will give you the following results:
"container": {
"kind": "wav",
"duration_sec": 263.083,
"bitrate_kb": 106516.871,
"size_kb": 3420749,
"faststart": true
},
"audio": [
{
"sample_format": "pcm_s24le",
"codec": "pcm",
"sample_rate": 48000,
"channels": 92,
"sample_size": 24,
"duration_sec": 263.083,
"bitrate_mode": "cbr",
"bitrate_kb": 105984,
"master_type": "ADM BWF",
"creation_tool": "Dolby Atmos Renderer, Version 3.3.0",
"samples": 12628000,
"start_sec": 3600,
"associated_video_frame_rate": "24.000 FPS",
"render_warp_mode": "LoRo",
"spatially_processed": false
}
]
To learn more about this type of analysis, read our tutorial on General Properties.
QC Task
Like other Hybrik analyzers, it is possible to use the Dolby Atmos analyzer with our Quality Check task.
These results can be used in a QC condition, for example “Does our First Frame of Action (FFOA) start at the beginning of the file and does it contain 10 beds?”:
{
"uid": "qc_task",
"kind": "qc",
"payload": {
"tests": [
{
"conditions": [
{
"condition": "deep_properties.audio[0].dolby_atmos.first_frame_of_action_sec == 0",
"message_pass": "PASS: Provided master file contains First Frame of Action equal to 0 seconds.",
"message_fail": "FAIL: Provided master file contains unexpected First Frame of Action value. Expected: 0, actual: {deep_properties.audio[0].dolby_atmos.first_frame_of_action_sec} seconds."
},
{
"condition": "deep_properties.audio[0].dolby_atmos.channels.beds.length == 10",
"message_pass": "PASS: The Atmos Mezzanine has 10 beds.",
"message_fail": "FAIL: The Atmos Mezzanine does not have 10 beds, it has {deep_properties.audio[0].dolby_atmos.channels.beds.length}."
}
]
}
]
}
}
Our example job will fail as the FFOA is greater than 0. Here is a snippet from the job results:
"results": [
{
"tests": [
{
"test_result": "Fail",
"conditions": [
{
"condition": "deep_properties.audio[0].dolby_atmos.first_frame_of_action_sec == 0",
"message_pass": "PASS: Provided master file contains First Frame of Action equal to 0 seconds.",
"message_fail": "FAIL: Provided master file contains unexpected First Frame of Action value. Expected: 0, actual: {deep_properties.audio[0].dolby_atmos.first_frame_of_action_sec} seconds.",
"condition_evaluation": false,
"message": "FAIL: Provided master file contains unexpected First Frame of Action value. Expected: 0, actual: 3599 seconds.",
"values": [
{
"parameter": "deep_properties.audio[0].dolby_atmos.first_frame_of_action_sec",
"value": 3599
}
]
},
{
"condition": "deep_properties.audio[0].dolby_atmos.channels.beds.length == 10",
"message_pass": "PASS: The Atmos Mezzanine has 10 beds.",
"message_fail": "FAIL: The Atmos Mezzanine does not have 10 beds, it has {deep_properties.audio[0].dolby_atmos.channels.beds.length}.",
"condition_evaluation": true,
"message": "PASS: The Atmos Mezzanine has 10 beds.",
"values": [
{
"parameter": "deep_properties.audio[0].dolby_atmos.channels.beds.length",
"value": 10
}
]
}
]
}
]
}
]
For more details on the QC task and other checks you can make, see our Analyze and QC Tutorial.