Menu

#1089 No sound when using ALSA card's second device without disabling ChannelConverter in Qmmp 1.5.1

Fixed
None
Medium
Defect
2022-05-04
2021-09-03
l_bratch
No

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.

Discussion

  • trialuser02

    trialuser02 - 2022-05-04
    • status: New --> Fixed
    • assigned_to: trialuser02
     
  • trialuser02

    trialuser02 - 2022-05-04

    Fixed in SVN. Thank you!

     

Log in to post a comment.

Auth0 Logo