linux/sound/pci/emu10k1
Oswald Buddenhagen 03f56ed4ea Revert "ALSA: emu10k1: fix synthesizer sample playback position and caching"
As already anticipated in the original commit, playback was broken for
very short samples. I just didn't expect it to be an actual problem,
because we're talking about less than 1.5 milliseconds here. But clearly
such wavetable samples do actually exist.

The problem was that for such short samples we'd set the current
position beyond the end of the loop, so we'd run off the end of the
sample and play garbage.
This is a bigger (more audible) problem than the original one, which was
that we'd start playback with garbage (whatever was still in the cache),
which would be mostly masked by the note's attack phase.

So revert to the old behavior for now. We'll subsequently fix it
properly with a bigger patch series.
Note that this isn't a full revert - the dead code is not re-introduced,
because that would be silly.

Fixes: df335e9a8b ("ALSA: emu10k1: fix synthesizer sample playback position and caching")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218625
Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Message-ID: <20240401145805.528794-1-oswald.buddenhagen@gmx.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-04-02 07:55:00 +02:00
..
emu10k1.c ALSA: emu10k1: rework copyright statements 2023-07-17 09:30:34 +02:00
emu10k1_callback.c Revert "ALSA: emu10k1: fix synthesizer sample playback position and caching" 2024-04-02 07:55:00 +02:00
emu10k1_main.c ALSA: emu10k1: rework copyright statements 2023-07-17 09:30:34 +02:00
emu10k1_patch.c ALSA: pci/emu10k1: remove 'set but not used' warning 2020-07-07 12:09:45 +02:00
emu10k1_synth.c ALSA: emu10k1: remove superfluous IRQ enable state saving 2023-07-13 10:30:06 +02:00
emu10k1_synth_local.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
emu10k1x.c ALSA: emu10k1x: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:24 +02:00
emufx.c ALSA: Make control API taking controls_rwsem consistently 2023-07-20 10:05:19 +02:00
emumixer.c ALSA: emu10k1: Simplify with snd_ctl_find_id_mixer() 2023-07-21 09:10:40 +02:00
emumpu401.c ALSA: emu10k1: remove superfluous IRQ enable state saving 2023-07-13 10:30:06 +02:00
emupcm.c ALSA: emu10k1: rework copyright statements 2023-07-17 09:30:34 +02:00
emuproc.c ALSA: emu10k1: rework copyright statements 2023-07-17 09:30:34 +02:00
io.c ALSA: emu10k1: rework copyright statements 2023-07-17 09:30:34 +02:00
irq.c ALSA: emu10k1: clean up driver status comments 2023-07-17 09:29:36 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
memory.c Revert "ALSA: emu10k1 - delay the PCM interrupts (add pcm_irq_delay parameter)" 2023-05-18 07:29:41 +02:00
p16v.c ALSA: emu10k1: use more existing defines instead of open-coded numbers 2023-04-28 11:22:51 +02:00
p16v.h ALSA: emu10k1: clean up driver status comments 2023-07-17 09:29:36 +02:00
p17v.h ALSA: emu10k1: clean up driver status comments 2023-07-17 09:29:36 +02:00
timer.c ALSA: emu10k1: rework copyright statements 2023-07-17 09:30:34 +02:00
tina2.h ALSA: emu10k1: clean up driver status comments 2023-07-17 09:29:36 +02:00
voice.c ALSA: emu10k1: rework copyright statements 2023-07-17 09:30:34 +02:00