From 386fc4bb55b1e31803989d03de6e3c1f2feba6d7 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 28 Jan 2026 11:24:05 +0100 Subject: [PATCH] [fix] make handling of differing lengths in OSBA binaural rendering more robust --- .../audiotools/convert/osba.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ivas_processing_scripts/audiotools/convert/osba.py b/ivas_processing_scripts/audiotools/convert/osba.py index f97329b3..26f8c360 100644 --- a/ivas_processing_scripts/audiotools/convert/osba.py +++ b/ivas_processing_scripts/audiotools/convert/osba.py @@ -82,14 +82,14 @@ def convert_osba( try: out.audio = out_ism.audio + out_sba.audio except ValueError as e: - if ( - out_ism.audio.shape[0] != out_sba.audio.shape[0] - and out_sba.audio.shape[0] == osba.audio.shape[0] - ): - out.audio = out_sba.audio - out.audio[: out_ism.audio.shape[0], :] += out_ism.audio - else: - raise e + min_len = min(out_ism.audio.shape[0], out_sba.audio.shape[0]) + Warning( + f"Encountered exception {e}\n" + f"Differing lengths for rendered ISM and SBA parts: {out_ism.audio.shape[0]} vs {out_sba.audio.shape[0]}\n" + f"Using first {min_len} samples\n" + ) + out.audio = out_sba.audio[:min_len, :] + out.audio += out_ism.audio[:min_len, :] # OSBA -> CBA elif isinstance(out, audio.ChannelBasedAudio): -- GitLab