- ISO/IEC SC29 WG3 (MPEG Systems) - Scene Description Breakout Group
- Contacts
- Thomas Stockhammer (MPEG-I Scene Description BoG Chair, [email protected])
Based on ISO/IEC FDIS 23090-14
Written against the glTF 2.0 spec.
The MPEG_audio_spatial
extension adds support for spatial audio and it may be included at top level or attached to any node in the scene.
The MPEG_audio_spatial
extension supports three different node types:
source
: an audio source that provides input audio data into the scene. Mono object and HOA sources are supported in this version of the document.- Type:
Object
orHOA
HOA
audio sources shall ignore the parent node's position and be rendered only in 3DoF.
- Type:
reverb
: A reverb effect can be attached to the output of an audio source. Several reverb units can exist and sound sources can feed into one or more of these reverb units. An audio renderer that does not support reverb shall ignore it if the bypass attribute is set to true. If the bypass attribute is set to false, the audio renderer shall return an error messagelistener
: An audio listener represents the output of audio in the scene. A listener should be attached to a camera node in the scene. By being a child node of the camera, additional transformations can be applied to the audio listener relative to the transformation applied to the parent camera.
MPEG_audio_spatial
Properties
Type | Description | Required | |
---|---|---|---|
sources | MPEG_audio_spatial.source [1-*] |
An array of audio sources. | No |
listener | MPEG_audio_spatial.listener |
No | |
reverbs | MPEG_audio_spatial.reverb [1-*] |
An array of reverb items | No |
extensions | object |
JSON object with extension-specific objects. | No |
extras | any |
Application-specific data. | No |
Additional properties are allowed.
- JSON schema: MPEG_audio_spatial.schema.json
An array of audio sources.
- Type:
MPEG_audio_spatial.source
[1-*]
- Required: No
- Type:
MPEG_audio_spatial.listener
- Required: No
An array of reverb items
- Type:
MPEG_audio_spatial.reverb
[1-*]
- Required: No
JSON object with extension-specific objects.
- Type:
object
- Required: No
- Type of each property: Extension
Application-specific data.
- Type:
any
- Required: No
MPEG_audio_spatial.listener
Properties
Type | Description | Required | |
---|---|---|---|
id | integer |
A unique identifier | ✓ Yes |
extensions | object |
JSON object with extension-specific objects. | No |
extras | any |
Application-specific data. | No |
Additional properties are allowed.
- JSON schema: MPEG_audio_spatial.listener.schema.json
A unique identifier of the audio listener in the scene.
- Type:
integer
- Required: ✓ Yes
JSON object with extension-specific objects.
- Type:
object
- Required: No
- Type of each property: Extension
Application-specific data.
- Type:
any
- Required: No
MPEG_audio_spatial.reverb
Properties
Type | Description | Required | |
---|---|---|---|
id | any |
A unique identifier | ✓ Yes |
bypass | boolean |
Indicates if the reverb unit can be bypassed if the audio renderer does not support it. | No, default: true |
properties | MPEG_audio_spatial.reverb.property [1-*] |
An array of property items | ✓ Yes |
predelay | number |
Delay of audio source. | No, default: 0 |
extensions | object |
JSON object with extension-specific objects. | No |
extras | any |
Application-specific data. | No |
Additional properties are allowed.
- JSON schema: MPEG_audio_spatial.reverb.schema.json
A unique identifier of the audio reverb unit in the scene.
- Type:
any
- Required: ✓ Yes
Indicates if the reverb unit can be bypassed if the audio renderer does not support it.
- Type:
boolean
- Required: No, default:
true
Array of items that contains reverb property objects describing reverb unit specific parameters
- Type:
MPEG_audio_spatial.reverb.property
[1-*]
- Required: ✓ Yes
Delay in seconds from onset of source to onset of late reverberation for which DSR is provided.
- Type:
number
- Required: No, default:
0
JSON object with extension-specific objects.
- Type:
object
- Required: No
- Type of each property: Extension
Application-specific data.
- Type:
any
- Required: No
MPEG_audio_spatial.reverb.property
Properties
Type | Description | Required | |
---|---|---|---|
frequency | number |
Frequency for RT60 and DSR values | ✓ Yes |
RT60 | number |
Specifies RT60 value in seconds for the frequency provided in the frequency field |
✓ Yes |
DSR | number |
Specifies Diffuse-to-Source Ratio value in dB for the frequency provided in the frequency field. |
✓ Yes |
extensions | object |
JSON object with extension-specific objects. | No |
extras | any |
Application-specific data. | No |
Additional properties are allowed.
- JSON schema: MPEG_audio_spatial.reverb.property.schema.json
Frequency for the provided RT60 and DSR values.
- Type:
number
- Required: ✓ Yes
Specifies RT60 value in seconds for the frequency provided in the frequency
field
- Type:
number
- Required: ✓ Yes
Specifies Diffuse-to-Source Ratio value in dB for the frequency provided in the frequency
field. For details see ISO/IEC 23090-14:5.4.1.4.
- Type:
number
- Required: ✓ Yes
JSON object with extension-specific objects.
- Type:
object
- Required: No
- Type of each property: Extension
Application-specific data.
- Type:
any
- Required: No
MPEG_audio_spatial.source
Properties
Type | Description | Required | |
---|---|---|---|
id | integer |
A unique identifier | ✓ Yes |
type | string |
A type of the audio source | ✓ Yes |
pregain | number |
A level-adjustment of the audio source | No, default: 0 |
playbackSpeed | number |
Playback speed of the audio source | No, default: 1 |
attenuation | any |
A function used to calculate the attenuation of the audio source. | No, default: linearDistance |
attenuationParameters | number [1-*] |
An array of attenuation parameters | No |
referenceDistance | number |
A distance in meters. | No, default: 1 |
accessors | integer [1-*] |
An array of accessors that describe the audio source |
✓ Yes |
reverbFeed | integer [] |
An array of pointers to reverb units | No |
reverbFeedGain | number [] |
An array of gain values | No |
extensions | object |
JSON object with extension-specific objects. | No |
extras | any |
Application-specific data. | No |
Additional properties are allowed.
- JSON schema: MPEG_audio_spatial.source.schema.json
A unique identifier of the audio source in the scene.
- Type:
integer
- Required: ✓ Yes
Indicates the type of the audio source. type
value equal to Object
indicates mono object. type
value equal to HOA
indicates HOA object
- Type:
string
- Required: ✓ Yes
- Allowed values:
"Object"
"HOA"
Provides a level-adjustment in dB for the signal associated with the source.
- Type:
number
- Required: No, default:
0
- Minimum:
>= 0
Playback speed of the audio signal. A value of 1.0 corresponds to playback at normal speed. The value shall be between 0.5 and 2.0.
- Type:
number
- Required: No, default:
1
- Minimum:
>= 0.5
- Maximum:
<= 2
Indicates the function used to calculate the attenuation of the audio signal based on the distance to the source. attenuation value equal to noAttenuation
indicates no attenuation function should be used. attenuation value equal to inverseDistance
indicates inverse distance function should be used. attenuation value equal to linearDistance
indicates linear distance function should be used. attenuation value equal to exponentialDistance
indicates exponential distance function should be used. attenuation value equal to custom
indicates custom function should be used. The definition of custom
function is outside of the scope of ISO/IEC 23090-14. The attenuation functions and their parameters are defined in ISO/IEC 23090-14:Annex D.
- Type:
any
- Required: No, default:
linearDistance
- Allowed values:
noAttenuation
inverseDistance
linearDistance
exponentialDistance
custom
An array of parameters that are input to the attenuation function. The semantics of these parameters depend on the attenuation function itself and are defined in ISO/IEC 23090-14
- Type:
number
[1-*]
- Required: No
Provides the distance in meters for which the distance gain is implicitly included in the source signal after application of pregain. When type equals ‘HOA’ the element shall not be present.
- Type:
number
- Required: No, default:
1
- Minimum:
>= 1
An array of accessor
references, by specifying the accessors
indices in `accessors array, that describe the buffers where the decoded audio will be made available.
- Type:
integer
[1-*]
- Each element in the array MUST be greater than or equal to
0
.
- Each element in the array MUST be greater than or equal to
- Required: ✓ Yes
Provides one or more pointers to reverb units, optionally extended by a floating point scaling factor. A reverb unit represents a reverberation audio processor that is configured by the metadata from a single reverb object. Typically, a reverb object represents reverberation properties of a single room.
- Type:
integer
[]
- Required: No
Provides an array of gain [dB] values to be applied to the source’s signal(s) when feeding it to the corresponding reverbFeed. The array shall have the same number of elements as the reverbFeed array field.
- Type:
number
[]
- Required: No
JSON object with extension-specific objects.
- Type:
object
- Required: No
- Type of each property: Extension
Application-specific data.
- Type:
any
- Required: No
The MPEG_audio_spatial
works with the MPEG_accessor_timed
to reference audio sources.
- ISO/IEC FDIS 23090-14, Information technology — Coded representation of immersive media — Part 14: Scene Description
- ISO/IEC WD 23090-24, Information technology — Coded representation of immersive media — Part 24: Conformance and Reference Software for Scene Description for MPEG Media
Copyright ISO/IEC 2022
The use of the "MPEG scene description extensions" is subject to the license as accessible here: https://standards.iso.org/ and is subject to the IPR policy as accessible here: https://www.iso.org/iso-standards-and-patents.html.