You are not logged in.

#1 2011-09-21 09:21:01

mibadt
Member
Registered: 2009-09-25
Posts: 396

Arch_X64: Poor Skype sound

Hi,
I suffer from a poor sound quality on Skype.
# OS: Arch_X64/KDE (fully updated) including  lib32-libpulse. installed.
# Hardware: 2 audio devices: 1) onboard (used for Skype) 2) included in ATI HDI HDMI graphic card
# Sound: Pulse audio installed over default alsa (although somehow can't finf alsa configuration files nor run amixer, see bottom of terminal output below).
# Skype: configured as separate Skype user (per Arch Wiki recommendation).

Please advise!

Thanks

Miki Badt

-------several relevant terminal commands------------

Audio

# lspci | grep Audio
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40)
01:00.1 Audio device: ATI Technologies Inc Redwood HDMI Audio [Radeon HD 5600 Series]

$ ls -l /sys/module/snd/holders
total 0                                                                                                                                                                                       
lrwxrwxrwx 1 root root 0 Sep 21 10:39 snd_hda_codec -> ../../snd_hda_codec                                                                                                                    
lrwxrwxrwx 1 root root 0 Sep 21 10:39 snd_hda_codec_hdmi -> ../../snd_hda_codec_hdmi
lrwxrwxrwx 1 root root 0 Sep 21 10:39 snd_hda_codec_realtek -> ../../snd_hda_codec_realtek
lrwxrwxrwx 1 root root 0 Sep 21 10:39 snd_hda_intel -> ../../snd_hda_intel
lrwxrwxrwx 1 root root 0 Sep 21 10:39 snd_hwdep -> ../../snd_hwdep
lrwxrwxrwx 1 root root 0 Sep 21 10:39 snd_pcm -> ../../snd_pcm
lrwxrwxrwx 1 root root 0 Sep 21 10:39 snd_timer -> ../../snd_timer

$ cat /proc/asound/modules
 0 snd_hda_intel                                                                                                                                                                              
 1 snd_hda_intel          

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC889 Analog [ALC889 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 1: ALC889 Digital [ALC889 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


$ lsmod|grep '^snd' | column -t
snd_hda_codec_hdmi     22092   1
snd_hda_codec_realtek  294224  1
snd_hda_intel          22122   2
snd_hda_codec          77927   3   snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hwdep              6325    1   snd_hda_codec
snd_pcm                73888   3   snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_timer              19416   1   snd_pcm
snd                    57818   11  snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
snd_page_alloc         7121    2   snd_hda_intel,snd_pcm


# cat asound.conf 
# Use PulseAudio by default
pcm.!default {
  type pulse
}

ctl.!default {
  type pulse
}

# Explicit PulseAudio device
pcm.pulse {
  type pulse
}

ctl.pulse {
  type pulse
}

# vim:set ft=alsaconf:


$ cat ~/.asoundrc
pcm.!default {                                                                                                                                                              
type hw                                                                                                                                                                     
card 0                                                                                                                                                                      
device 0                                                                                                                                                                    
}                                                                                                                                                                           
ctl.!default {                                                                                                                                                              
type hw                                                                                                                                                                     
card 0                                                                                                                                                                      
device 0                                                                                                                                                                    
}                                                                                                                                                                           
                                                                                                                                                                            
#added by Miki per Arch Skype wiki                                                                                                                                          
pcm.skype {                                                                                                                                                                 
   type asym                                                                                                                                                                
   playback.pcm "skypeout"                                                                                                                                                  
   capture.pcm "skypein"                                                                                                                                                    
}                                                                                                                                                                           
                                                                                                                                                                            
pcm.skypein {                                                                                                                                                               
   # Convert from 8-bit unsigned mono (default format set by aoss when                                                                                                      
   # /dev/dsp is opened) to 16-bit signed stereo (expected by dsnoop)                                                                                                       
   #                                                                                                                                                                        
   # We can't just use a "plug" plugin because although the open will                                                                                                       
   # succeed, the buffer sizes will be wrong and we'll hear no sound at                                                                                                     
   # all.                                                                                                                                                                   
   type route                                                                                                                                                               
   slave {                                                                                                                                                                  
      pcm "skypedsnoop"                                                                                                                                                     
      format S16_LE                                                                                                                                                         
   }                                                                                                                                                                        
   ttable {                                                                                                                                                                 
      0 {0 0.5}                                                                                                                                                             
      1 {0 0.5}                                                                                                                                                             
   }                                                                                                                                                                        
}                                                                                                                                                                           
                                                                                                                                                                            
pcm.skypeout {                                                                                                                                                              
   # Just pass this on to the system dmix                                                                                                                                   
   type plug                                                                                                                                                                
   slave {                                                                                                                                                                  
      pcm "dmix"                                                                                                                                                            
   }                                                                                                                                                                        
}                                                                                                                                                                           
                                                                                                                                                                            
pcm.skypedsnoop {                                                                                                                                                           
   type dsnoop                                                                                                                                                              
   ipc_key 1133                                                                                                                                                             
   slave {                                                                                                                                                                  
      # "Magic" buffer values to get skype audio to work                                                                                                                    
      # If these are not set, opening /dev/dsp succeeds but no sound                                                                                                        
      # will be heard. According to the alsa developers this is due                                                                                                         
      # to skype abusing the OSS API.                                                                                                                                       
      pcm "hw:0,0"                                                                                                                                                          
      period_size 256                                                                                                                                                       
      periods 16                                                                                                                                                            
      buffer_size 16384                                                                                                                                                     
   }                                                                                                                                                                        
   bindings {                                                                                                                                                               
      0 0                                                                                                                                                                   
   }                                                                                                                                                                        
}                                                                                                                                                                           
                                                                                                                                                                            
pcm.asymed {                                                                                                                                                                
        type asym                                                                                                                                                           
        playback.pcm "dmix"                                                                                                                                                 
        capture.pcm "dsnoop"                                                                                                                                                
}                                                                                                                                                                           
                                                                                                                                                                            
pcm.!default {                                                                                                                                                              
        type plug                                                                                                                                                           
        slave.pcm "asymed"                                                                                                                                                  
}                                                                                                                                                                           
                             


$ alsamixer                                                                                                                                                       
cannot open mixer: Invalid argument                                                                                                                                         
miki /etc $ amixer                                                                                                                                                          
amixer: Mixer attach default error: Invalid argument  

--------------------

Last edited by mibadt (2011-09-21 13:20:07)


Best regards,
Michael Badt

Offline

#2 2011-09-21 09:29:11

brebs
Member
Registered: 2007-04-03
Posts: 3,742

Re: Arch_X64: Poor Skype sound

You're defining default twice in your config. That's one too many.

Offline

#3 2011-09-21 11:05:39

mibadt
Member
Registered: 2009-09-25
Posts: 396

Re: Arch_X64: Poor Skype sound

Thanks,
Can you (or someone else) please clarify:
1. Which default shall I keep (pcm or ctl ?)
2. Where should I modify the default : asound.conf, or ~/.asoundrc or both?

Thanks


Best regards,
Michael Badt

Offline

#4 2011-09-21 11:06:29

bernarcher
Forum Fellow
From: Germany
Registered: 2009-02-17
Posts: 2,281

Re: Arch_X64: Poor Skype sound

mibadt, please use [ code ] tags around those long listings. This makes them better readable and you can scroll through a fairly small window.
To find out about available tags just follow the "BBCode" link below the edit window.


To know or not to know ...
... the questions remain forever.

Offline

#5 2011-09-24 02:58:30

mibadt
Member
Registered: 2009-09-25
Posts: 396

Re: Arch_X64: Poor Skype sound

Anybody?


Best regards,
Michael Badt

Offline

#6 2011-09-24 05:26:39

brebs
Member
Registered: 2007-04-03
Posts: 3,742

Re: Arch_X64: Poor Skype sound

See the config in my sig - that works nicely for me in Skype. I think the important bits are:

period_size 512
buffer_size 16384

However, I'm on 32-bit and don't use pulseaudio.

Edit ~/.asoundrc, not /etc/whatever

Offline

Board footer

Powered by FluxBB