Commit 4651439f authored by Vladimir Malenovsky's avatar Vladimir Malenovsky
Browse files

fix OMASA item generation

parent 0375de2a
Loading
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -129,14 +129,20 @@ def convert_osba(
            )

        # only render SBA part to MASA
        out_sba = audio.fromtype(out.name[4:])
        out_sba.metadata_file = out.metadata_files[-1]
        render_sba_to_masa(sba, out_sba)
        out_masa = audio.fromtype(out.name[4:])
        if out.metadata_files[-1].endswith(".met"):
            # if MASA metadata filename is given, copy it
            out_masa.metadata_file = copy(out.metadata_files[-1])
        render_sba_to_masa(sba, out_masa)

        # combine ISM audio with MASA audio into OMASA audio
        out.audio = np.concatenate((oba.audio, out_masa.audio), axis=1)

        # ism audio is passed through
        ism_audio = osba.audio[:, : osba.num_ism_channels]
        # combine ISM metadata with MASA metadata filenames
        out.metadata_files = oba.metadata_files + [out_masa.metadata_file]

        out.audio = np.concatenate((ism_audio, out_sba.audio), axis=1)
        # copy ISM object positions
        out.object_pos = copy(oba.object_pos)

    # OSBA -> OSBA
    elif isinstance(out, audio.OSBAAudio):
+11 −0
Original line number Diff line number Diff line
@@ -197,6 +197,17 @@ def render_sba_to_masa(
    masa_out: audio.MetadataAssistedSpatialAudio,
) -> None:
    num_tcs = masa_out.num_channels

    # convert to HOA2 if input is HOA3
    if sba_in.name.endswith("HOA3"):
        warn(
            "MASA conversion only supports up to 2nd order ambisonics! Converting to HOA2 format."
        )
        sba_hoa2 = audio.fromtype("HOA2")
        sba_hoa2.fs = sba_in.fs
        render_sba_to_sba(sba_in, sba_hoa2)
        sba_in = sba_hoa2

    masa = masaAnalyzer(sba_in, num_tcs, masa_out.dirs, masa_out.metadata_file)
    masa_out.audio = masa.audio

+4 −4
Original line number Diff line number Diff line
@@ -288,12 +288,12 @@ def generate_ismN_scene(
            x.fs = cfg.fs

        # adjust the level of the audio source file (need to convert to MONO first)
        if np.isinf(level):
            # set all channels to zero
            x.audio = np.zeros_like(x.audio)
        elif level is None:
        if level is None:
            # do not change the level of the audio source signal
            logger.info("-- Level of the audio source signal is not changed")
        elif np.isinf(level):
            # set all channels to zero
            x.audio = np.zeros_like(x.audio)
        else:
            x_temp = audio.ChannelBasedAudio(
                "MONO"
+4 −4
Original line number Diff line number Diff line
@@ -316,12 +316,12 @@ def generate_MASA_scene(
            x = reverb_hoa3(x, IR, mode=None)

        # adjust the level of the FOA/HOA2/HOA3 signal
        if np.isinf(level):
            # set all channels to zero
            x.audio = np.zeros_like(x.audio)
        elif level is None:
        if level is None:
            # do not change the level of the audio source signal
            logger.info("-- Level of the audio source signal is not changed")
        elif np.isinf(level):
            # set all channels to zero
            x.audio = np.zeros_like(x.audio)
        else:
            x.audio, _ = loudness_norm(x, level, loudness_format="STEREO")

+4 −4
Original line number Diff line number Diff line
@@ -316,12 +316,12 @@ def generate_MC_scene(
            x = reverb_hoa3(x, IR, mode=None)

        # adjust the level of the FOA/HOA2/HOA3 signal
        if np.isinf(level):
            # set all channels to zero
            x.audio = np.zeros_like(x.audio)
        elif level is None:
        if level is None:
            # do not change the level of the audio source signal
            logger.info("-- Level of the audio source signal is not changed")
        elif np.isinf(level):
            # set all channels to zero
            x.audio = np.zeros_like(x.audio)
        else:
            x.audio, _ = loudness_norm(x, level, loudness_format="STEREO")

Loading