Loading ivas_processing_scripts/audiotools/convert/osba.py +12 −6 Original line number Diff line number Diff line Loading @@ -129,14 +129,20 @@ def convert_osba( ) # 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_masa = audio.fromtype(out.name[4:]) if out.metadata_files[-1].endswith(".met"): # if MASA metadata filename is given, copy it out_masa.metadata_file = copy(out.metadata_files[-1]) render_sba_to_masa(sba, out_masa) # combine ISM audio with MASA audio into OMASA audio out.audio = np.concatenate((oba.audio, out_masa.audio), axis=1) # ism audio is passed through ism_audio = osba.audio[:, : osba.num_ism_channels] # combine ISM metadata with MASA metadata filenames out.metadata_files = oba.metadata_files + [out_masa.metadata_file] out.audio = np.concatenate((ism_audio, out_sba.audio), axis=1) # copy ISM object positions out.object_pos = copy(oba.object_pos) # OSBA -> OSBA elif isinstance(out, audio.OSBAAudio): Loading ivas_processing_scripts/audiotools/convert/scenebased.py +11 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,17 @@ def render_sba_to_masa( masa_out: audio.MetadataAssistedSpatialAudio, ) -> None: num_tcs = masa_out.num_channels # convert to HOA2 if input is HOA3 if sba_in.name.endswith("HOA3"): warn( "MASA conversion only supports up to 2nd order ambisonics! Converting to HOA2 format." ) sba_hoa2 = audio.fromtype("HOA2") sba_hoa2.fs = sba_in.fs render_sba_to_sba(sba_in, sba_hoa2) sba_in = sba_hoa2 masa = masaAnalyzer(sba_in, num_tcs, masa_out.dirs, masa_out.metadata_file) masa_out.audio = masa.audio Loading ivas_processing_scripts/generation/generate_ismN_items.py +4 −4 Original line number Diff line number Diff line Loading @@ -288,12 +288,12 @@ def generate_ismN_scene( x.fs = cfg.fs # adjust the level of the audio source file (need to convert to MONO first) if np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) elif level is None: if level is None: # do not change the level of the audio source signal logger.info("-- Level of the audio source signal is not changed") elif np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) else: x_temp = audio.ChannelBasedAudio( "MONO" Loading ivas_processing_scripts/generation/generate_masa_items.py +4 −4 Original line number Diff line number Diff line Loading @@ -316,12 +316,12 @@ def generate_MASA_scene( x = reverb_hoa3(x, IR, mode=None) # adjust the level of the FOA/HOA2/HOA3 signal if np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) elif level is None: if level is None: # do not change the level of the audio source signal logger.info("-- Level of the audio source signal is not changed") elif np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) else: x.audio, _ = loudness_norm(x, level, loudness_format="STEREO") Loading ivas_processing_scripts/generation/generate_mc_items.py +4 −4 Original line number Diff line number Diff line Loading @@ -316,12 +316,12 @@ def generate_MC_scene( x = reverb_hoa3(x, IR, mode=None) # adjust the level of the FOA/HOA2/HOA3 signal if np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) elif level is None: if level is None: # do not change the level of the audio source signal logger.info("-- Level of the audio source signal is not changed") elif np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) else: x.audio, _ = loudness_norm(x, level, loudness_format="STEREO") Loading Loading
ivas_processing_scripts/audiotools/convert/osba.py +12 −6 Original line number Diff line number Diff line Loading @@ -129,14 +129,20 @@ def convert_osba( ) # 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_masa = audio.fromtype(out.name[4:]) if out.metadata_files[-1].endswith(".met"): # if MASA metadata filename is given, copy it out_masa.metadata_file = copy(out.metadata_files[-1]) render_sba_to_masa(sba, out_masa) # combine ISM audio with MASA audio into OMASA audio out.audio = np.concatenate((oba.audio, out_masa.audio), axis=1) # ism audio is passed through ism_audio = osba.audio[:, : osba.num_ism_channels] # combine ISM metadata with MASA metadata filenames out.metadata_files = oba.metadata_files + [out_masa.metadata_file] out.audio = np.concatenate((ism_audio, out_sba.audio), axis=1) # copy ISM object positions out.object_pos = copy(oba.object_pos) # OSBA -> OSBA elif isinstance(out, audio.OSBAAudio): Loading
ivas_processing_scripts/audiotools/convert/scenebased.py +11 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,17 @@ def render_sba_to_masa( masa_out: audio.MetadataAssistedSpatialAudio, ) -> None: num_tcs = masa_out.num_channels # convert to HOA2 if input is HOA3 if sba_in.name.endswith("HOA3"): warn( "MASA conversion only supports up to 2nd order ambisonics! Converting to HOA2 format." ) sba_hoa2 = audio.fromtype("HOA2") sba_hoa2.fs = sba_in.fs render_sba_to_sba(sba_in, sba_hoa2) sba_in = sba_hoa2 masa = masaAnalyzer(sba_in, num_tcs, masa_out.dirs, masa_out.metadata_file) masa_out.audio = masa.audio Loading
ivas_processing_scripts/generation/generate_ismN_items.py +4 −4 Original line number Diff line number Diff line Loading @@ -288,12 +288,12 @@ def generate_ismN_scene( x.fs = cfg.fs # adjust the level of the audio source file (need to convert to MONO first) if np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) elif level is None: if level is None: # do not change the level of the audio source signal logger.info("-- Level of the audio source signal is not changed") elif np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) else: x_temp = audio.ChannelBasedAudio( "MONO" Loading
ivas_processing_scripts/generation/generate_masa_items.py +4 −4 Original line number Diff line number Diff line Loading @@ -316,12 +316,12 @@ def generate_MASA_scene( x = reverb_hoa3(x, IR, mode=None) # adjust the level of the FOA/HOA2/HOA3 signal if np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) elif level is None: if level is None: # do not change the level of the audio source signal logger.info("-- Level of the audio source signal is not changed") elif np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) else: x.audio, _ = loudness_norm(x, level, loudness_format="STEREO") Loading
ivas_processing_scripts/generation/generate_mc_items.py +4 −4 Original line number Diff line number Diff line Loading @@ -316,12 +316,12 @@ def generate_MC_scene( x = reverb_hoa3(x, IR, mode=None) # adjust the level of the FOA/HOA2/HOA3 signal if np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) elif level is None: if level is None: # do not change the level of the audio source signal logger.info("-- Level of the audio source signal is not changed") elif np.isinf(level): # set all channels to zero x.audio = np.zeros_like(x.audio) else: x.audio, _ = loudness_norm(x, level, loudness_format="STEREO") Loading