ebu / ebu_adm_renderer

The EBU ADM Renderer, written in Python, is the reference implementation of EBU Tech 3388
https://ear.readthedocs.io
BSD 3-Clause Clear License
79 stars 13 forks source link

add absoluteDistance handling #45

Closed tomjnixon closed 2 years ago

tomjnixon commented 2 years ago

absoluteDistance isn't used by the renderer; this PR just puts the absoluteDistance parameter in the results of item selection so that it can be accessed more easily in other projects.

For single channels with a single audioPackFormat this is simple; the logic in other cases is as follows, in-line with how HOA parameters are determined:

For a single channel absoluteDistance can be specified in any of the audioPackFormats referencing it, and if it's specified more than once the values must be the same.

For multi-channel items (HOA), the single-channel rule applies for each channel, and the value determined for each channel must be the same.

This means that in the typical HOA structure with one pack per order (pointing to the channels for that order and a pack for the next order down), the absoluteDistance must be specified in the top-level pack, and if it's specified in the lower packs it must match.