Commit 8fd185de authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch '74-corrections-in-the-omasa-format-conversion-function' into 'main'

Update MasaAnalyzer wrapper metadata file handling

See merge request !157
parents 9b5e56ae c0f6f037
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ def convert_omasa(
        omasa.audio[:, : omasa.num_ism_channels],
        omasa.fs,
    )
    oba.metadata_files = copy(omasa.metadata_files)
    oba.metadata_files = omasa.metadata_files[:-1]
    oba.object_pos = copy(omasa.object_pos)
    masa = audio.fromarray(
        "MASA"
+1 −3
Original line number Diff line number Diff line
@@ -197,9 +197,7 @@ def render_sba_to_masa(
    masa_out: audio.MetadataAssistedSpatialAudio,
) -> None:
    num_tcs = masa_out.num_channels
    md_out_path = masa_out.metadata_file

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


+11 −5
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#
from pathlib import Path
from tempfile import TemporaryDirectory
from typing import Optional

from ivas_processing_scripts.audiotools import audio
from ivas_processing_scripts.audiotools.audiofile import write
@@ -40,7 +41,10 @@ from ivas_processing_scripts.utils import find_binary, run


def masaAnalyzer(
    sba: audio.SceneBasedAudio, num_tcs: int, num_dirs: int, metadata_out_path: Path
    sba: audio.SceneBasedAudio,
    num_tcs: int,
    num_dirs: int,
    metadata_out_filename: Optional[Path] = None,
) -> audio.MetadataAssistedSpatialAudio:
    """
    Wrapper for masaAnalyzer (from MASA reference software)
@@ -51,8 +55,8 @@ def masaAnalyzer(
        Number of MASA transport channels (1 - monoMASA, 2- stereoMASA)
    num_dirs: int
        Number of directions
    metadata_out_path:
        Path to output the Metadata file to
    metadata_out_filename:
        Output metadata filename (optional, tmp filename generated if not provided)

    Returns
    -------
@@ -94,10 +98,12 @@ def masaAnalyzer(
        tmp_dir = Path(tmp_dir)
        tmp_in = tmp_dir.joinpath("tmp_masaAnaIn.pcm")
        tmp_out_pcm = tmp_dir.joinpath("tmp_masaAnaOut.pcm")
        if metadata_out_filename is None:
            metadata_out_filename = tmp_dir.joinpath("tmp_masaAnaOut.met")

        cmd[4] = str(tmp_in)
        cmd[5] = str(tmp_out_pcm)
        cmd[6] = str(metadata_out_path)
        cmd[6] = str(metadata_out_filename.resolve())

        tmp_audio = resample_itu(sba, 48000)
        write(tmp_in, tmp_audio, 48000)
@@ -106,6 +112,6 @@ def masaAnalyzer(
        run(cmd, cwd=binary.resolve().parent)

        fmt = f"MASA{num_tcs}DIR{num_dirs}"
        masa = audio.fromfile(fmt, tmp_out_pcm, 48000, metadata_out_path)
        masa = audio.fromfile(fmt, tmp_out_pcm, 48000, metadata_out_filename)

        return masa