Loading lib_util/render_config_reader.c +304 −294 Original line number Diff line number Diff line Loading @@ -1429,13 +1429,18 @@ static ivas_error RenderConfigReader_readBinary( { return error; } #ifndef CONTROL_METADATA_DIRECTIVITY /* Just return in case no acoustic environment data available */ if ( value == false ) { return IVAS_ERR_OK; } #endif #ifdef CONTROL_METADATA_DIRECTIVITY /* acoustic environment data available */ if ( value == true ) { #endif /****************************/ /* Read the frequency grids */ /****************************/ Loading Loading @@ -1810,8 +1815,8 @@ static ivas_error RenderConfigReader_readBinary( } #endif } #ifdef CONTROL_METADATA_DIRECTIVITY } /**********************************/ /* Read the directivity patterns */ /**********************************/ Loading Loading @@ -1880,12 +1885,6 @@ static ivas_error RenderConfigReader_readBinary( } } } else { pRenderConfigReader->pDP[n].pDirectivity[0] = 360.0f; pRenderConfigReader->pDP[n].pDirectivity[1] = 360.0f; pRenderConfigReader->pDP[n].pDirectivity[2] = 1.0f; } #endif /* Cleanup */ Loading Loading @@ -2975,11 +2974,22 @@ ivas_error RenderConfigReader_getDirectivity( { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } if (pRenderConfigReader->pDP == NULL) { for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) { directivity[n * 3] = 360.0f; directivity[n * 3 + 1] = 360.0f; directivity[n * 3 + 2] = 1.0f; } } else { for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) { mvr2r( pRenderConfigReader->pDP[id[n]].pDirectivity, directivity + ( n * 3 ), 3 ); } } return IVAS_ERR_OK; } Loading scripts/reverb/generate_acoustic_environments_metadata.py +17 −0 Original line number Diff line number Diff line Loading @@ -620,6 +620,22 @@ def generate_reverb_payload_equivalent_to_rend_config_renderer_directivity_cfg() data.tofile(file) file.close() def generate_reverb_payload_equivalent_to_config_directivity_cfg(): # based on config_directivity_cfg.cfg # note that because of encoding, resolution is lost and behaviour may not be bit-exact compared to .cfg file based values data = bitarray( '0' # hasAcEnv + '1' # hasDirectivity + get_id_code(1) # Number of directivity patterns + get_id_code(0) # directivity ID + get_angle_code(0.0) + get_angle_code(360.0) + get_outer_attenuation_code(0.2512) , endian='big') file = open('config_directivity.dat', 'wb') data.tofile(file) file.close() def generate_reverb_payload_equivalent_to_rend_config_hospital_patientroom_cfg(): # based on config_hospital_patientroom.cfg Loading Loading @@ -709,6 +725,7 @@ if __name__ == "__main__": generate_reverb_payload_equivalent_to_rend_config_hospital_patientroom_cfg() generate_reverb_payload_equivalent_to_rend_config_recreation_cfg() generate_reverb_payload_equivalent_to_rend_config_renderer_directivity_cfg() generate_reverb_payload_equivalent_to_config_directivity_cfg() #generate_reverb_payload_equivalent_to_rend_config_renderer_cfg_plus_early_reflections_no_listener_origin() Loading scripts/reverb/text_to_binary_payload.py +60 −54 Original line number Diff line number Diff line Loading @@ -86,16 +86,22 @@ def parse_reverb_text_configuration_and_generate_binary_payload(file): sections[section_name] = config[section_name] # parse room acoustics if 'roomAcoustics' in sections: if sections['roomAcoustics']: frequencyGridCount = eval_option(sections['roomAcoustics']['frequencyGridCount']) acousticEnvironmentCount = eval_option(sections['roomAcoustics']['acousticEnvironmentCount']) assert frequencyGridCount == len(sections['frequencyGrid']) assert acousticEnvironmentCount == len(sections['acousticEnvironment']) hasAcEnv = len(sections['roomAcoustics']) > 0 # hasAcEnv (see IVAS acoustic environment payload syntax document) if hasAcEnv: data = bitarray('1', endian='big') else: data = bitarray('0', endian='big') if hasAcEnv: # parse frequency grids data = bitarray( '1' # hasAcEnv (see IVAS acoustic environment payload syntax document) + get_count_or_index_code(len(sections['frequencyGrid'])), # fgdNrGrids get_count_or_index_code(len(sections['frequencyGrid'])), # fgdNrGrids endian='big') for _, fg in sections['frequencyGrid'].items(): method = eval_option(fg['method']) Loading scripts/testv/config_directivity.cfg +7 −2 Original line number Diff line number Diff line [general] directivity = [0.0, 360.0, 0.2512]; [directivitySetting] directivityCount = 1; [directivityPattern:0] directivity = [0.0, 360.0, 0.2512] [general] reverbFile = config_directivity.dat; Loading
lib_util/render_config_reader.c +304 −294 Original line number Diff line number Diff line Loading @@ -1429,13 +1429,18 @@ static ivas_error RenderConfigReader_readBinary( { return error; } #ifndef CONTROL_METADATA_DIRECTIVITY /* Just return in case no acoustic environment data available */ if ( value == false ) { return IVAS_ERR_OK; } #endif #ifdef CONTROL_METADATA_DIRECTIVITY /* acoustic environment data available */ if ( value == true ) { #endif /****************************/ /* Read the frequency grids */ /****************************/ Loading Loading @@ -1810,8 +1815,8 @@ static ivas_error RenderConfigReader_readBinary( } #endif } #ifdef CONTROL_METADATA_DIRECTIVITY } /**********************************/ /* Read the directivity patterns */ /**********************************/ Loading Loading @@ -1880,12 +1885,6 @@ static ivas_error RenderConfigReader_readBinary( } } } else { pRenderConfigReader->pDP[n].pDirectivity[0] = 360.0f; pRenderConfigReader->pDP[n].pDirectivity[1] = 360.0f; pRenderConfigReader->pDP[n].pDirectivity[2] = 1.0f; } #endif /* Cleanup */ Loading Loading @@ -2975,11 +2974,22 @@ ivas_error RenderConfigReader_getDirectivity( { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } if (pRenderConfigReader->pDP == NULL) { for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) { directivity[n * 3] = 360.0f; directivity[n * 3 + 1] = 360.0f; directivity[n * 3 + 2] = 1.0f; } } else { for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) { mvr2r( pRenderConfigReader->pDP[id[n]].pDirectivity, directivity + ( n * 3 ), 3 ); } } return IVAS_ERR_OK; } Loading
scripts/reverb/generate_acoustic_environments_metadata.py +17 −0 Original line number Diff line number Diff line Loading @@ -620,6 +620,22 @@ def generate_reverb_payload_equivalent_to_rend_config_renderer_directivity_cfg() data.tofile(file) file.close() def generate_reverb_payload_equivalent_to_config_directivity_cfg(): # based on config_directivity_cfg.cfg # note that because of encoding, resolution is lost and behaviour may not be bit-exact compared to .cfg file based values data = bitarray( '0' # hasAcEnv + '1' # hasDirectivity + get_id_code(1) # Number of directivity patterns + get_id_code(0) # directivity ID + get_angle_code(0.0) + get_angle_code(360.0) + get_outer_attenuation_code(0.2512) , endian='big') file = open('config_directivity.dat', 'wb') data.tofile(file) file.close() def generate_reverb_payload_equivalent_to_rend_config_hospital_patientroom_cfg(): # based on config_hospital_patientroom.cfg Loading Loading @@ -709,6 +725,7 @@ if __name__ == "__main__": generate_reverb_payload_equivalent_to_rend_config_hospital_patientroom_cfg() generate_reverb_payload_equivalent_to_rend_config_recreation_cfg() generate_reverb_payload_equivalent_to_rend_config_renderer_directivity_cfg() generate_reverb_payload_equivalent_to_config_directivity_cfg() #generate_reverb_payload_equivalent_to_rend_config_renderer_cfg_plus_early_reflections_no_listener_origin() Loading
scripts/reverb/text_to_binary_payload.py +60 −54 Original line number Diff line number Diff line Loading @@ -86,16 +86,22 @@ def parse_reverb_text_configuration_and_generate_binary_payload(file): sections[section_name] = config[section_name] # parse room acoustics if 'roomAcoustics' in sections: if sections['roomAcoustics']: frequencyGridCount = eval_option(sections['roomAcoustics']['frequencyGridCount']) acousticEnvironmentCount = eval_option(sections['roomAcoustics']['acousticEnvironmentCount']) assert frequencyGridCount == len(sections['frequencyGrid']) assert acousticEnvironmentCount == len(sections['acousticEnvironment']) hasAcEnv = len(sections['roomAcoustics']) > 0 # hasAcEnv (see IVAS acoustic environment payload syntax document) if hasAcEnv: data = bitarray('1', endian='big') else: data = bitarray('0', endian='big') if hasAcEnv: # parse frequency grids data = bitarray( '1' # hasAcEnv (see IVAS acoustic environment payload syntax document) + get_count_or_index_code(len(sections['frequencyGrid'])), # fgdNrGrids get_count_or_index_code(len(sections['frequencyGrid'])), # fgdNrGrids endian='big') for _, fg in sections['frequencyGrid'].items(): method = eval_option(fg['method']) Loading
scripts/testv/config_directivity.cfg +7 −2 Original line number Diff line number Diff line [general] directivity = [0.0, 360.0, 0.2512]; [directivitySetting] directivityCount = 1; [directivityPattern:0] directivity = [0.0, 360.0, 0.2512] [general] reverbFile = config_directivity.dat;