diff --git a/src/minidexed.cpp b/src/minidexed.cpp index 4d9a53c..f49c840 100644 --- a/src/minidexed.cpp +++ b/src/minidexed.cpp @@ -1309,6 +1309,15 @@ void CMiniDexed::ProcessSound (void) arm_fill_q15(0, tmp_int, nFrames*Channels); } + // Prevent PCM510x analog mute from kicking in + for (uint8_t tg = 0; tg < Channels; tg++) + { + if (tmp_int[(nFrames - 1) * Channels + tg] == 0) + { + tmp_int[(nFrames - 1) * Channels + tg]++; + } + } + if (m_pSoundDevice->Write (tmp_int, sizeof(tmp_int)) != (int) sizeof(tmp_int)) { LOGERR ("Sound data dropped"); @@ -1394,6 +1403,12 @@ void CMiniDexed::ProcessSound (void) arm_fill_q15(0, tmp_int, nFrames * 2); } + // Prevent PCM510x analog mute from kicking in + if (tmp_int[nFrames * 2 - 1] == 0) + { + tmp_int[nFrames * 2 - 1]++; + } + if (m_pSoundDevice->Write (tmp_int, sizeof(tmp_int)) != (int) sizeof(tmp_int)) { LOGERR ("Sound data dropped");