audioObject

Description

An audioObject element establishes the relationship between the content, the format via audio packs, and the assets using the audioTrackUID elements. audioObjects can be nested to group together other audioObjects.

Example

<audioObject audioObjectID="AO_1002"
             audioObjectName="Object2"
             start="00:00:00.00000"
             dialogue="0" importance="5" interact="1" disableDucking="0">
  <audioPackFormatIDRef>AP_00010001</audioPackFormatIDRef>
  <audioComplementaryObjectIDRef>AO_1001</audioComplementaryObjectIDRef>
  <audioTrackUIDRef>ATU_00000003</audioTrackUIDRef>
  <audioObjectInteraction onOffInteract="1" gainInteract="1">
    <gainInteractionRange bound="min">-20.0</gainInteractionRange>
    <gainInteractionRange bound="max">3.0</gainInteractionRange>
  </audioObjectInteraction>
</audioObject>

Attributes

Attribute Description Example Required Default
audioObjectID ID of the object AO_1001 Yes
audioObjectName Name of the object dialogue_stereo Yes
start Start time for the object, relative to the start of the programme. 00:00:00.00000 Optional 00:00:00.00000
duration Duration of object. 00:02:00.00000 Optional unbounded
importance Importance of an object. Allows a renderer to discard an object below a certain level of importance. 10 is most important, 0 least. 10 Optional 10
interact Set to 1 if a user can interact with the object, 0 if not. 1 Optional 0
disableDucking Set to 1 to disallow automatic ducking of object, 0 to allow ducking 0 Optional 0

The time is shown in the format of ‘hh:mm:ss.zzzzz’. ‘hh:mm:ss.zzzzz’ indicates hours, minutes, seconds and fractional seconds.

Sub-elements

 Sub-element Description Example Quantity
audioPackFormatIDRef Reference to an audioPackFormat for format description AP_00010001 0..*
audioObjectIDRef Reference to another audioObject AO_1002 0..*
audioComplementaryObjectIDRef Reference to another audioObject that is complementary to the object, e.g. to describe mutually exclusive languages. AO_1003 0..*
audioTrackUIDRef Reference to an audioTrackUID (when using a BW64 file, this is listed in the chunk) ATU_00000001 0..*
audioObjectInteraction Specification of possible user interaction with the object. 0 or 1

If the value of audioTrackUIDRef is set to ATU_00000000 it does not refer to a track in the file, but refers to a virtual empty track. This can be useful for multichannel formats where some of the channels are not being used, so instead of storing zero value samples in the file, this silent track is used instead thus saving space in the file.

audioComplementaryObjectIDRef

The audioComplementaryObjectIDRef element contains a reference to another audioObject that is complementary to the parent audioObject. A list of audioComplementaryObjectIDRefs can therefore be used to describe mutually exclusive objects, e.g. language tracks that contain the same dialogue in different dub versions (“XOR” relationship). To avoid cross-references between audioComplementaryObjectIDRefs of several audioObjects, the audioComplementaryObjectIDRef sub-element should only be included in one corresponding parent audioObject for each set of mutually exclusive contents. The parent audioObject with the audioComplementaryObjectIDRefs should be the one that contains the default version of the set of mutually exclusive objects.

audioObjectInteraction sub-element

An audioObjectInteraction element describes any possible user interaction with the corresponding parent audioObject. It should be present only if the interact attribute of the parent audioObject is set to 1. In case the “Interact” attribute of the parent audioObject is set to 0, any audioObjectInteraction element should be ignored. The audioObjectInteraction element has the following attributes and sub-elements.

Attribute Description Example Required
onOffInteract Set to 1 if a user can switch the object on or off, 0 if not. 1 Yes
gainInteract Set to 1 if a user can change the gain of the object, 0 if not. 1 Optional
positionInteract Set to 1 if a user can change the position of the object, 0 if not. 0 Optional

If the onOffInteract attribute is set to 1, the audioObject can be swithced on or off by the user. If the gainInteract attribute is set to 1, the gain of the audioObject can be changed by the user according to the gainInteractionRange sub-element. If the positionInteract attribute is set to 1, the positions of the audioBlockFormats in the parent audioObject can be changed by the user according to the positionInteractionRange sub-element.

If an audioObject allows interaction, the change to an attribute that can be set by the user should be within the limits of the interaction range of that audioObject. In this context, a “change” is the difference between a condition before and after the interaction. The resultant position and gain of a sound source is the combination of the attributes of the position and gain sub-elements of the audioBlockFormat and all the changes caused by interaction in the hierarchy of audioObjects that refer to the audioBlockFormat.

gainInteractionRange

Bound attribute Description Units Example
min Minimum gain factor of possible user gain interaction (gainMin = gain (or 1.0 if not defined) * gainInteractionRangeMin) linear gain value 0.5
max Maximum gain factor of possible user gain interaction (gainMax = gain (or 1.0 if not defined) * gainInteractionRangeMax) linear gain value 1.5
Example
<audioObjectInteraction onOffInteract="1" gainInteract="1">
  <gainInteractionRange bound="min">-20.0</gainInteractionRange>
  <gainInteractionRange bound="max">3.0</gainInteractionRange>
</audioObjectInteraction>

positionInteractionRange

For polar coordinates:

coordinate attribute bound attribute Description Units Example
azimuth min Minimum azimuth offset value of possible user position interaction Degrees –30.0
azimuth max Maximum azimuth offset value of possible user position interaction Degrees +30.0
elevation min Minimum elevation offset value of possible user position interaction Degrees –15.0
elevation max Maximum elevation offset value of possible user position interaction Degrees +15.0
distance min Minimum normalised distance of possible user position interaction 0 to 1 0.5
distance max Maximum normalised distance of possible user position interaction 0 to 1 0.5
Example
<audioObjectInteraction onOffInteract="1" positionInteract="1">
  <positionInteractionRange bound="min" coordinate="azimuth">-50.0</positionInteractionRange>
  <positionInteractionRange bound="max" coordinate="azimuth">50.0</positionInteractionRange>
  <positionInteractionRange bound="min" coordinate="elevation">-20.0</positionInteractionRange>
  <positionInteractionRange bound="max" coordinate="elevation">20.0</positionInteractionRange>
  <positionInteractionRange bound="min" coordinate="distance">0.6</positionInteractionRange>
  <positionInteractionRange bound="max" coordinate="distance">1.0</positionInteractionRange>
</audioObjectInteraction>

For Cartesian coordinates:

coordinate attribute bound attribute Description Units Example
X min Minimum X-axis offset value of possible user position interaction Normalized Units –0.5
X max Maximum X-axis offset value of possible user position interaction Normalized Units +0.5
Y min Minimum Y-axis offset value of possible user position interaction Normalized Units –0.2
Y max Maximum Y-axis offset value of possible user position interaction Normalized Units 0.0
Z min Minimum Z-axis offset value of possible user position interaction Normalized Units 0.1
Z max Maximum Z-axis offset value of possible user position interaction Normalized Units 0.4
Example
<audioObjectInteraction onOffInteract="1" positionInteract="1">
  <positionInteractionRange bound="min" coordinate="X">-0.5</positionInteractionRange>
  <positionInteractionRange bound="max" coordinate="X">0.5</positionInteractionRange>
  <positionInteractionRange bound="min" coordinate="Y">-0.2</positionInteractionRange>
  <positionInteractionRange bound="max" coordinate="Y">0.2</positionInteractionRange>
  <positionInteractionRange bound="min" coordinate="Z">0.0</positionInteractionRange>
  <positionInteractionRange bound="max" coordinate="Z">1.0</positionInteractionRange>
</audioObjectInteraction>

Nested audioObjects and timing parameters

When audioObject elements are nested the start time of the audioObject is still relative to the start of the programme, not the relative to the audioObject that refers to it. It is required to ensure that any audioObject that is referred from another audioObject does not have a start time earlier than the referent, nor does it have an end time (i.e. start + duration) after the referent.