diff --git a/ivas_processing_scripts/audiotools/convert/omasa.py b/ivas_processing_scripts/audiotools/convert/omasa.py index 68c66cbad16d4b8867f68f4dbfa46b3f1bfc535b..4da18127de566957c3aecf66e4107e9721b8e2e2 100644 --- a/ivas_processing_scripts/audiotools/convert/omasa.py +++ b/ivas_processing_scripts/audiotools/convert/omasa.py @@ -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" diff --git a/ivas_processing_scripts/audiotools/convert/scenebased.py b/ivas_processing_scripts/audiotools/convert/scenebased.py index a2b4222641acefc566bfd5e3126298cdf6a55bad..b633f6e73052379661ce47eb4bb00ff160b730df 100755 --- a/ivas_processing_scripts/audiotools/convert/scenebased.py +++ b/ivas_processing_scripts/audiotools/convert/scenebased.py @@ -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 diff --git a/ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py b/ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py index dde8bbdc766960de007a90d98ceef5032aff00ce..3eea5dbea6231960a4fad73bec00ff0d7745a411 100644 --- a/ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py +++ b/ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py @@ -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