diff --git a/ivas_processing_scripts/audiotools/__init__.py b/ivas_processing_scripts/audiotools/__init__.py index 3d3955271905ab61a0196a1b0878063e20398d6b..37855e8d7302b9bbf50e354f151f195f6e1bc87c 100755 --- a/ivas_processing_scripts/audiotools/__init__.py +++ b/ivas_processing_scripts/audiotools/__init__.py @@ -227,7 +227,7 @@ def get_argparser(): def main(): parser = get_argparser() - + args = parser.parse_args() # special arguments for listing formats @@ -240,11 +240,13 @@ def main(): else: print(", ".join(fmt.keys())) exit() - + # validate required arguments if args.input is None or args.in_fmt is None or args.output is None: parser.print_usage() - raise SystemExit("the following arguments are required: -i/--in, -if/--in_fmt, -o/--out") + raise SystemExit( + "the following arguments are required: -i/--in, -if/--in_fmt, -o/--out" + ) elif args.input is not None: if not args.out_fs: @@ -280,7 +282,9 @@ def main(): else: # input was a dir so output should be a dir too if args.output.is_file(): - raise NotADirectoryError(f"Input directory '{args.input}' specified with file output to '{args.output}' - please specify an output directory instead") + raise NotADirectoryError( + f"Input directory '{args.input}' specified with file output to '{args.output}' - please specify an output directory instead" + ) if not args.output.exists(): args.output.mkdir() print(f"Created output directory {args.output}") diff --git a/ivas_processing_scripts/audiotools/convert/osba.py b/ivas_processing_scripts/audiotools/convert/osba.py index 26092e3a4f07e1bef8a24f62455a7bb22b024b95..c45850bda08c936dfbc90423ea77b231124a0c26 100644 --- a/ivas_processing_scripts/audiotools/convert/osba.py +++ b/ivas_processing_scripts/audiotools/convert/osba.py @@ -81,14 +81,14 @@ def convert_osba( # combine results try: - out.audio = out_ism.audio + out_sba.audio + out.audio = 0.5 * (out_ism.audio + out_sba.audio) except ValueError as e: if ( out_ism.audio.shape[0] != out_sba.audio.shape[0] and out_sba.audio.shape[0] == osba.audio.shape[0] ): - out.audio = out_sba.audio - out.audio[: out_ism.audio.shape[0], :] += out_ism.audio + out.audio = 0.5 * out_sba.audio + out.audio[: out_ism.audio.shape[0], :] += 0.5 * out_ism.audio else: raise e @@ -104,7 +104,7 @@ def convert_osba( render_sba_to_cba(sba, out_sba) # combine results - out.audio = out_ism.audio + out_sba.audio + out.audio = 0.5 * (out_ism.audio + out_sba.audio) # OSBA -> SBA elif isinstance(out, audio.SceneBasedAudio): @@ -118,7 +118,7 @@ def convert_osba( render_sba_to_sba(sba, out_sba) # combine results - out.audio = out_ism.audio + out_sba.audio + out.audio = 0.5 * (out_ism.audio + out_sba.audio) # OSBA -> OMASA elif isinstance(out, audio.OMASAAudio): @@ -128,14 +128,15 @@ def convert_osba( "OSBA to OMASA conversion only possible if number of ISM objects matches" ) - # only render SBA part + # only render SBA part to MASA 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 - ) + # ism audio is passed through + ism_audio = osba.audio[:, : osba.num_ism_channels] + + out.audio = np.concatenate((ism_audio, out_sba.audio), axis=1) # OSBA -> OSBA elif isinstance(out, audio.OSBAAudio): diff --git a/ivas_processing_scripts/audiotools/convert/scenebased.py b/ivas_processing_scripts/audiotools/convert/scenebased.py index de7e39ae84ccd30ca7d9fda0490b7869534340ed..a2b4222641acefc566bfd5e3126298cdf6a55bad 100755 --- a/ivas_processing_scripts/audiotools/convert/scenebased.py +++ b/ivas_processing_scripts/audiotools/convert/scenebased.py @@ -35,7 +35,7 @@ from typing import Optional, Union from warnings import warn import numpy as np -from scipy.special import lpmv +from scipy.special import factorial, lpmv from ivas_processing_scripts.audiotools import audio from ivas_processing_scripts.audiotools.audioarray import delay, framewise_io @@ -348,8 +348,8 @@ def getRSH( for i, (l, m) in enumerate(LM): # N3D norm response[i, :] = np.sqrt( - ((2 * l + 1) * float(np.math.factorial(l - np.abs(m)))) - / (4 * np.pi * float(np.math.factorial(l + np.abs(m)))) + ((2 * l + 1) * float(factorial(l - np.abs(m)))) + / (4 * np.pi * float(factorial(l + np.abs(m)))) ) # trig term