Loading ivas_processing_scripts/audiotools/constants.py +70 −10 Original line number Diff line number Diff line Loading @@ -241,11 +241,21 @@ CHANNEL_BASED_AUDIO_ALTNAMES = { } METADATA_ASSISTED_SPATIAL_AUDIO_FORMATS = { "MASA1": { "MASA1DIR1": { "num_channels": 1, "dirs": 1, }, "MASA2": { "MASA1DIR2": { "num_channels": 1, "dirs": 2, }, "MASA2DIR1": { "num_channels": 2, "dirs": 1, }, "MASA2DIR2": { "num_channels": 2, "dirs": 2, }, } Loading Loading @@ -304,37 +314,87 @@ SCENE_BASED_AUDIO_FORMATS = { } OMASA_AUDIO_FORMATS = { "ISM1MASA1": { # 1 dir "ISM1MASA1DIR1": { "num_channels": 2, "num_ism_channels": 1, "dirs": 1, }, "ISM1MASA2DIR1": { "num_channels": 3, "num_ism_channels": 1, "dirs": 1, }, "ISM2MASA1DIR1": { "num_channels": 3, "num_ism_channels": 2, "dirs": 1, }, "ISM2MASA2DIR1": { "num_channels": 4, "num_ism_channels": 2, "dirs": 1, }, "ISM3MASA1DIR1": { "num_channels": 4, "num_ism_channels": 3, "dirs": 1, }, "ISM3MASA2DIR1": { "num_channels": 5, "num_ism_channels": 3, "dirs": 1, }, "ISM4MASA1DIR1": { "num_channels": 5, "num_ism_channels": 4, "dirs": 1, }, "ISM4MASA2DIR1": { "num_channels": 6, "num_ism_channels": 4, "dirs": 1, }, # 2 sdirs "ISM1MASA1DIR2": { "num_channels": 2, "num_ism_channels": 1, "dirs": 2, }, "ISM1MASA2": { "ISM1MASA2DIR2": { "num_channels": 3, "num_ism_channels": 1, "dirs": 2, }, "ISM2MASA1": { "ISM2MASA1DIR2": { "num_channels": 3, "num_ism_channels": 2, "dirs": 2, }, "ISM2MASA2": { "ISM2MASA2DIR2": { "num_channels": 4, "num_ism_channels": 2, "dirs": 2, }, "ISM3MASA1": { "ISM3MASA1DIR2": { "num_channels": 4, "num_ism_channels": 3, "dirs": 2, }, "ISM3MASA2": { "ISM3MASA2DIR2": { "num_channels": 5, "num_ism_channels": 3, "dirs": 2, }, "ISM4MASA1": { "ISM4MASA1DIR2": { "num_channels": 5, "num_ism_channels": 4, "dirs": 2, }, "ISM4MASA2": { "ISM4MASA2DIR2": { "num_channels": 6, "num_ism_channels": 4, "dirs": 2, }, } Loading ivas_processing_scripts/audiotools/convert/osba.py +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ def convert_osba( raise ValueError("OSBA to OMASA conversion only possible if number of ISM objects matches") # only render SBA part out_sba = audio.fromtype("MASA"+out.name[-1]) out_sba = audio.fromtype(out.name[4:]) render_sba_to_masa(sba, out_sba) out.audio[:, :osba.num_ism_channels] = osba.audio[:, :osba.num_ism_channels] Loading ivas_processing_scripts/audiotools/convert/scenebased.py +3 −6 Original line number Diff line number Diff line Loading @@ -196,14 +196,11 @@ def render_sba_to_masa( sba_in: audio.SceneBasedAudio, masa_out: audio.MetadataAssistedSpatialAudio, ) -> None: num_dirs = 1 if sba_in.name == "HOA2": num_dirs = 2 num_tcs = masa_out.name[-1] md_out_path = masa_out.metadata_files num_tcs = masa_out.num_channels md_out_path = masa_out.metadata_files # TODO: get metadata files masa = masaAnalyzer(sba_in, num_tcs, num_dirs, md_out_path) masa = masaAnalyzer(sba_in, num_tcs, masa_out.dirs, md_out_path) masa_out.audio = masa.audio Loading ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py +2 −2 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ def masaAnalyzer( if num_dirs not in [1, 2]: raise ValueError(f"Only 1 or 2 directions supported, but {num_dirs} was given.") if sba.name not in ["PLANARFOA", "FOA", "HOA2"]: if sba.name not in ["PLANARFOA", "FOA", "HOA2"]: # TODO treffehn: add planarhoa2? raise ValueError(f"Only FOA or HOA2 suported, but {sba.name} was given.") if num_dirs == 2 and sba.name != "HOA2": Loading Loading @@ -105,7 +105,7 @@ def masaAnalyzer( # we need to run in the masaAnalyzer directory to use the .bin files it requires run(cmd, cwd=binary.resolve().parent) fmt = f"MASA{num_tcs}" fmt = f"MASA{num_tcs}DIR{num_dirs}" masa = audio.fromfile(fmt, tmp_out_pcm, 48000, [metadata_out_path]) return masa Loading
ivas_processing_scripts/audiotools/constants.py +70 −10 Original line number Diff line number Diff line Loading @@ -241,11 +241,21 @@ CHANNEL_BASED_AUDIO_ALTNAMES = { } METADATA_ASSISTED_SPATIAL_AUDIO_FORMATS = { "MASA1": { "MASA1DIR1": { "num_channels": 1, "dirs": 1, }, "MASA2": { "MASA1DIR2": { "num_channels": 1, "dirs": 2, }, "MASA2DIR1": { "num_channels": 2, "dirs": 1, }, "MASA2DIR2": { "num_channels": 2, "dirs": 2, }, } Loading Loading @@ -304,37 +314,87 @@ SCENE_BASED_AUDIO_FORMATS = { } OMASA_AUDIO_FORMATS = { "ISM1MASA1": { # 1 dir "ISM1MASA1DIR1": { "num_channels": 2, "num_ism_channels": 1, "dirs": 1, }, "ISM1MASA2DIR1": { "num_channels": 3, "num_ism_channels": 1, "dirs": 1, }, "ISM2MASA1DIR1": { "num_channels": 3, "num_ism_channels": 2, "dirs": 1, }, "ISM2MASA2DIR1": { "num_channels": 4, "num_ism_channels": 2, "dirs": 1, }, "ISM3MASA1DIR1": { "num_channels": 4, "num_ism_channels": 3, "dirs": 1, }, "ISM3MASA2DIR1": { "num_channels": 5, "num_ism_channels": 3, "dirs": 1, }, "ISM4MASA1DIR1": { "num_channels": 5, "num_ism_channels": 4, "dirs": 1, }, "ISM4MASA2DIR1": { "num_channels": 6, "num_ism_channels": 4, "dirs": 1, }, # 2 sdirs "ISM1MASA1DIR2": { "num_channels": 2, "num_ism_channels": 1, "dirs": 2, }, "ISM1MASA2": { "ISM1MASA2DIR2": { "num_channels": 3, "num_ism_channels": 1, "dirs": 2, }, "ISM2MASA1": { "ISM2MASA1DIR2": { "num_channels": 3, "num_ism_channels": 2, "dirs": 2, }, "ISM2MASA2": { "ISM2MASA2DIR2": { "num_channels": 4, "num_ism_channels": 2, "dirs": 2, }, "ISM3MASA1": { "ISM3MASA1DIR2": { "num_channels": 4, "num_ism_channels": 3, "dirs": 2, }, "ISM3MASA2": { "ISM3MASA2DIR2": { "num_channels": 5, "num_ism_channels": 3, "dirs": 2, }, "ISM4MASA1": { "ISM4MASA1DIR2": { "num_channels": 5, "num_ism_channels": 4, "dirs": 2, }, "ISM4MASA2": { "ISM4MASA2DIR2": { "num_channels": 6, "num_ism_channels": 4, "dirs": 2, }, } Loading
ivas_processing_scripts/audiotools/convert/osba.py +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ def convert_osba( raise ValueError("OSBA to OMASA conversion only possible if number of ISM objects matches") # only render SBA part out_sba = audio.fromtype("MASA"+out.name[-1]) out_sba = audio.fromtype(out.name[4:]) render_sba_to_masa(sba, out_sba) out.audio[:, :osba.num_ism_channels] = osba.audio[:, :osba.num_ism_channels] Loading
ivas_processing_scripts/audiotools/convert/scenebased.py +3 −6 Original line number Diff line number Diff line Loading @@ -196,14 +196,11 @@ def render_sba_to_masa( sba_in: audio.SceneBasedAudio, masa_out: audio.MetadataAssistedSpatialAudio, ) -> None: num_dirs = 1 if sba_in.name == "HOA2": num_dirs = 2 num_tcs = masa_out.name[-1] md_out_path = masa_out.metadata_files num_tcs = masa_out.num_channels md_out_path = masa_out.metadata_files # TODO: get metadata files masa = masaAnalyzer(sba_in, num_tcs, num_dirs, md_out_path) masa = masaAnalyzer(sba_in, num_tcs, masa_out.dirs, md_out_path) masa_out.audio = masa.audio Loading
ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py +2 −2 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ def masaAnalyzer( if num_dirs not in [1, 2]: raise ValueError(f"Only 1 or 2 directions supported, but {num_dirs} was given.") if sba.name not in ["PLANARFOA", "FOA", "HOA2"]: if sba.name not in ["PLANARFOA", "FOA", "HOA2"]: # TODO treffehn: add planarhoa2? raise ValueError(f"Only FOA or HOA2 suported, but {sba.name} was given.") if num_dirs == 2 and sba.name != "HOA2": Loading Loading @@ -105,7 +105,7 @@ def masaAnalyzer( # we need to run in the masaAnalyzer directory to use the .bin files it requires run(cmd, cwd=binary.resolve().parent) fmt = f"MASA{num_tcs}" fmt = f"MASA{num_tcs}DIR{num_dirs}" masa = audio.fromfile(fmt, tmp_out_pcm, 48000, [metadata_out_path]) return masa