Hello,
I'm new to Qmmp but I'm liking it so far (I have been after an XMMS replacement for years).
I use ALSA on my system and my sound card (an Ensoniq ES1371 PCI card) has two ALSA devices (hw:0,0 and hw:0,1). I use dmix on hw:0,0 for most applications, but I prefer to play music directly via hw:0,1 to avoid dmix's buffer for a more satisfyingly quick response to play/stop/seek/etc.
With Qmmp 1.5.1, when using hw:0,1 the audio output is silent. When using hw:0,0 or dmix ("default") audio works fine.
Qmmp's relevant terminal output with hw:0,0 or default (when all is good) is:
QmmpAudioEngine: selected decoder: mpeg
DecoderMPEGFactory: using MAD decoder
DecoderMAD: Xing header found
DecoderMAD: Total time: 679296
ReplayGain: disabled
OutputALSA: can pause: 0
OutputALSA: received channel map: FL FR
OutputWriter: [alsa] 48000 Hz, {FL,FR}, float ==> 48000 Hz, {FL,FR}, s16le
Dithering: enabled
StateHandler: Current state: Buffering; previous state: Stopped
StateHandler: Current state: Playing; previous state: Buffering
DecoderMAD: 35 bytes skipped
The output with hw:0,1 (when output is silent) is:
QmmpAudioEngine: selected decoder: mpeg
DecoderMPEGFactory: using MAD decoder
DecoderMAD: Xing header found
DecoderMAD: Total time: 679296
ReplayGain: disabled
OutputALSA: can pause: 0
OutputALSA: received channel map: RL RR
OutputWriter: [alsa] 48000 Hz, {FL,FR}, float ==> 48000 Hz, {RL,RR}, s16le
ChannelConverter: {FL,FR} ==> {RL,RR}; {-1,-1}
Dithering: enabled
StateHandler: Current state: Buffering; previous state: Stopped
StateHandler: Current state: Playing; previous state: Buffering
DecoderMAD: 35 bytes skipped
Note the different channel mapping (FL,FR vs RL,RR) and the addition of ChannelConverter. I must admit I don't know what the deal with the mapping is, or what ChannelConverter is actually used for, but I can resolve the issue completely by disabling ChannelConverter::configure with the following patch:
--- qmmp-1.5.1/src/qmmp/channelconverter.cpp (revision 10270)
+++ qmmp-1.5.1/src/qmmp/channelconverter.cpp (working copy)
@@ -36,6 +36,8 @@
void ChannelConverter::configure(quint32 srate, ChannelMap in_map)
{
+ return;
+
Effect::configure(srate, m_out_map);
if((m_disabled = (in_map == m_out_map)))
I have tried tweaking all the settings both in Qmmp's ALSA plugin and in Qmmp's Settings -> Audio tab with no luck.
Any advice would be welcome, as I'm not sure what I'm losing by disabling ChannelConverter.
Thank you
Luke
P.S.
I have not tested Qmmp 2.0.0 as I do not have Qt 6 available on my system.
Try to use alsa route plugin (with ttable options): https://alsa.opensrc.org/Playing_stereo_on_surround_sound_setup_(Howto)
Fixed in SVN. Thank you!