Commit b146a15e authored by Vladimir Malenovsky's avatar Vladimir Malenovsky
Browse files

fixes in OMASA format conversion

parent ca9a4d98
Loading
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


+10 −6
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@
#
from pathlib import Path
from tempfile import TemporaryDirectory
from typing import Optional
import shutil

from ivas_processing_scripts.audiotools import audio
from ivas_processing_scripts.audiotools.audiofile import write
@@ -40,7 +42,7 @@ 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 +53,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
    -------
@@ -84,7 +86,7 @@ def masaAnalyzer(
        str(binary),
        "-mono" if num_tcs == 1 else "-stereo",
        f"-{num_dirs}dir",
        "-foa" if sba.name.endswith("FOA") else "-hoa2",
        "-foaext" if sba.name.endswith("FOA") else "-hoa2ext",
        "",  # 4 -> inputPcm
        "",  # 5 -> outputPcm
        "",  # 6 -> output metadata file
@@ -94,10 +96,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 +110,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, tmp_out_met)

        return masa