From 131a41d53053c2f561395801556cdb45417a383a Mon Sep 17 00:00:00 2001 From: Steven Dan Date: Tue, 26 May 2026 09:47:47 +0800 Subject: [PATCH] fix v71 boot noise --- .../app_usb_aud_fosi_c1_v71/src/extensions/dsp.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/dsp.c b/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/dsp.c index 347048f..2bb1373 100644 --- a/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/dsp.c +++ b/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/dsp.c @@ -274,6 +274,8 @@ void UserBufferManagementInit(unsigned sampFreq) clear_ring_buffer(3); } #endif + memset(ubm_ingress, 0, sizeof(ubm_ingress)); + memset(ubm_egress, 0, sizeof(ubm_egress)); #if 0// USE_EX3D == 1 memset(ubm_ingress, 0, sizeof(ubm_ingress)); memset(ubm_egress, 0, sizeof(ubm_egress)); @@ -303,6 +305,12 @@ void UserBufferManagementInit(unsigned sampFreq) EX3D_TO_UBM_CHANS * DSP_BLOCK_LENGTH); memset(ubm_ingress, 0, sizeof(ubm_ingress)); // 清掉哑帧输出 #endif + // ② 预热:推一个零帧穿过 ex3d,触发所有 worker 加载 + 首次同步 + chan_out_buf_word(uc_ex3d_to_ubm, (const uint32_t *)ubm_egress, + UBM_TO_EX3D_CHANS * DSP_BLOCK_LENGTH); + chan_in_buf_word (uc_ex3d_to_ubm, (uint32_t *)ubm_ingress, + EX3D_TO_UBM_CHANS * DSP_BLOCK_LENGTH); + memset(ubm_ingress, 0, sizeof(ubm_ingress)); // 清掉哑帧输出 } float fLevel[NUM_USB_CHAN_OUT] = {0,}; enum {UBM_A3D_OFF=0, UBM_A3D_VON=1, UBM_A3D_ON=2}; @@ -1298,7 +1306,6 @@ void ex3d_task(chanend_t c_ex3d_to_ubm){ memset(ubm_egress, 0, sizeof(ubm_egress)); audio_ex3d_onoff(1); -#if !UAC1_MODE Ex3dOffGain = -5; Ex3dOnGain = -5; Ex3dLfeGain = -5; @@ -1339,7 +1346,6 @@ void ex3d_task(chanend_t c_ex3d_to_ubm){ tx1_apply_ex3d_for_game_mode(init_gm); g_tx1_last_ex3d_game_applied = init_gm; } -#endif #endif while (1) {