Commit 386fc4bb authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

[fix] make handling of differing lengths in OSBA binaural rendering more robust

parent 0947c7b1
Loading
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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):