From dbea377ee78e58caf0c2ec73f716e6751aef42b4 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 10 Oct 2024 15:01:00 +0200 Subject: [PATCH 1/4] [fix] bug in chains.py causing incorrect parsing of error pattern files specified in config --- ivas_processing_scripts/processing/chains.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivas_processing_scripts/processing/chains.py b/ivas_processing_scripts/processing/chains.py index 06080320..3c0bbaf4 100755 --- a/ivas_processing_scripts/processing/chains.py +++ b/ivas_processing_scripts/processing/chains.py @@ -425,7 +425,7 @@ def get_processing_chain( elif tx_cfg_tmp.get("type", None) == "JBM": tx_cfg = { "type": tx_cfg_tmp.get("type", None), - "error_pattern": tx_cfg_tmp.get("error_rate", None), + "error_pattern": tx_cfg_tmp.get("error_pattern", None), "error_profile": tx_cfg_tmp.get("error_profile", None), "n_frames_per_packet": tx_cfg_tmp.get("n_frames_per_packet", None), "master_seed": cfg.master_seed, -- GitLab From 453bdf64a23d97be4e8bae900fb2ac794f1c8c39 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 10 Oct 2024 15:25:07 +0200 Subject: [PATCH 2/4] [fix] bug parsing output folder names --- .../processing/processing_splitting_scaling.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ivas_processing_scripts/processing/processing_splitting_scaling.py b/ivas_processing_scripts/processing/processing_splitting_scaling.py index 771c6f03..ba3f5d43 100644 --- a/ivas_processing_scripts/processing/processing_splitting_scaling.py +++ b/ivas_processing_scripts/processing/processing_splitting_scaling.py @@ -140,8 +140,8 @@ class Processing_splitting_scaling(Processing): # derive output folder names out_out_files = [] for f in out_files: - regex_filter = r"[/\\][t][m][p][_]\w+[/\\]" - tmp_name = re.search(regex_filter, str(f)).group().strip()[1:-1] + # assume that file resides in tmp folder + tmp_name = f.parent.name out_name = tmp_name.replace("tmp_", "") if self.condition_in_output_filename: f_out = Path( -- GitLab From b66a0647acd081c3af93795307989062027317a4 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 10 Oct 2024 15:49:55 +0200 Subject: [PATCH 3/4] format and lint --- ivas_processing_scripts/__init__.py | 7 +++- ivas_processing_scripts/audiotools/audio.py | 19 ++++++--- .../audiotools/audiofile.py | 16 +++++++- .../audiotools/convert/__init__.py | 14 ++++--- .../audiotools/convert/omasa.py | 36 ++++++++++++---- .../audiotools/convert/osba.py | 41 ++++++++++++++----- .../audiotools/metadata.py | 4 +- .../audiotools/wrappers/bs1770.py | 6 ++- ivas_processing_scripts/processing/evs.py | 25 ++++++++--- ivas_processing_scripts/processing/ivas.py | 30 +++++++++++--- .../processing/preprocessing_2.py | 8 +++- .../processing/processing.py | 15 +++++-- .../processing_splitting_scaling.py | 1 - 13 files changed, 169 insertions(+), 53 deletions(-) diff --git a/ivas_processing_scripts/__init__.py b/ivas_processing_scripts/__init__.py index 093504f5..7f6598bf 100755 --- a/ivas_processing_scripts/__init__.py +++ b/ivas_processing_scripts/__init__.py @@ -36,7 +36,10 @@ from itertools import product from multiprocessing import Pool from time import sleep -from ivas_processing_scripts.audiotools.metadata import check_ISM_metadata, check_MASA_metadata +from ivas_processing_scripts.audiotools.metadata import ( + check_ISM_metadata, + check_MASA_metadata, +) from ivas_processing_scripts.constants import ( LOGGER_DATEFMT, LOGGER_FORMAT, @@ -149,7 +152,7 @@ def main(args): for i, meta in enumerate(metadata): meta.extend(metadata_MASA[i]) - if not cfg.input["fmt"].startswith("ISM") and not "MASA" in cfg.input["fmt"]: + if not cfg.input["fmt"].startswith("ISM") and "MASA" not in cfg.input["fmt"]: metadata = [None] * len(cfg.items_list) cfg.metadata_path = metadata diff --git a/ivas_processing_scripts/audiotools/audio.py b/ivas_processing_scripts/audiotools/audio.py index 213f5c2b..ce2cf5a0 100755 --- a/ivas_processing_scripts/audiotools/audio.py +++ b/ivas_processing_scripts/audiotools/audio.py @@ -231,7 +231,9 @@ class MetadataAssistedSpatialAudio(Audio): obj = super()._from_file(name, filename, fs) if isinstance(metadata_file, list): if len(metadata_file) > 1: - warn("Only first metadata file used. Additional metadata ignored for MASA") + warn( + "Only first metadata file used. Additional metadata ignored for MASA" + ) obj.metadata_file = Path(metadata_file[0]) else: obj.metadata_file = Path(metadata_file) @@ -391,6 +393,7 @@ class SceneBasedAudio(Audio): class OMASAAudio(Audio): """Sub-class for combined OMASA format""" + def __init__(self, name: str): super().__init__(name) try: @@ -443,7 +446,7 @@ class OMASAAudio(Audio): def init_metadata(self): # check if number of metadata files matches format - if self.num_ism_channels != len(self.metadata_files)-1: + if self.num_ism_channels != len(self.metadata_files) - 1: raise ValueError( f"Mismatch between number of ism channels [{self.num_ism_channels}], and metadata [{len(self.metadata_files)}]. Note: metadata should also include masa metadata file" ) @@ -503,7 +506,7 @@ class OSBAAudio(Audio): raise ValueError(f"Unsupported OSBA audio format {name}") self.object_pos = [] self.metadata_files = [] - self.ambi_order = int(np.sqrt(self.num_channels-self.num_ism_channels) - 1) + self.ambi_order = int(np.sqrt(self.num_channels - self.num_ism_channels) - 1) @classmethod def _from_file( @@ -604,7 +607,8 @@ def _get_audio_class(fmt) -> Audio: elif fmt in SCENE_BASED_AUDIO_FORMATS.keys(): return SceneBasedAudio elif ( - fmt in CHANNEL_BASED_AUDIO_FORMATS.keys() or fmt in CHANNEL_BASED_AUDIO_ALTNAMES.keys() + fmt in CHANNEL_BASED_AUDIO_FORMATS.keys() + or fmt in CHANNEL_BASED_AUDIO_ALTNAMES.keys() ): return ChannelBasedAudio elif fmt in OSBA_AUDIO_FORMATS.keys(): @@ -643,7 +647,12 @@ def fromfile( """Create an Audio object of the specified format from the given file""" filename = Path(filename) fmt_cls = _get_audio_class(fmt) - if fmt_cls is ObjectBasedAudio or fmt_cls is MetadataAssistedSpatialAudio or fmt_cls is OMASAAudio or fmt_cls is OSBAAudio: + if ( + fmt_cls is ObjectBasedAudio + or fmt_cls is MetadataAssistedSpatialAudio + or fmt_cls is OMASAAudio + or fmt_cls is OSBAAudio + ): return fmt_cls._from_file(fmt, filename, in_meta, fs) else: return fmt_cls._from_file(fmt, filename, fs) diff --git a/ivas_processing_scripts/audiotools/audiofile.py b/ivas_processing_scripts/audiotools/audiofile.py index a5871875..fa3ef05d 100755 --- a/ivas_processing_scripts/audiotools/audiofile.py +++ b/ivas_processing_scripts/audiotools/audiofile.py @@ -343,7 +343,13 @@ def combine( # set vertical channels to zero if is_planar: - y[:, VERT_HOA_CHANNELS_ACN[VERT_HOA_CHANNELS_ACN < (len(in_filenames) - is_planar_offset)] + is_planar_offset] = 0 + y[ + :, + VERT_HOA_CHANNELS_ACN[ + VERT_HOA_CHANNELS_ACN < (len(in_filenames) - is_planar_offset) + ] + + is_planar_offset, + ] = 0 write(out_file, y, fs=in_fs) @@ -394,7 +400,13 @@ def split_channels( x, in_fs = read(in_file, nchannels=in_nchans, fs=in_fs) if is_planar: - x[:, VERT_HOA_CHANNELS_ACN[VERT_HOA_CHANNELS_ACN < (in_nchans - is_planar_offset)] + is_planar_offset] = 0 + x[ + :, + VERT_HOA_CHANNELS_ACN[ + VERT_HOA_CHANNELS_ACN < (in_nchans - is_planar_offset) + ] + + is_planar_offset, + ] = 0 # Write output files for idx, out_file in enumerate(out_filenames): diff --git a/ivas_processing_scripts/audiotools/convert/__init__.py b/ivas_processing_scripts/audiotools/convert/__init__.py index 46834e1c..77ae08e5 100755 --- a/ivas_processing_scripts/audiotools/convert/__init__.py +++ b/ivas_processing_scripts/audiotools/convert/__init__.py @@ -36,8 +36,6 @@ from shutil import copyfile from typing import Optional, Union from copy import copy -from numpy import empty - from ivas_processing_scripts.audiotools import audio, audioarray, metadata from ivas_processing_scripts.audiotools.audiofile import write from ivas_processing_scripts.audiotools.convert.channelbased import convert_channelbased @@ -161,7 +159,9 @@ def convert_file( # write output audio write(out_file, output.audio, output.fs) # write metadata - if isinstance(output, audio.ObjectBasedAudio) or isinstance(output, audio.OSBAAudio): + if isinstance(output, audio.ObjectBasedAudio) or isinstance( + output, audio.OSBAAudio + ): write_ISM_metadata_in_file(output.object_pos, [out_file], automatic_naming=True) elif isinstance(output, audio.MetadataAssistedSpatialAudio) and in_fmt == out_fmt: # audio objects point to same MD file, create new one with default naming for output @@ -175,6 +175,7 @@ def convert_file( out_md_name = out_file.parent / (out_file.name + ".met") copyfile(output.metadata_files[-1], out_md_name) + def convert( input: audio.Audio, output: audio.Audio, @@ -365,8 +366,7 @@ def format_conversion( ): raise NotImplementedError("Can only convert to MASA from SBA") if isinstance(output, audio.OMASAAudio) and not ( - isinstance(input, audio.OSBAAudio) - or isinstance(input, audio.OMASAAudio) + isinstance(input, audio.OSBAAudio) or isinstance(input, audio.OMASAAudio) ): raise NotImplementedError("Can only convert to OMASA from OSBA") @@ -376,7 +376,9 @@ def format_conversion( "ISM is not supported as an output for rendering! Only usable as pass-through" ) if isinstance(output, audio.OMASAAudio) or isinstance(output, audio.OSBAAudio): - if not (isinstance(input, audio.OMASAAudio) or isinstance(input, audio.OSBAAudio)): + if not ( + isinstance(input, audio.OMASAAudio) or isinstance(input, audio.OSBAAudio) + ): raise NotImplementedError( "OMASA and OSBA only possible as output if input is OMASA or OSBA" ) diff --git a/ivas_processing_scripts/audiotools/convert/omasa.py b/ivas_processing_scripts/audiotools/convert/omasa.py index 27dcdd50..15b88e65 100644 --- a/ivas_processing_scripts/audiotools/convert/omasa.py +++ b/ivas_processing_scripts/audiotools/convert/omasa.py @@ -33,9 +33,16 @@ from copy import copy, deepcopy import numpy as np from ivas_processing_scripts.audiotools import audio -from ivas_processing_scripts.audiotools.convert.objectbased import render_oba_to_binaural, render_oba_to_cba, \ - render_oba_to_sba -from ivas_processing_scripts.audiotools.convert.masa import render_masa_to_binaural, render_masa_to_cba, render_masa_to_sba +from ivas_processing_scripts.audiotools.convert.objectbased import ( + render_oba_to_binaural, + render_oba_to_cba, + render_oba_to_sba, +) +from ivas_processing_scripts.audiotools.convert.masa import ( + render_masa_to_binaural, + render_masa_to_cba, + render_masa_to_sba, +) """ OMASAAudio functions """ @@ -48,10 +55,21 @@ def convert_omasa( """Convert an OMASA signal to the requested output format""" # split OMASA object in ISM and MASA object - oba = audio.fromarray("ISM" + str(omasa.num_ism_channels), omasa.audio[:, :omasa.num_ism_channels], omasa.fs) + oba = audio.fromarray( + "ISM" + str(omasa.num_ism_channels), + omasa.audio[:, : omasa.num_ism_channels], + omasa.fs, + ) oba.metadata_files = copy(omasa.metadata_files) oba.object_pos = copy(omasa.object_pos) - masa = audio.fromarray("MASA" + str(omasa.num_channels-omasa.num_ism_channels) + "DIR" + str(omasa.dirs), omasa.audio[:, omasa.num_ism_channels:], omasa.fs) + masa = audio.fromarray( + "MASA" + + str(omasa.num_channels - omasa.num_ism_channels) + + "DIR" + + str(omasa.dirs), + omasa.audio[:, omasa.num_ism_channels :], + omasa.fs, + ) masa.metadata_file = omasa.metadata_files[-1] # OMASA -> Binaural @@ -100,13 +118,17 @@ def convert_omasa( elif isinstance(out, audio.OSBAAudio): # check if ism object number is the same if out.num_ism_channels != omasa.num_ism_channels: - raise ValueError("OMASA to OSBA conversion only possible if number of ISM objects matches") + raise ValueError( + "OMASA to OSBA conversion only possible if number of ISM objects matches" + ) # only render MASA part out_masa = deepcopy(out) render_masa_to_sba(masa, out_masa) - out.audio = np.concatenate((omasa.audio[:, :omasa.num_ism_channels], out_masa.audio), axis=1) + out.audio = np.concatenate( + (omasa.audio[:, : omasa.num_ism_channels], out_masa.audio), axis=1 + ) else: raise NotImplementedError( diff --git a/ivas_processing_scripts/audiotools/convert/osba.py b/ivas_processing_scripts/audiotools/convert/osba.py index 1e91fdf0..bb39b5b7 100644 --- a/ivas_processing_scripts/audiotools/convert/osba.py +++ b/ivas_processing_scripts/audiotools/convert/osba.py @@ -33,10 +33,17 @@ from copy import copy, deepcopy import numpy as np from ivas_processing_scripts.audiotools import audio -from ivas_processing_scripts.audiotools.convert.objectbased import render_oba_to_binaural, render_oba_to_cba, \ - render_oba_to_sba -from ivas_processing_scripts.audiotools.convert.scenebased import render_sba_to_binaural, render_sba_to_cba, \ - render_sba_to_sba, render_sba_to_masa +from ivas_processing_scripts.audiotools.convert.objectbased import ( + render_oba_to_binaural, + render_oba_to_cba, + render_oba_to_sba, +) +from ivas_processing_scripts.audiotools.convert.scenebased import ( + render_sba_to_binaural, + render_sba_to_cba, + render_sba_to_sba, + render_sba_to_masa, +) """ OSBAAudio functions """ @@ -49,10 +56,16 @@ def convert_osba( """Convert an OSBA signal to the requested output format""" # split OSBA object in ISM and SBA object - oba = audio.fromarray("ISM" + str(osba.num_ism_channels), osba.audio[:, :osba.num_ism_channels], osba.fs) + oba = audio.fromarray( + "ISM" + str(osba.num_ism_channels), + osba.audio[:, : osba.num_ism_channels], + osba.fs, + ) oba.metadata_files = copy(osba.metadata_files) oba.object_pos = copy(osba.object_pos) - sba = audio.fromarray("SBA" + str(osba.ambi_order), osba.audio[:, osba.num_ism_channels:], osba.fs) + sba = audio.fromarray( + "SBA" + str(osba.ambi_order), osba.audio[:, osba.num_ism_channels :], osba.fs + ) # OSBA -> Binaural if isinstance(out, audio.BinauralAudio): @@ -100,26 +113,34 @@ def convert_osba( elif isinstance(out, audio.OMASAAudio): # check if ism object number is the same if out.num_ism_channels != osba.num_ism_channels: - raise ValueError("OSBA to OMASA conversion only possible if number of ISM objects matches") + raise ValueError( + "OSBA to OMASA conversion only possible if number of ISM objects matches" + ) # only render SBA part out_sba = audio.fromtype(out.name[4:]) out_sba.metadata_file = out.metadata_files[-1] render_sba_to_masa(sba, out_sba) - out.audio = np.concatenate((osba.audio[:, :osba.num_ism_channels], out_sba.audio), axis=1) + out.audio = np.concatenate( + (osba.audio[:, : osba.num_ism_channels], out_sba.audio), axis=1 + ) # OSBA -> OSBA elif isinstance(out, audio.OSBAAudio): # check if ism object number is the same if out.num_ism_channels != osba.num_ism_channels: - raise ValueError("OSBA to OSBA conversion only possible if number of ISM objects matches") + raise ValueError( + "OSBA to OSBA conversion only possible if number of ISM objects matches" + ) # only render SBA part out_sba = audio.fromtype(out.name[4:]) render_sba_to_sba(sba, out_sba) - out.audio = np.concatenate((osba.audio[:, :osba.num_ism_channels], out_sba.audio), axis=1) + out.audio = np.concatenate( + (osba.audio[:, : osba.num_ism_channels], out_sba.audio), axis=1 + ) else: raise NotImplementedError( diff --git a/ivas_processing_scripts/audiotools/metadata.py b/ivas_processing_scripts/audiotools/metadata.py index c5a270e4..05c6ceda 100755 --- a/ivas_processing_scripts/audiotools/metadata.py +++ b/ivas_processing_scripts/audiotools/metadata.py @@ -552,7 +552,9 @@ def check_MASA_metadata( if not isinstance(current_item, list): # automatic search in folder - list_item = metadata_search_MASA(current_item, [item_names[item_idx]]) + list_item = metadata_search_MASA( + current_item, [item_names[item_idx]] + ) list_meta.append(list_item) else: diff --git a/ivas_processing_scripts/audiotools/wrappers/bs1770.py b/ivas_processing_scripts/audiotools/wrappers/bs1770.py index 37655bd2..bd890c1c 100755 --- a/ivas_processing_scripts/audiotools/wrappers/bs1770.py +++ b/ivas_processing_scripts/audiotools/wrappers/bs1770.py @@ -196,7 +196,11 @@ def get_loudness( input, audio.MetadataAssistedSpatialAudio ): loudness_format = "7_1_4" - elif isinstance(input, audio.ObjectBasedAudio) or isinstance(input, audio.OMASAAudio) or isinstance(input, audio.OSBAAudio): + elif ( + isinstance(input, audio.ObjectBasedAudio) + or isinstance(input, audio.OMASAAudio) + or isinstance(input, audio.OSBAAudio) + ): loudness_format = "BINAURAL" elif hasattr(input, "layout_file"): loudness_format = input.layout_file diff --git a/ivas_processing_scripts/processing/evs.py b/ivas_processing_scripts/processing/evs.py index 98ee3d7a..db44a369 100755 --- a/ivas_processing_scripts/processing/evs.py +++ b/ivas_processing_scripts/processing/evs.py @@ -176,9 +176,10 @@ class EVS(Processing): # flag for zeroing of channels for planar SBA formats is_planar = ( - isinstance(self.in_fmt, audio.SceneBasedAudio) and self.in_fmt.is_planar - or - isinstance(self.in_fmt, audio.OSBAAudio) and self.in_fmt.is_planar + isinstance(self.in_fmt, audio.SceneBasedAudio) + and self.in_fmt.is_planar + or isinstance(self.in_fmt, audio.OSBAAudio) + and self.in_fmt.is_planar ) if isinstance(self.in_fmt, audio.OSBAAudio) and self.in_fmt.is_planar: is_planar_offset = self.in_fmt.num_ism_channels @@ -260,7 +261,13 @@ class EVS(Processing): # combine the decoded channels into the output file if out_file.suffix in [".wav", ".pcm"]: - combine(split_chan_out, out_file, in_fs=self.out_fs, is_planar=is_planar,is_planar_offset=is_planar_offset) + combine( + split_chan_out, + out_file, + in_fs=self.out_fs, + is_planar=is_planar, + is_planar_offset=is_planar_offset, + ) if split_chan_bs_unprocessed != split_chan_bs and self.tx_condition: out_file_unprocessed = f"{Path(out_file.parent).joinpath(Path(out_file.name).with_suffix(''))}.noerror{out_file.suffix}" combine( @@ -271,7 +278,11 @@ class EVS(Processing): is_planar_offset=is_planar_offset, ) # copy ISM metadata for ISM pass-through - if isinstance(self.in_fmt, audio.ObjectBasedAudio) or isinstance(self.in_fmt, audio.OMASAAudio) or isinstance(self.in_fmt, audio.OSBAAudio): + if ( + isinstance(self.in_fmt, audio.ObjectBasedAudio) + or isinstance(self.in_fmt, audio.OMASAAudio) + or isinstance(self.in_fmt, audio.OSBAAudio) + ): if isinstance(self.in_fmt, audio.ObjectBasedAudio): num_ism_obj = self.in_fmt.num_channels else: @@ -291,7 +302,9 @@ class EVS(Processing): copyfile(in_meta[idx], out_file_meta_unprocessed) # copy MASA metadata for MASA pass-through - if isinstance(self.in_fmt, audio.MetadataAssistedSpatialAudio) or isinstance(self.in_fmt, audio.OMASAAudio): + if isinstance( + self.in_fmt, audio.MetadataAssistedSpatialAudio + ) or isinstance(self.in_fmt, audio.OMASAAudio): md_file_in = in_file.parent / (in_file.name + ".met") md_file_out = out_file.parent / (out_file.name + ".met") copyfile(md_file_in, md_file_out) diff --git a/ivas_processing_scripts/processing/ivas.py b/ivas_processing_scripts/processing/ivas.py index f6c86d99..c13d5e11 100755 --- a/ivas_processing_scripts/processing/ivas.py +++ b/ivas_processing_scripts/processing/ivas.py @@ -152,7 +152,9 @@ class IVAS(Processing): if isinstance(self.in_fmt, audio.MetadataAssistedSpatialAudio): md_file = in_file.parent / (in_file.name + ".met") metadata_files.append(md_file) - elif isinstance(self.in_fmt, audio.ObjectBasedAudio) or isinstance(self.in_fmt, audio.OSBAAudio): + elif isinstance(self.in_fmt, audio.ObjectBasedAudio) or isinstance( + self.in_fmt, audio.OSBAAudio + ): metadata_files = in_meta elif isinstance(self.in_fmt, audio.OMASAAudio): metadata_files = in_meta @@ -308,12 +310,16 @@ class IVAS(Processing): # the SBA part of OSBA is always rendered to HOA3 for EXT by IVAS if isinstance(self.in_fmt, audio.OSBAAudio) and self.in_fmt.name[:]: if self.out_fmt.num_channels != (16 + self.in_fmt.num_ism_channels): - raise ValueError("When using EXT output for IVAS for OSBA make sure the specified decoder format is ISMxSBA3") + raise ValueError( + "When using EXT output for IVAS for OSBA make sure the specified decoder format is ISMxSBA3" + ) else: output_format = "EXT" else: if self.in_fmt.name != self.out_fmt.name: - raise ValueError("ISM and MASA output format for IVAS only possible if input and output format match") + raise ValueError( + "ISM and MASA output format for IVAS only possible if input and output format match" + ) output_format = "EXT" elif self.in_fmt.name == "MONO": if self.out_fmt.name == "MONO": @@ -371,11 +377,23 @@ class IVAS(Processing): return ["-mc", fmt.name] elif isinstance(fmt, audio.OSBAAudio): if fmt.is_planar: - return ["-ism_sba", str(fmt.num_ism_channels), f"-{str(fmt.ambi_order)}"] + metadata_files + return [ + "-ism_sba", + str(fmt.num_ism_channels), + f"-{str(fmt.ambi_order)}", + ] + metadata_files else: - return ["-ism_sba", str(fmt.num_ism_channels), f"+{str(fmt.ambi_order)}"] + metadata_files + return [ + "-ism_sba", + str(fmt.num_ism_channels), + f"+{str(fmt.ambi_order)}", + ] + metadata_files elif isinstance(fmt, audio.OMASAAudio): - return ["-ism_masa", str(fmt.num_ism_channels), str(fmt.num_channels-fmt.num_ism_channels)] + metadata_files + return [ + "-ism_masa", + str(fmt.num_ism_channels), + str(fmt.num_channels - fmt.num_ism_channels), + ] + metadata_files raise ValueError(f"IVAS: Invalid input config: {fmt.name}.") diff --git a/ivas_processing_scripts/processing/preprocessing_2.py b/ivas_processing_scripts/processing/preprocessing_2.py index fc0a874e..dbfbe831 100644 --- a/ivas_processing_scripts/processing/preprocessing_2.py +++ b/ivas_processing_scripts/processing/preprocessing_2.py @@ -64,9 +64,13 @@ class Preprocessing2(Processing): self.in_fmt, in_file, fs=self.in_fs, in_meta=in_meta ) - if isinstance(audio_object, audio.MetadataAssistedSpatialAudio) or isinstance(audio_object, audio.OMASAAudio): + if isinstance(audio_object, audio.MetadataAssistedSpatialAudio) or isinstance( + audio_object, audio.OMASAAudio + ): if self.preamble > 0 or self.background_noise or self.repeat_signal: - raise ValueError("No preprocessing 2 possible for formats including MASA metadata") + raise ValueError( + "No preprocessing 2 possible for formats including MASA metadata" + ) # modify ISM metadata if self.in_fmt.startswith("ISM"): diff --git a/ivas_processing_scripts/processing/processing.py b/ivas_processing_scripts/processing/processing.py index 9b3f36b9..a2e33160 100755 --- a/ivas_processing_scripts/processing/processing.py +++ b/ivas_processing_scripts/processing/processing.py @@ -131,7 +131,9 @@ def concat_setup(cfg: TestConfig, chain, logger: logging.Logger): # concatenation of met files not possible -> do not concatenate MASA and OMASA if "MASA" in input_format: - raise ValueError("Concatenation of formats including MASA metadata not possible") + raise ValueError( + "Concatenation of formats including MASA metadata not possible" + ) # concatenate ISM metadata if input_format.startswith("ISM"): @@ -378,14 +380,19 @@ def preprocess(cfg, logger): if "ISM" in preproc_output_fmt: num_obj = int(preproc_output_fmt[3]) for obj_idx in range(num_obj): - list_item.append(cfg.out_dirs[0] / Path(f"{cfg.items_list[item_idx].stem}.wav.{obj_idx}.csv")) + list_item.append( + cfg.out_dirs[0] + / Path(f"{cfg.items_list[item_idx].stem}.wav.{obj_idx}.csv") + ) # MASA metadata if "MASA" in preproc_output_fmt: - list_item.append(cfg.out_dirs[0] / Path(f"{cfg.items_list[item_idx].stem}.wav.met")) + list_item.append( + cfg.out_dirs[0] / Path(f"{cfg.items_list[item_idx].stem}.wav.met") + ) # no metadata - if not "ISM" in preproc_output_fmt and not "MASA" in preproc_output_fmt: + if "ISM" not in preproc_output_fmt and "MASA" not in preproc_output_fmt: list_item.append(None) cfg.metadata_path.append(list_item) diff --git a/ivas_processing_scripts/processing/processing_splitting_scaling.py b/ivas_processing_scripts/processing/processing_splitting_scaling.py index ba3f5d43..bb1dd604 100644 --- a/ivas_processing_scripts/processing/processing_splitting_scaling.py +++ b/ivas_processing_scripts/processing/processing_splitting_scaling.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 import logging -import re from itertools import repeat from pathlib import Path -- GitLab From 753a87a1f5ecee6d80a5bba81651f832f6f9dbf4 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 10 Oct 2024 17:35:39 +0200 Subject: [PATCH 4/4] formatting --- ivas_processing_scripts/audiotools/audio.py | 2 +- .../audiotools/convert/__init__.py | 6 +++--- ivas_processing_scripts/audiotools/convert/omasa.py | 11 ++++++----- ivas_processing_scripts/audiotools/convert/osba.py | 3 ++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ivas_processing_scripts/audiotools/audio.py b/ivas_processing_scripts/audiotools/audio.py index ce2cf5a0..e3795dbd 100755 --- a/ivas_processing_scripts/audiotools/audio.py +++ b/ivas_processing_scripts/audiotools/audio.py @@ -47,9 +47,9 @@ from ivas_processing_scripts.audiotools.constants import ( METADATA_ASSISTED_SPATIAL_AUDIO_FORMATS, NUMBER_COLUMNS_ISM_METADATA, OBJECT_BASED_AUDIO_FORMATS, - SCENE_BASED_AUDIO_FORMATS, OMASA_AUDIO_FORMATS, OSBA_AUDIO_FORMATS, + SCENE_BASED_AUDIO_FORMATS, ) from .EFAP import wrap_angles diff --git a/ivas_processing_scripts/audiotools/convert/__init__.py b/ivas_processing_scripts/audiotools/convert/__init__.py index 77ae08e5..9d53f054 100755 --- a/ivas_processing_scripts/audiotools/convert/__init__.py +++ b/ivas_processing_scripts/audiotools/convert/__init__.py @@ -31,19 +31,19 @@ # import logging +from copy import copy from pathlib import Path, PurePath from shutil import copyfile from typing import Optional, Union -from copy import copy from ivas_processing_scripts.audiotools import audio, audioarray, metadata from ivas_processing_scripts.audiotools.audiofile import write from ivas_processing_scripts.audiotools.convert.channelbased import convert_channelbased from ivas_processing_scripts.audiotools.convert.masa import convert_masa from ivas_processing_scripts.audiotools.convert.objectbased import convert_objectbased -from ivas_processing_scripts.audiotools.convert.scenebased import convert_scenebased -from ivas_processing_scripts.audiotools.convert.osba import convert_osba from ivas_processing_scripts.audiotools.convert.omasa import convert_omasa +from ivas_processing_scripts.audiotools.convert.osba import convert_osba +from ivas_processing_scripts.audiotools.convert.scenebased import convert_scenebased from ivas_processing_scripts.audiotools.wrappers.bs1770 import loudness_norm from ivas_processing_scripts.audiotools.wrappers.esdru import esdru, spatial_distortion from ivas_processing_scripts.audiotools.wrappers.filter import ( diff --git a/ivas_processing_scripts/audiotools/convert/omasa.py b/ivas_processing_scripts/audiotools/convert/omasa.py index 15b88e65..68c66cba 100644 --- a/ivas_processing_scripts/audiotools/convert/omasa.py +++ b/ivas_processing_scripts/audiotools/convert/omasa.py @@ -30,19 +30,20 @@ # from copy import copy, deepcopy + import numpy as np from ivas_processing_scripts.audiotools import audio -from ivas_processing_scripts.audiotools.convert.objectbased import ( - render_oba_to_binaural, - render_oba_to_cba, - render_oba_to_sba, -) from ivas_processing_scripts.audiotools.convert.masa import ( render_masa_to_binaural, render_masa_to_cba, render_masa_to_sba, ) +from ivas_processing_scripts.audiotools.convert.objectbased import ( + render_oba_to_binaural, + render_oba_to_cba, + render_oba_to_sba, +) """ OMASAAudio functions """ diff --git a/ivas_processing_scripts/audiotools/convert/osba.py b/ivas_processing_scripts/audiotools/convert/osba.py index bb39b5b7..5301bf0f 100644 --- a/ivas_processing_scripts/audiotools/convert/osba.py +++ b/ivas_processing_scripts/audiotools/convert/osba.py @@ -30,6 +30,7 @@ # from copy import copy, deepcopy + import numpy as np from ivas_processing_scripts.audiotools import audio @@ -41,8 +42,8 @@ from ivas_processing_scripts.audiotools.convert.objectbased import ( from ivas_processing_scripts.audiotools.convert.scenebased import ( render_sba_to_binaural, render_sba_to_cba, - render_sba_to_sba, render_sba_to_masa, + render_sba_to_sba, ) """ OSBAAudio functions """ -- GitLab