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

Fix channel lock priority order #28

Closed tomjnixon closed 3 years ago

tomjnixon commented 3 years ago

The intent of this line was to produce a vector containing the index of each number in priority_order:

np.arange(len(layout.channels))[priority_order]

but this does nothing; the result is the same as priority_order.

In this case the spec and the original intent was correct, see section 7.3.6; this behaviour makes no sense. The existing tests aren't too bad, it just looks like we were unlucky and didn't hit any cases which were incorrect.

This is quite unlikely to have happened in the real world; the result would have been that if the position was exactly between 2 channels, the 'wrong' one may have been picked, resulting in left-right inconsistency, for example.

tomjnixon commented 3 years ago

Looks like the order for 4+5+0 was completely correct; the order test should be changed to use a different layout that failed before.