From 0819ed1587b9bccb7a013421e119b00b8ba03c6c Mon Sep 17 00:00:00 2001 From: Trevor Knight Date: Fri, 23 Oct 2026 16:05:08 -0400 Subject: [PATCH] Fix OBR speaker locations to ITU standards Elevations wrong: Upper speakers use +45 degrees rather than +30, but only UH180 should be +45. (UH180 is not used in any layout used by OBR. It is in Sound System F, not used as an input by OBR) Sound System D (5.1.4) upper speakers azimuths are wrong: Currently are 45 and 135, but should be 30 and 110. This doesn't match OLR or the ITU standard. Reference ITU Reference: https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.2051-3-202205-I!!PDF-E.pdf --- .../obr/obr/renderer/loudspeaker_layouts.h | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/renderer/obr/obr_capi/obr/obr/renderer/loudspeaker_layouts.h b/src/renderer/obr/obr_capi/obr/obr/renderer/loudspeaker_layouts.h index a452cf0..86a5db1 100644 --- a/src/renderer/obr/obr_capi/obr/obr/renderer/loudspeaker_layouts.h +++ b/src/renderer/obr/obr_capi/obr/obr/renderer/loudspeaker_layouts.h @@ -77,6 +77,8 @@ class LoudspeakerLayouts { kUR45, kUL90, kUR90, + kUL110, + kUR110, kUL135, kUR135, kU180, @@ -121,25 +123,25 @@ class LoudspeakerLayouts { LoudspeakerLayoutInputChannel("kR135", -135.0f, 0.0f, 1.0f, false)}, {k180, LoudspeakerLayoutInputChannel("k180", 180.0f, 0.0f, 1.0f, false)}, - {kUC, LoudspeakerLayoutInputChannel("kUC", 0.0f, 45.0f, 1.0f, false)}, + {kUC, LoudspeakerLayoutInputChannel("kUC", 0.0f, 30.0f, 1.0f, false)}, {kUL30, - LoudspeakerLayoutInputChannel("kUL30", 30.0f, 45.0f, 1.0f, false)}, + LoudspeakerLayoutInputChannel("kUL30", 30.0f, 30.0f, 1.0f, false)}, {kUR30, - LoudspeakerLayoutInputChannel("kUR30", -30.0f, 45.0f, 1.0f, false)}, + LoudspeakerLayoutInputChannel("kUR30", -30.0f, 30.0f, 1.0f, false)}, {kUL45, - LoudspeakerLayoutInputChannel("kUL45", 45.0f, 45.0f, 1.0f, false)}, + LoudspeakerLayoutInputChannel("kUL45", 45.0f, 30.0f, 1.0f, false)}, {kUR45, - LoudspeakerLayoutInputChannel("kUR45", -45.0f, 45.0f, 1.0f, false)}, + LoudspeakerLayoutInputChannel("kUR45", -45.0f, 30.0f, 1.0f, false)}, {kUL90, - LoudspeakerLayoutInputChannel("kUL90", 90.0f, 45.0f, 1.0f, false)}, + LoudspeakerLayoutInputChannel("kUL90", 90.0f, 30.0f, 1.0f, false)}, {kUR90, - LoudspeakerLayoutInputChannel("kUR90", -90.0f, 45.0f, 1.0f, false)}, + LoudspeakerLayoutInputChannel("kUR90", -90.0f, 30.0f, 1.0f, false)}, {kUL135, - LoudspeakerLayoutInputChannel("kUL135", 135.0f, 45.0f, 1.0f, false)}, - {kUR135, LoudspeakerLayoutInputChannel("kUR135", -135.0f, 45.0f, 1.0f, + LoudspeakerLayoutInputChannel("kUL135", 135.0f, 30.0f, 1.0f, false)}, + {kUR135, LoudspeakerLayoutInputChannel("kUR135", -135.0f, 30.0f, 1.0f, false)}, {kU180, - LoudspeakerLayoutInputChannel("kU180", 180.0f, 45.0f, 1.0f, false)}, + LoudspeakerLayoutInputChannel("kU180", 180.0f, 30.0f, 1.0f, false)}, {kBC, LoudspeakerLayoutInputChannel("kBC", 0.0f, -30.0f, 1.0f, false)}, {kBL45, @@ -175,7 +177,7 @@ class LoudspeakerLayouts { {kL30, kR30, kC, kLFE, kL110, kR110, kUL30, kUR30}}, // IAMF 5.1.4: IAMF 5.1.4 Layout {AudioElementType::kLayout5_1_4_ch, - {kL30, kR30, kC, kLFE, kL110, kR110, kUL45, kUR45, kUL135, kUR135}}, + {kL30, kR30, kC, kLFE, kL110, kR110, kUL30, kUR30, kUL110, kUR110}}, // IAMF 7.1: IAMF 7.1 Layout {AudioElementType::kLayout7_1_0_ch, {kL30, kR30, kC, kLFE, kL90, kR90, kL135, kR135}},