Announcement

Collapse
No announcement yet.

alsaequal: can't get it to work with Kmix

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    alsaequal: can't get it to work with Kmix

    Okay this is my first post because of the "you must have 1 post to post links" error, though I'm not trying to post any

    #2
    Hi!

    Just installed Kubuntu 13.10 x64 from scratch on my Asus Zenboox UX21E.

    Everything worked as expected (multiple SSD-related tweaks, software installation, etc, etc) until I tried to set up a system-wide equalizer.

    I tried installing the current official libasound2-equal package (0.6.5) from the repository.

    I tried installing the latest Debian package 0.6.6.

    I tried upgrading caps to 0.9.16-2 manually (Kubuntu repository only offers version 4.something while newer Debian builds ask for a higher version)

    I tried compiling various versions of alsaequal from source.

    All my attempts ended up with a functional alsaequal, but it never worked as expected. The problem is: Kmix and VLC just fail to use the virtual PCM to which the equalizer plugin is assigned as a slave. I either get silence when trying to play/test or get a 'device busy' message.

    What is most frustrating, the flash player can and does play sound simultaneously with the default aplay command line utility. In fact, I can easily play three songs on three different web pages in Firefox while playing another three in three different instances of aplay. Flash and aplay do use the equalizer the way it's meant to work. I clearly hear the changes in sound as I fiddle with the equalizer sliders while listening to something playing in flash or aplay -- this means the equalizer itself is functioning (the flash plugin by design utilizes the !default sound device and aplay is explicitly told to use it on every playback)

    If I remove the equalizer from my ALSA chain in asound.conf and make dmix my default sound device, the problem disappears. If I make dmix slave to the equalizer and make the equalizer my default sound device, Kmix and VLC remain silent / display errors when trying to use the default sound device, but can still successfully use the dmix virtual PCM if explicitly set to do so.

    If there's nothing playing in flash or aplay, Kmix can play the test sound via the equalizer, but as long as it does, flash audio and aplay report 'device busy'. The same applies vice versa when flash / aplay are the first to start playback (through both have no problems playing sound simultaneously with each other)

    I've browsed trough multiple asound.conf/.asoundrc config samples, and folks seem to have no trouble using alsaequal and dmix together, with the equalizer always sitting on top of the chain (dmix requires direct hardware connection anyway, so I can't insert it behind the equalizer)

    ALSA itself seems to be working fine, I experimented with various plugin chains and always produced the anticipated result with 'aplay -D default' It feels more like Kmix / Phonon stuck in need for some extra tweaks, could somebody please point me to the necessary files?

    My aplay -D output:


    Code:
    HDA Intel PCH, ALC269VB Analog
    simon@simon-UX21E:~$ aplay -L
    null
        Discard all samples (playback) or generate zero samples (capture)
    pulse
        PulseAudio Sound Server
    equal
    asymed
    dsp0
    postequal
    default
        DeFaUlT
    sysdefault:CARD=PCH
        HDA Intel PCH, ALC269VB Analog
        Default Audio Device
    front:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        Front speakers
    surround40:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        4.0 Surround output to Front and Rear speakers
    surround41:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        4.1 Surround output to Front, Rear and Subwoofer speakers
    surround50:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        5.0 Surround output to Front, Center and Rear speakers
    surround51:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        5.1 Surround output to Front, Center, Rear and Subwoofer speakers
    surround71:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
    hdmi:CARD=PCH,DEV=0
        HDA Intel PCH, HDMI 0
        HDMI Audio Output
    dmix:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        Direct sample mixing device
    dmix:CARD=PCH,DEV=3
        HDA Intel PCH, HDMI 0
        Direct sample mixing device
    dsnoop:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        Direct sample snooping device
    dsnoop:CARD=PCH,DEV=3
        HDA Intel PCH, HDMI 0
        Direct sample snooping device
    hw:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        Direct hardware device without any conversions
    hw:CARD=PCH,DEV=3
        HDA Intel PCH, HDMI 0
        Direct hardware device without any conversions
    plughw:CARD=PCH,DEV=0
        HDA Intel PCH, ALC269VB Analog
        Hardware device with all software conversions
    plughw:CARD=PCH,DEV=3
        HDA Intel PCH, HDMI 0
        Hardware device with all software conversions
    Here's my current asound.conf, but changing it never helped (I tried LOTS of asound.conf variations)

    Code:
    ctl.!default {
    type hw
    card 0
    }
    
    ctl.equal {
    type equal;
    }
    
    
      pcm.dmixed {
      
        type dmix
        ipc_key_add_uid true
        ipc_key 5678293
        ipc_perm 0660
        ipc_gid audio
    
        slave {
    
    	channels 6
    
    	pcm {
    
    	format S16_LE
    	rate 48000
    	nonblock true
    	type hw
    	card 0
    	device 0
    
    	}
          
        }
    
      }
    
    
      pcm.dsnooped {
    
        ipc_key 1027
        type dsnoop
    
        slave {
        
          pcm {
    
          format S16_LE
          rate 48000
          nonblock true
          type hw
          card 0
          device 0
          subdevice 0
          
          }
    
        }
    
      }
    
    
      pcm.asymed {
    
        type asym
        playback.pcm "dmixed"
        capture.pcm "dsnooped"
    
      }
    
      pcm.dsp0 {
    
        type plug
        slave.pcm "asymed"
    
      }
    
      ctl.mixer0 {
    
          type hw
          card 0
          device 0
          subdevice 0
      
      }
    
      pcm.postequal {
    
        type plug
        slave.pcm "plug:dmixed"
    
      }
    
      pcm.equal {
    
        type equal;
        slave.pcm "postequal"
    
      }
    
      pcm.!default {
    
       hint {
        
          show on
          description "DeFaUlT"
    
        }
      
        type plug;
    
        slave {
    
          pcm "equal"
          rate 48000
    
          }
    
      }
    Any help would be greatly appreciated (and please excuse my non-native English)

    Comment


      #3
      Anyone?

      Comment


        #4
        Pure guess

        As default the Ubuntu 13.10 is using the Pulseaudio.


        The KMix is multibackend mixer. The KMix news page: http://kmix5.wordpress.com/

        An older news is : http://kmix5.wordpress.com/2011/12/3...lcome-kmix-v4/

        Have you tried to enable the KMix alsa backend ?



        The VLC has many audio output modules.



        Have you tried with the alsa module ?



        Something different / System-Wide PulseAudio Equalizer: http://www.webupd8.org/2013/10/syste...equalizer.html

        Note!
        I didn't try it as the equalizer frontend has GTK python bindings so it will install 40+ gtk packages.
        A good place to start: Topic: Top 20 Kubuntu FAQs & Answers
        Searching FAQ's: Google Search 'FAQ from Kubuntuforums'

        Comment


          #5
          Have you tried to enable the KMix alsa backend ?
          I'm an accomplished noob so I have a very vague notion of a what backend might be in Linux (a compatibility layer between a driver core and a custom user interface?)

          Thank you for the link! I'd be very obliged for providing me with as many links to Kmix configuration wisdom as possible -- I had little luck googling for 'Kmix configuration file / guide'.

          I only have Gstreamer and VLC backends installed, of course I tried searching for a compatibility package but came up with nothing. However, Kmix instantly detects ALSA's virtual PCMs and is able to play the test sound through any of them. If dmix is added to the plugin chain, the resulting PCM can be used simultaneously by KMix and any other applications. No dmix on the chain results in exclusive access for whichever application was the first to use the PCM. Adding alsaequal to the chain results in either silence after pressing Test or a very generic error message from KMix or VLC, no problems for aplay and flash though. Indeed, it does look like there's something missing between Kmix/VLC and ALSA, though I can't understand why VLC and Kmix are able to detect ALSA's virtual PCMs

          The VLC has many audio output modules.
          I explicitly selected ALSA output in VLC but trying to play music through an ALSA virtual PCM with alsaequal somewhere on the plugin queue results in 'Device or file not found' error. Any other ALSA PCMs work perfectly, including those with dmix / various LADSPA plugins. In fact, I even enjoyed Bauer binaural headphone audio plugin while listening to music in VLC -- that means VLC is able to utilize most of ALSA features correctly.

          Something different / System-Wide PulseAudio Equalizer: http://www.webupd8.org/2013/10/syste...equalizer.html
          That's just perfect! Never knew there was a PulseAudio System-Wide Equalizer. Is it true that on a large scale PulseAudio is in no way worse than ALSA in terms of playback quality / features?

          I didn't try it as the equalizer frontend has GTK python bindings so it will install 40+ gtk packages.
          If I uninstall the equalizer, how do I uninstall its dependencies if unused by any other application? Is there an 'easy way' option or should I just look at the package dependencies before deleting alsaequal and then kill them off manually?
          Last edited by eierfrucht; Nov 29, 2013, 08:47 AM.

          Comment

          Working...
          X