diff --git a/apps/decoder.c b/apps/decoder.c index 366a8f4a887b2ea8bad87927df515187b733cfd9..96e3e1b15347a0ef458c1f3a63b19772ed8b3595 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -506,7 +506,7 @@ int main( } #ifdef CONTROL_METADATA_REVERB - if ( RenderConfigReader_read( renderConfigReader ) != IVAS_ERR_OK ) + if ( RenderConfigReader_read( renderConfigReader, arg.renderConfigFilename, &renderConfig ) != IVAS_ERR_OK ) #else if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) #endif @@ -516,7 +516,15 @@ int main( } #ifdef CONTROL_METADATA_REVERB - if ( RenderConfigReader_getAcousticEnvironment( renderConfigReader, ACOUSTIC_ENVIRONMENT_ID, &renderConfig.room_acoustics ) != IVAS_ERR_OK ) + if ( ( error = RenderConfigReader_getAcousticEnvironment( renderConfigReader, ACOUSTIC_ENVIRONMENT_ID, &renderConfig.room_acoustics ) ) == IVAS_ERR_OK ) + { + if ( RenderConfigReader_checkValues( &renderConfig ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Invalid reverberation configuration parameters\n\n" ); + goto cleanup; + } + } + else if ( error != IVAS_ERR_ACOUSTIC_ENVIRONMENT_MISSING ) { fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", ACOUSTIC_ENVIRONMENT_ID ); goto cleanup; diff --git a/apps/renderer.c b/apps/renderer.c index 31c92e37b81f9f82e0fb018a4e7e4a57e1d683fa..6b439bb991d32f99e3586cbd94c8272a4c3585e4 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -732,7 +732,7 @@ int main( } #ifdef CONTROL_METADATA_REVERB - if ( RenderConfigReader_read( renderConfigReader ) != IVAS_ERR_OK ) + if ( RenderConfigReader_read( renderConfigReader, args.renderConfigFilePath, &renderConfig ) != IVAS_ERR_OK ) #else if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) #endif @@ -742,7 +742,15 @@ int main( } #ifdef CONTROL_METADATA_REVERB - if ( RenderConfigReader_getAcousticEnvironment( renderConfigReader, ACOUSTIC_ENVIRONMENT_ID, &renderConfig.room_acoustics ) != IVAS_ERR_OK ) + if ( ( error = RenderConfigReader_getAcousticEnvironment( renderConfigReader, ACOUSTIC_ENVIRONMENT_ID, &renderConfig.room_acoustics ) ) == IVAS_ERR_OK ) + { + if ( RenderConfigReader_checkValues( &renderConfig ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Invalid reverberation configuration parameters\n\n" ); + exit( -1 ); + } + } + else if ( error != IVAS_ERR_ACOUSTIC_ENVIRONMENT_MISSING ) { fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", ACOUSTIC_ENVIRONMENT_ID ); exit( -1 ); diff --git a/lib_util/render_config_reader.c b/lib_util/render_config_reader.c index c6e68eae25dd4bf5fa03e5acfa7572e9cf83ab75..32a2cfb0c6206697d839a1cffb1b8c6ce7cc0f41 100644 --- a/lib_util/render_config_reader.c +++ b/lib_util/render_config_reader.c @@ -35,18 +35,19 @@ #include "prot.h" #ifdef CONTROL_METADATA_REVERB #include -#else +#endif #include #include "cmdl_tools.h" -#endif /*------------------------------------------------------------------------------------------* * PreProc Macros *------------------------------------------------------------------------------------------*/ #ifndef CONTROL_METADATA_REVERB -#define MAX_LINE_LENGTH ( 1024 ) -#define MAX_ITEM_LENGTH ( 64 ) +#define MAX_LINE_LENGTH ( 1024 ) +#endif +#define MAX_ITEM_LENGTH ( 64 ) +#ifndef CONTROL_METADATA_REVERB #define N_REVERB_VECTORS ( 3 ) #endif @@ -476,10 +477,10 @@ static ivas_error read_code_word( } /* First read minLen bits, then add one bit per iteration to find the correct value */ - for (n = 0; n < size; n++) + for ( n = 0; n < size; n++ ) { - minLen = min(minLen, pLengths[n]); - maxLen = max(maxLen, pLengths[n]); + minLen = min( minLen, pLengths[n] ); + maxLen = max( maxLen, pLengths[n] ); } for ( len = minLen; len <= maxLen; len++ ) { @@ -702,6 +703,7 @@ static int16_t read_bool( return true; } +#endif /*-----------------------------------------------------------------------------------------* * Function read_vector() @@ -823,7 +825,11 @@ static int32_t errorHandler( * Verifies if the configuration parameters lie within acceptable limits *------------------------------------------------------------------------------------------*/ +#ifdef CONTROL_METADATA_REVERB +ivas_error RenderConfigReader_checkValues( +#else static ivas_error RenderConfigReader_checkValues( +#endif IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* o : Renderer configuration handle */ ) { @@ -908,7 +914,6 @@ static ivas_error RenderConfigReader_checkValues( return IVAS_ERR_OK; } -#endif /*------------------------------------------------------------------------------------------* * RenderConfigReader_open() @@ -923,9 +928,6 @@ ivas_error RenderConfigReader_open( { RenderConfigReader *pSelf; FILE *pConfigFile; -#ifndef CONTROL_METADATA_REVERB - int length; -#endif /* Open the configuration file */ if ( strlen( pConfigPath ) < 1 ) @@ -933,17 +935,7 @@ ivas_error RenderConfigReader_open( return IVAS_ERR_FAILED_FILE_OPEN; } -#ifdef CONTROL_METADATA_REVERB - pConfigFile = fopen( pConfigPath, "rb" ); -#else - /* use corresponding .cfg file */ - length = strlen( pConfigPath ); - if ( length >= 4 && strcmp( &pConfigPath[length - 4], ".dat" ) == 0 ) - { - strcpy( &pConfigPath[length - 4], ".cfg" ); - } pConfigFile = fopen( pConfigPath, "r" ); -#endif if ( !pConfigFile ) { @@ -959,14 +951,15 @@ ivas_error RenderConfigReader_open( /*------------------------------------------------------------------------------------------* - * RenderConfigReader_read() + * RenderConfigReader_readReverb() * - * Reads the configuration from a file + * Reads the binary reverb configuration from a file *------------------------------------------------------------------------------------------*/ #ifdef CONTROL_METADATA_REVERB -ivas_error RenderConfigReader_read( - RenderConfigReader *pRenderConfigReader /* i/o : RenderConfigReader handle */ +static ivas_error RenderConfigReader_readReverb( + const char *pReverbConfigPath, /* i : Reverb configuration file path */ + RenderConfigReader *pRenderConfigReader /* i/o : RenderConfigReader handle */ ) { uint32_t file_size; @@ -977,11 +970,20 @@ ivas_error RenderConfigReader_read( uint32_t gridLen; uint32_t subGridLen; const float *pGrid; + FILE *pReverbConfigFile; + + /* Open the configuration file */ + pReverbConfigFile = fopen( pReverbConfigPath, "rb" ); + + if ( !pReverbConfigFile ) + { + return IVAS_ERR_FAILED_FILE_OPEN; + } /* Read the bitstream */ - fseek( pRenderConfigReader->pConfigFile, 0, SEEK_END ); - file_size = ftell( pRenderConfigReader->pConfigFile ); - rewind( pRenderConfigReader->pConfigFile ); + fseek( pReverbConfigFile, 0, SEEK_END ); + file_size = ftell( pReverbConfigFile ); + rewind( pReverbConfigFile ); pRenderConfigReader->pBitstream = (uint8_t *) malloc( file_size * sizeof( uint8_t ) ); if ( pRenderConfigReader->pBitstream == NULL ) @@ -989,7 +991,7 @@ ivas_error RenderConfigReader_read( return IVAS_ERR_FAILED_ALLOC; } - fread( pRenderConfigReader->pBitstream, sizeof( uint8_t ), file_size, pRenderConfigReader->pConfigFile ); + fread( pRenderConfigReader->pBitstream, sizeof( uint8_t ), file_size, pReverbConfigFile ); pRenderConfigReader->length = file_size; /****************************/ @@ -1250,10 +1252,17 @@ ivas_error RenderConfigReader_read( return IVAS_ERR_OK; } -#else +#endif + ivas_error RenderConfigReader_read( - RenderConfigReader *pRenderConfigReader, /* i/o : RenderConfigReader handle */ - IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* o : Renderer configuration handle */ +#ifdef CONTROL_METADATA_REVERB + RenderConfigReader *pRenderConfigReader, /* i : RenderConfigReader handle */ + const char *pRenderConfigPath, /* i : Renderer configuration file path */ + IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* o : Renderer configuration handle */ +#else + RenderConfigReader *pRenderConfigReader, /* i : RenderConfigReader handle */ + IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* o : Renderer configuration handle */ +#endif ) { int32_t file_size; @@ -1265,8 +1274,14 @@ ivas_error RenderConfigReader_read( char item[MAX_ITEM_LENGTH + 1]; char chapter[MAX_ITEM_LENGTH + 1]; char *pValue; +#ifdef CONTROL_METADATA_REVERB + ivas_error error; + int32_t params_length; + int32_t length; +#else int16_t nBandsInput; int16_t nVectorsMissing; +#endif fseek( pRenderConfigReader->pConfigFile, 0, SEEK_END ); file_size = ftell( pRenderConfigReader->pConfigFile ); @@ -1274,8 +1289,10 @@ ivas_error RenderConfigReader_read( pConfig_str = (char *) calloc( file_size + 1, sizeof( char ) ); pParams = (char *) calloc( file_size + 1, sizeof( char ) ); pTemp = (char *) calloc( file_size + 1, sizeof( char ) ); +#ifndef CONTROL_METADATA_REVERB nBandsInput = hRenderConfig->room_acoustics.nBands; nVectorsMissing = N_REVERB_VECTORS; +#endif /* read file line by line */ while ( fgets( pConfig_str, file_size, pRenderConfigReader->pConfigFile ) != NULL ) @@ -1308,6 +1325,7 @@ ivas_error RenderConfigReader_read( to_upper( chapter ); /* interpret params */ +#ifndef CONTROL_METADATA_REVERB if ( strcmp( chapter, "ROOMACOUSTICS" ) == 0 ) { params_idx = 0; @@ -1315,7 +1333,7 @@ ivas_error RenderConfigReader_read( while ( sscanf( pParams + params_idx, "%64[^=]=%[^;];", item, pValue ) == 2 ) { hRenderConfig->room_acoustics.override = TRUE; - params_idx += ( int32_t )( strlen( item ) + strlen( pValue ) + 2 ); + params_idx += (int32_t) ( strlen( item ) + strlen( pValue ) + 2 ); #ifdef DEBUGGING fprintf( stderr, " PARAM: %s -> %s\n", item, pValue ); #endif @@ -1395,16 +1413,52 @@ ivas_error RenderConfigReader_read( fprintf( stderr, "Reverb config: number of bands changed but configuration vectors missing\n" ); } } -#ifdef DEBUGGING else if ( strcmp( chapter, "GENERAL" ) == 0 && strlen( pParams ) != 0 ) +#else + if ( strcmp( chapter, "GENERAL" ) == 0 && strlen( pParams ) != 0 ) +#endif { params_idx = 0; pValue = (char *) calloc( strlen( pParams ), sizeof( char ) ); while ( sscanf( pParams + params_idx, "%64[^=]=%[^;];", item, pValue ) == 2 ) { - params_idx += ( int32_t )( strlen( item ) + strlen( pValue ) + 2 ); +#ifdef CONTROL_METADATA_REVERB + params_length = (int32_t) ( strlen( item ) + strlen( pValue ) + 2 ); +#else + params_idx += (int32_t) ( strlen( item ) + strlen( pValue ) + 2 ); +#endif +#ifdef DEBUGGING fprintf( stderr, " PARAM: %s -> %s\n", item, pValue ); - if ( strcmp( item, "RENDERER" ) == 0 ) +#endif +#ifdef CONTROL_METADATA_REVERB + if ( strcmp( item, "REVERBFILE" ) == 0 ) + { + /* get correct case reverb configuration file path */ + sscanf( pTemp + params_idx, "%*[^=] = %[^;];", pValue ); + + /* make reverb configuration file path relative to render configuration file path */ + for ( length = (int32_t) strlen( pRenderConfigPath ) - 1; length >= 0; length-- ) + { + if ( pRenderConfigPath[length] == '\\' || pRenderConfigPath[length] == '/' ) + { + length++; + break; + } + } + char *pCombinedName = calloc( length + (int32_t) strlen( pValue ) + 1, sizeof( char ) ); + strncpy( pCombinedName, pRenderConfigPath, length ); + strcpy( pCombinedName + length, pValue ); + + if ( ( error = RenderConfigReader_readReverb( pCombinedName, pRenderConfigReader ) ) != IVAS_ERR_OK ) + { + errorHandler( item, ERROR_VALUE_INVALID ); + } + free( pCombinedName ); + } + else +#endif +#ifdef DEBUGGING + if ( strcmp( item, "RENDERER" ) == 0 ) { if ( strcmp( pValue, "CREND" ) == 0 ) { @@ -1431,11 +1485,14 @@ ivas_error RenderConfigReader_read( { fprintf( stderr, "Unsupported configuration property %s\n", item ); } +#endif +#endif +#ifdef CONTROL_METADATA_REVERB + params_idx += params_length; #endif } free( pValue ); } -#endif else { fprintf( stderr, "Unknown chapter: %s\n", chapter ); @@ -1462,9 +1519,12 @@ ivas_error RenderConfigReader_read( fprintf( stderr, "Errors occurred\n" ); return IVAS_ERR_FAILED_FILE_PARSE; } +#ifdef CONTROL_METADATA_REVERB + return IVAS_ERR_OK; +#else return RenderConfigReader_checkValues( hRenderConfig ); -} #endif +} #ifdef CONTROL_METADATA_REVERB /*------------------------------------------------------------------------------------------* diff --git a/lib_util/render_config_reader.h b/lib_util/render_config_reader.h index 53894f704353dc9392c6f30cd94b235c85d59c5c..4facb5b9cd42832a2ae78a105a54be89739cfbed 100644 --- a/lib_util/render_config_reader.h +++ b/lib_util/render_config_reader.h @@ -51,25 +51,30 @@ ivas_error RenderConfigReader_open( RenderConfigReader **ppRenderConfigReader /* o : RenderConfigReader handle */ ); -/* Reads a configuration */ #ifdef CONTROL_METADATA_REVERB -ivas_error RenderConfigReader_read( - RenderConfigReader *pRenderConfigReader /* i : RenderConfigReader handle */ -); - /* Get an acoustic environment */ ivas_error RenderConfigReader_getAcousticEnvironment( RenderConfigReader *pRenderConfigReader, /* i : RenderConfigReader handle */ uint16_t id, /* i : Acoustic environment ID */ IVAS_ROOM_ACOUSTICS_CONFIG_DATA *pAcEnv /* o : Target acoustic environment pointer */ ); +/* Verifies configuration parameters */ +ivas_error RenderConfigReader_checkValues( + IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* o : Renderer configuration handle */ +); +#endif -#else +/* Reads a configuration */ ivas_error RenderConfigReader_read( +#ifdef CONTROL_METADATA_REVERB + RenderConfigReader *pRenderConfigReader, /* i : RenderConfigReader handle */ + const char *pRenderConfigPath, /* i : Renderer configuration file path */ + IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* o : Renderer configuration handle */ +#else RenderConfigReader *pRenderConfigReader, /* i : RenderConfigReader handle */ IVAS_RENDER_CONFIG_HANDLE hRenderConfig /* o : Renderer configuration handle */ -); #endif +); /* Closes the renderer configuration reader and deallocates memory */ void RenderConfigReader_close( diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 1917c238c20799fc093e9228a5e1583e483f277a..7dff22ddb00f800150c3e31da8373b6b4b18b305 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -918,35 +918,35 @@ // Multi-channel 5_1 at 512 kbps, 48kHz in, 48kHz out, BINAURAL_REVERB out Config renderer ../IVAS_cod -mc 5_1 512000 48 testv/stv51MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_renderer.dat BINAURAL_REVERB 48 bit testv/stv51MC48c.wav_MC51_512000_48-48_MC_Config_renderer.tst +../IVAS_dec -render_config testv/rend_config_renderer.cfg BINAURAL_REVERB 48 bit testv/stv51MC48c.wav_MC51_512000_48-48_MC_Config_renderer.tst // Multi-channel 5_1 at 512 kbps, 48kHz in, 32kHz out, BINAURAL_REVERB out Config renderer ../IVAS_cod -mc 5_1 512000 48 testv/stv51MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_renderer.dat BINAURAL_REVERB 32 bit testv/stv51MC48c.wav_MC51_512000_48-32_MC_Config_renderer.tst +../IVAS_dec -render_config testv/rend_config_renderer.cfg BINAURAL_REVERB 32 bit testv/stv51MC48c.wav_MC51_512000_48-32_MC_Config_renderer.tst // Multi-channel 5_1 at 512 kbps, 48kHz in, 16kHz out, BINAURAL_REVERB out Config renderer ../IVAS_cod -mc 5_1 512000 48 testv/stv51MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_renderer.dat BINAURAL_REVERB 16 bit testv/stv51MC48c.wav_MC51_512000_48-16_MC_Config_renderer.tst +../IVAS_dec -render_config testv/rend_config_renderer.cfg BINAURAL_REVERB 16 bit testv/stv51MC48c.wav_MC51_512000_48-16_MC_Config_renderer.tst // Multi-channel 5_1 at 512 kbps, 48kHz in, 48kHz out, BINAURAL_REVERB out Config hospital_patientroom ../IVAS_cod -mc 5_1 512000 48 testv/stv51MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_hospital_patientroom.dat BINAURAL_REVERB 48 bit testv/stv51MC48c.wav_MC51_512000_48-48_MC_Config_hospital_patientroom.tst +../IVAS_dec -render_config testv/rend_config_hospital_patientroom.cfg BINAURAL_REVERB 48 bit testv/stv51MC48c.wav_MC51_512000_48-48_MC_Config_hospital_patientroom.tst // Multi-channel 5_1 at 512 kbps, 48kHz in, 48kHz out, BINAURAL_REVERB out Config recreation ../IVAS_cod -mc 5_1 512000 48 testv/stv51MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_recreation.dat BINAURAL_REVERB 48 bit testv/stv51MC48c.wav_MC51_512000_48-48_MC_Config_recreation.tst +../IVAS_dec -render_config testv/rend_config_recreation.cfg BINAURAL_REVERB 48 bit testv/stv51MC48c.wav_MC51_512000_48-48_MC_Config_recreation.tst // Multi-channel 5_1_2 at 512 kbps, 48kHz in, 48kHz out, BINAURAL_REVERB out Config renderer ../IVAS_cod -mc 5_1_2 512000 48 testv/stv512MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_renderer.dat BINAURAL_REVERB 48 bit testv/stv512MC48c.wav_MC512_512000_48-48_MC_Config_renderer.tst +../IVAS_dec -render_config testv/rend_config_renderer.cfg BINAURAL_REVERB 48 bit testv/stv512MC48c.wav_MC512_512000_48-48_MC_Config_renderer.tst // Multi-channel 5_1_4 at 512 kbps, 48kHz in, 48kHz out, BINAURAL_REVERB out Config renderer ../IVAS_cod -mc 5_1_4 512000 48 testv/stv514MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_renderer.dat BINAURAL_REVERB 48 bit testv/stv514MC48c.wav_MC514_512000_48-48_MC_Config_renderer.tst +../IVAS_dec -render_config testv/rend_config_renderer.cfg BINAURAL_REVERB 48 bit testv/stv514MC48c.wav_MC514_512000_48-48_MC_Config_renderer.tst // Multi-channel 7_1_4 at 512 kbps, 48kHz in, 48kHz out, BINAURAL_REVERB out Config renderer ../IVAS_cod -mc 7_1_4 512000 48 testv/stv714MC48c.wav bit -../IVAS_dec -render_config testv/rend_config_renderer.dat BINAURAL_REVERB 48 bit testv/stv714MC48c.wav_MC714_512000_48-48_MC_Config_renderer.tst +../IVAS_dec -render_config testv/rend_config_renderer.cfg BINAURAL_REVERB 48 bit testv/stv714MC48c.wav_MC714_512000_48-48_MC_Config_renderer.tst // Multi-channel 5_1 bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, 7_1_4 out ../IVAS_cod -mc 5_1 ../scripts/switchPaths/sw_mctech_5fr.bin 48 testv/stv51MC48c.wav bit diff --git a/scripts/testv/config_directivity.cfg b/scripts/testv/config_directivity.cfg index 94807d688ce642a6fd5aff7d7a958e4f4fa7127b..f958df1d31d3b4a39d4fab9af0cdf2f3768d5bcb 100644 --- a/scripts/testv/config_directivity.cfg +++ b/scripts/testv/config_directivity.cfg @@ -1,3 +1,2 @@ [general] directivity = [0.0, 360.0, 0.2512]; - diff --git a/scripts/testv/just_reverb.cfg b/scripts/testv/just_reverb.cfg deleted file mode 100644 index 28acb76dc6efdf06cd68b9b397d87a9461376564..0000000000000000000000000000000000000000 --- a/scripts/testv/just_reverb.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[roomAcoustics] -reverb = true; # Reverb switch, in case BRIR is undefined or false, reverb flag is inherited from the room flag diff --git a/scripts/testv/rend_config_hospital_patientroom.cfg b/scripts/testv/rend_config_hospital_patientroom.cfg index 0ce43444ed337f0745a498114c9be6d53c489371..75bfdf910f8bb93d6eb7710bc21b4e4dd42b8de9 100644 --- a/scripts/testv/rend_config_hospital_patientroom.cfg +++ b/scripts/testv/rend_config_hospital_patientroom.cfg @@ -1,34 +1,2 @@ -[roomAcoustics] -reverb = true; -brir = false; -nBands = 31; - -fc = [20.0, 25.0, 31.5, 40.0, - 50.0, 63.0, 80.0, 100.0, - 125.0, 160.0, 200.0, 250.0, - 315.0, 400.0, 500.0, 630.0, - 800.0, 1000.0, 1250.0, 1600.0, - 2000.0, 2500.0, 3150.0, 4000.0, - 5000.0, 6300.0, 8000.0, 10000.0, - 12500.0, 16000.0, 20000.0]; - -rt60 = [0.81275, 0.61888, 0.45111, 0.34672, - 0.46683, 0.53987, 0.61874, 0.70291, - 0.66657, 0.73037, 0.75090, 0.72470, - 0.75486, 0.75857, 0.76844, 0.74999, - 0.77622, 0.78227, 0.77441, 0.74688, - 0.73521, 0.73782, 0.71928, 0.71708, - 0.71465, 0.60592, 0.52031, 0.51768, - 0.52102, 0.37956, 0.30786]; - -dsr = [0.00019952621, 0.00019952621, 7.9432844e-05, 5.0118702e-05, - 7.943284e-06 , 6.3095763e-06, 6.3095763e-06, 7.943284e-06 , - 1e-05 , 1e-05 , 7.943284e-06 , 1e-05 , - 1e-05 , 1e-05 , 7.943284e-06 , 1e-05 , - 1e-05 , 7.943284e-06 , 7.943284e-06 , 6.3095763e-06, - 6.3095763e-06, 6.3095763e-06, 6.3095763e-06, 6.3095763e-06, - 6.3095763e-06, 3.1622776e-06, 3.1622776e-06, 3.1622776e-06, - 6.3095763e-07, 3.1622776e-07, 3.1622776e-07]; - -acousticPreDelay = 0.016; -inputPreDelay = 0.08163; \ No newline at end of file +[general] +reverbFile = rend_config_hospital_patientroom.dat; diff --git a/scripts/testv/rend_config_recreation.cfg b/scripts/testv/rend_config_recreation.cfg index cc822d630c15076f8f6e9984903668ed1ba3c32b..d91064856c40ab24c79b968817cf45f40d6138d7 100644 --- a/scripts/testv/rend_config_recreation.cfg +++ b/scripts/testv/rend_config_recreation.cfg @@ -1,34 +1,2 @@ -[roomAcoustics] -reverb = true; -brir = false; -nBands = 31; - -fc = [20.0, 25.0, 31.5, 40.0, - 50.0, 63.0, 80.0, 100.0, - 125.0, 160.0, 200.0, 250.0, - 315.0, 400.0, 500.0, 630.0, - 800.0, 1000.0, 1250.0, 1600.0, - 2000.0, 2500.0, 3150.0, 4000.0, - 5000.0, 6300.0, 8000.0, 10000.0, - 12500.0, 16000.0, 20000.0]; - -rt60 = [4.51916, 4.89553, 4.83276, 5.00198, - 5.34468, 5.76026, 6.36818, 6.95503, - 7.27557, 7.62559, 8.08892, 8.16002, - 8.13900, 8.17919, 8.16280, 8.46226, - 9.61806, 9.93048, 9.81353, 8.59340, - 8.38885, 8.36823, 6.51845, 3.76089, - 3.75374, 3.57451, 1.28724, 1.22174, - 1.22448, 1.71631, 2.14343]; - -dsr = [1e-06 , 7.943284e-07 , 1e-06 , 1e-06 , - 1.5848925e-06, 1.9952631e-06, 3.1622776e-06, 3.9810707e-06, - 6.3095763e-06, 7.943284e-06 , 1e-05 , 7.943284e-06 , - 7.943284e-06 , 7.943284e-06 , 7.943284e-06 , 7.943284e-06 , - 5.01187e-06 , 5.01187e-06 , 3.9810707e-06, 3.1622776e-06, - 3.1622776e-06, 2.511887e-06 , 7.943284e-07 , 6.3095763e-07, - 6.3095763e-07, 5.01187e-08 , 1.2589251e-08, 1.2589251e-08, - 1.2589265e-09, 1.2589266e-11, 3.981075e-12]; - -acousticPreDelay = 0.016; -inputPreDelay = 0.43031; +[general] +reverbFile = rend_config_recreation.dat; diff --git a/scripts/testv/rend_config_renderer.cfg b/scripts/testv/rend_config_renderer.cfg index 442edf2506315b1a951602d12bd17f06f7639b9f..cbada86bec09cb49f23307ae0ad9d0255dbde402 100644 --- a/scripts/testv/rend_config_renderer.cfg +++ b/scripts/testv/rend_config_renderer.cfg @@ -1,34 +1,2 @@ -[roomAcoustics] -reverb = true; # Reverb switch, in case BRIR is undefined or false, reverb flag is inherited from the room flag -brir = false; -nBands = 31; - -fc = [20.0, 25.0, 31.5, 40.0, - 50.0, 63.0, 80.0, 100.0, - 125.0, 160.0, 200.0, 250.0, - 315.0, 400.0, 500.0, 630.0, - 800.0, 1000.0, 1250.0, 1600.0, - 2000.0, 2500.0, 3150.0, 4000.0, - 5000.0, 6300.0, 8000.0, 10000.0, - 12500.0, 16000.0, 20000.0]; - -rt60 = [1.3622, 1.4486, 1.3168, 1.5787, - 1.4766, 1.3954, 1.2889, 1.3462, - 1.0759, 1.0401, 1.0970, 1.0850, - 1.0910, 1.0404, 1.0499, 1.0699, - 1.1028, 1.1714, 1.1027, 1.0666, - 1.0550, 1.0553, 1.0521, 1.0569, - 1.0421, 0.97822, 0.80487, 0.75944, - 0.71945, 0.61682, 0.60031]; - -dsr = [1.9952632e-08, 1.9952632e-08, 1.2589251e-08, 1.5848926e-08, - 1.2589251e-08, 1.9952632e-08, 2.511887e-08 , 3.9810708e-08, - 1e-07 , 1.9952633e-07, 3.981071e-07 , 6.3095763e-07, - 7.943284e-07 , 6.3095763e-07, 5.01187e-07 , 5.01187e-07 , - 6.3095763e-07, 6.3095763e-07, 7.943284e-07 , 6.3095763e-07, - 5.01187e-07 , 6.3095763e-07, 6.3095763e-07, 6.3095763e-07, - 5.01187e-07 , 2.511887e-07 , 1.2589251e-07, 1e-07 , - 6.309576e-08 , 3.1622776e-08, 2.511887e-08]; - -acousticPreDelay = 0.016; -inputPreDelay = 0.1; \ No newline at end of file +[general] +reverbFile = rend_config_renderer.dat; \ No newline at end of file diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index e29696adec8b0e1b58a74c69d4939bca4c8faaea..3625a9307e9a947dc478b0eab8b2c661456e6973 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -193,10 +193,6 @@ HR_TRAJECTORIES_TO_TEST = [ "rotate_yaw_pitch_roll1", ] -CONFIG_FILES_TO_TEST = [ - "just_reverb" -] - """ Per-testcase xfail SNR thresholds (dB) """ pass_snr = dict() # not relevant for tests anymore, should be deprecated soon _pass_snr = { diff --git a/tests/renderer/test_renderer.py b/tests/renderer/test_renderer.py index 00ea239714a7239aa4331149d8a4bb9d7eecf309..b4ecf611da43f00c1b603b459160ebd4201a5021 100644 --- a/tests/renderer/test_renderer.py +++ b/tests/renderer/test_renderer.py @@ -55,25 +55,6 @@ def test_ambisonics_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) - -# Test compares rendering with render config file containing just reverb defaults against rendering without config file. -# These should be binary equivalent. -@pytest.mark.parametrize("config_file", CONFIG_FILES_TO_TEST) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) -def test_ambisonics_binaural_headrotation_defaultrenderconfig(test_info, in_fmt, out_fmt, config_file): - compare_renderer_args( - test_info, - in_fmt, - out_fmt, - ref_kwargs={ - "name_extension": "defaultrenderconfig" - }, - cut_kwargs={ - "config_file": TESTV_DIR.joinpath(f"{config_file}.cfg") - } - ) - # Test compares rendering with just a trajectory file against rendering with a trajectory file + a zero ref rotation. # These should be binary equivalent. @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST)