Commit ee938490 authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Fixing handling of acoustic pre-delay (offset between input signal and late reverberation start)

parent c26312be
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@
#ifdef IVAS_RTPDUMP
#include "ivas_rtp_file.h"
#endif
#ifdef IVAS_RTPDUMP_ACOUSTIC_ENVIRONMENT
#include "ivas_cnst.h"
#endif
#include "jbm_file_writer.h"
#include "hrtf_file_reader.h"
#include "ls_custom_file_reader.h"
+1 −0
Original line number Diff line number Diff line
@@ -1136,6 +1136,7 @@ int main(
                }
                else if ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 )
                {
                    //selectedReverbRoomSize = IVAS_ROOM_SIZE_LARGE;
                    selectedReverbRoomSize = IVAS_ROOM_SIZE_SMALL;
                }
            }
+0 −3
Original line number Diff line number Diff line
@@ -59,9 +59,6 @@
#define IVAS_ROOM_ABS_COEFF              6
#define IVAS_REVERB_PREDELAY_MAX         20 /* Max input delay for reverb module */
#define IVAS_ER_LIST_HEIGHT              1.6f
#ifdef IVAS_RTPDUMP_ACOUSTIC_ENVIRONMENT
#define IVAS_DEFAULT_AEID 65535
#endif

/* JBM constants for adaptive-playout */
#define IVAS_TIME_SCALE_MIN 50  /* min. time-scaling [%] */
+9 −0
Original line number Diff line number Diff line
@@ -1605,10 +1605,19 @@ typedef enum
#define IVAS_REVERB_DEFAULT_L_N_BANDS           31
#define IVAS_REVERB_DEFAULT_M_N_BANDS           31
#define IVAS_REVERB_DEFAULT_S_N_BANDS           60

#define IVAS_REVERB_DEFAULT_SYNTH_PRE_DELAY     0.016f
#define IVAS_REVERB_DEFAULT_S_INPUT_PRE_DELAY   0.0f
#define IVAS_REVERB_DEFAULT_M_INPUT_PRE_DELAY   0.0f
#define IVAS_REVERB_DEFAULT_L_INPUT_PRE_DELAY   0.1f
#else
#define IVAS_REVERB_DEFAULT_N_BANDS             31
#endif

#ifdef IVAS_RTPDUMP_ACOUSTIC_ENVIRONMENT
#define IVAS_DEFAULT_AEID                       65535u
#endif

#define LR_IAC_LENGTH_NR_FC                     ( RV_LENGTH_NR_FC )
#define LR_IAC_LENGTH_NR_FC_16KHZ               ( RV_LENGTH_NR_FC_16KHZ )

+9 −21
Original line number Diff line number Diff line
@@ -45,16 +45,7 @@
 * Local constants
 *-----------------------------------------------------------------------*/

#ifdef FIX_1318_ROOM_SIZE_CMD_LINE
#define IVAS_REVERB_DEFAULT_L_PRE_DELAY   0.016f
#define IVAS_REVERB_DEFAULT_L_INPUT_DELAY 0.1f

#define IVAS_REVERB_DEFAULT_S_PRE_DELAY   0.0125f
#define IVAS_REVERB_DEFAULT_S_INPUT_DELAY 0.0f

#define IVAS_REVERB_DEFAULT_M_PRE_DELAY   0.0125f
#define IVAS_REVERB_DEFAULT_M_INPUT_DELAY 0.0f
#else
#ifndef FIX_1318_ROOM_SIZE_CMD_LINE
#define IVAS_REVERB_DEFAULT_PRE_DELAY   0.016f
#define IVAS_REVERB_DEFAULT_INPUT_DELAY 0.1f
#endif
@@ -129,8 +120,8 @@ ivas_error ivas_render_config_init_from_rom(
#endif
#ifdef FIX_1318_ROOM_SIZE_CMD_LINE
    ( *hRenderConfig )->roomAcoustics.nBands = IVAS_REVERB_DEFAULT_L_N_BANDS;
    ( *hRenderConfig )->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_L_PRE_DELAY;
    ( *hRenderConfig )->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_L_INPUT_DELAY;
    ( *hRenderConfig )->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_SYNTH_PRE_DELAY;
    ( *hRenderConfig )->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_L_INPUT_PRE_DELAY;
#else
    ( *hRenderConfig )->roomAcoustics.nBands = IVAS_REVERB_DEFAULT_N_BANDS;
    ( *hRenderConfig )->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_PRE_DELAY;
@@ -190,13 +181,14 @@ ivas_error ivas_render_config_change_defaults(
    IVAS_DefaultReverbSize defaultReverbSize /* i:   Reverb default size    */
)
{
    hRenderConfig->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_SYNTH_PRE_DELAY;
    hRenderConfig->roomAcoustics.use_er = IVAS_REVERB_DEFAULT_USE_ER;

    switch ( defaultReverbSize )
    {
        case DEFAULT_REVERB_SMALL:
            hRenderConfig->roomAcoustics.nBands = IVAS_REVERB_DEFAULT_S_N_BANDS;
            hRenderConfig->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_S_PRE_DELAY;
            hRenderConfig->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_S_INPUT_DELAY;
            hRenderConfig->roomAcoustics.use_er = IVAS_REVERB_DEFAULT_USE_ER;
            hRenderConfig->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_S_INPUT_PRE_DELAY;
            set_zero( &hRenderConfig->roomAcoustics.pFc_input[0], CLDFB_NO_CHANNELS_MAX );
            set_zero( &hRenderConfig->roomAcoustics.pAcoustic_rt60[0], CLDFB_NO_CHANNELS_MAX );
            set_zero( &hRenderConfig->roomAcoustics.pAcoustic_dsr[0], CLDFB_NO_CHANNELS_MAX );
@@ -207,9 +199,7 @@ ivas_error ivas_render_config_change_defaults(
            break;
        case DEFAULT_REVERB_MEDIUM:
            hRenderConfig->roomAcoustics.nBands = IVAS_REVERB_DEFAULT_M_N_BANDS;
            hRenderConfig->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_M_PRE_DELAY;
            hRenderConfig->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_M_INPUT_DELAY;
            hRenderConfig->roomAcoustics.use_er = IVAS_REVERB_DEFAULT_USE_ER;
            hRenderConfig->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_M_INPUT_PRE_DELAY;
            set_zero( &hRenderConfig->roomAcoustics.pFc_input[0], CLDFB_NO_CHANNELS_MAX );
            set_zero( &hRenderConfig->roomAcoustics.pAcoustic_rt60[0], CLDFB_NO_CHANNELS_MAX );
            set_zero( &hRenderConfig->roomAcoustics.pAcoustic_dsr[0], CLDFB_NO_CHANNELS_MAX );
@@ -220,9 +210,7 @@ ivas_error ivas_render_config_change_defaults(
            break;
        case DEFAULT_REVERB_LARGE:
            hRenderConfig->roomAcoustics.nBands = IVAS_REVERB_DEFAULT_L_N_BANDS;
            hRenderConfig->roomAcoustics.acousticPreDelay = IVAS_REVERB_DEFAULT_L_PRE_DELAY;
            hRenderConfig->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_L_INPUT_DELAY;
            hRenderConfig->roomAcoustics.use_er = IVAS_REVERB_DEFAULT_USE_ER;
            hRenderConfig->roomAcoustics.inputPreDelay = IVAS_REVERB_DEFAULT_L_INPUT_PRE_DELAY;
            set_zero( &hRenderConfig->roomAcoustics.pFc_input[0], CLDFB_NO_CHANNELS_MAX );
            set_zero( &hRenderConfig->roomAcoustics.pAcoustic_rt60[0], CLDFB_NO_CHANNELS_MAX );
            set_zero( &hRenderConfig->roomAcoustics.pAcoustic_dsr[0], CLDFB_NO_CHANNELS_MAX );
Loading