@@ -318,9 +318,10 @@ static void snd_emu10k1_pcm_init_voice(struct snd_emu10k1 *emu,
REGLIST_END);
// Setup routing
if (emu->audigy) {
+ u32 unfiltered = (evoice->epcm->pitch_target == PITCH_48000) ? 0x80808080 : 0;
snd_emu10k1_ptr_write_multiple(emu, voice,
- A_FXRT1, snd_emu10k1_compose_audigy_fxrt1(send_routing),
- A_FXRT2, snd_emu10k1_compose_audigy_fxrt2(send_routing),
+ A_FXRT1, snd_emu10k1_compose_audigy_fxrt1(send_routing) | unfiltered,
+ A_FXRT2, snd_emu10k1_compose_audigy_fxrt2(send_routing) | unfiltered,
A_SENDAMOUNTS, snd_emu10k1_compose_audigy_sendamounts(send_amount),
REGLIST_END);
for (int i = 0; i < 4; i++) {
... on Audigy, when we are not pitch-shifting. The only observable effect is that the Z1/Z2/FXBUS registers don't have a stray bit set for negative numbers anymore. The bit is below the ones significant for output, but it would mess with 32-bit sample recombination, which we are about to add. kX-project does that, but I had to figure out myself why. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> --- sound/pci/emu10k1/emupcm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)