Help - Search - Members - Calendar
Full Version: Please add ALSA support & Alternative notification
Skype Community > English > Skype for Linux
tactless_
Alsa support will allow mixing with dmix. Right now, for example, if one is listening to music on his PC, he can't hear the ringing. I think it would be a good idea to add an alternative means of notification as well: Have the tray icon (also known as a notification icon, hint hint) blink when there's an incoming call.
muzzol_
i agree. an alternative method is a must because for so many reasons (not only oss limitation) sometimes you just dont hear notification. a simple blink will be great.
tactless_
Yeah, you don't even have to go all-out for a spinny-shiny-animated-thingie. Although I bet you can find people in the Linux community to help out with such a graphic (which you can then perhaps use in the Windows version)...
ikelos
Since OSS is deprecated in the 2.6 kernel, I think adding support for alsa is definitely the way forward. All of the remaining daemons (arts, esd, etc) can run on top of alsa, and alsa as you point out, has support for plugins which allow (but are not limited to) software mixing. OSS emulation is neither simple to configure, nor does it work with all plugins, and in my opinion isn't good enough for a polished 1.0 release.

I realise this has only just been released, and for a first release it is excellent, but I would place implementing the alsa code at a high priority since this program is really all about sound. Extra features like conference call hosting are important, but for instance, I would sooner be able to hear the phone ring whilst listening to my music than have it automatically change my status from online to away.
bengelxs4_
I have OSS running (commercial variant) and unless I am pretty much mistaken, there are problems with skype and non-alsa.

OSS perfectly can mix, do many things more compared to alsa. the interface should be generic and when alsa is being used, it's compatibility
interface to oss should be used.

also note that opensound is available om many platforms while afaik, alsa is linux ony.

anyways. what happens here is something awfully annoying. each time skype is used and someone rings, alsa is being started, causing all sound to cease working which is not nice. I have to exec rcalsasound stop and restart opensound to have sound back.

it's annoying. all the refs to alsa are removed from the modules.conf file; kde doesn't want to start alsa, the runlevel editor is being told never to start alsa and I start skype.... and alsa is started ...

anyone ideas ?
ikelos
Hi bengelxs4,

I'm just interested in your comment that oss can mix. I'm very well aware that oss allows the /dev/dsp device to be opened multiple times if your soundcard has *hardware* mixing, but I was under the impression that if your soundcard did not support hardware mixing directly that oss blocks (read freezes) all applications attempting to write to /dev/dsp until the stream of sound currently playing has ended.

Alsa manages to combat this via it's flexible plugin system, which to my (limited) knowledge of oss allows far more control than oss, such as resampling, and crucially software mixing. Software mixing allows software to open the sound device many times, and then the kernel mixes the streams before handing them off to the soundcard. If oss is capable of doing software mixing, please post the url of how to achieve this!

Please don't misunderstand me, OSS support is already present and I'm in no way suggesting it be removed, just that native alsa support be added. As far as I can see Alsa is not supported on other platforms besides linux such as *bsd, but to be fair, neither is skype at the moment.

As to your problem, I'm afraid I don't have any advice, but I am interested in what you have to say about OSS. If you can cure the lack of software mixing problem I think that would calm a lot of users who are requesting an alsa version, because as I'm sure you can imagine, it's very annoying not to hear skype ring, just because you're playing music at the time...

Mike 5:)
roothorick_
QUOTE(ikelos)
I'm just interested in your comment that oss can mix.  I'm very well aware that oss allows the /dev/dsp device to be opened multiple times if your soundcard has *hardware* mixing, but I was under the impression that if your soundcard did not support hardware mixing directly that oss blocks (read freezes) all applications attempting to write to /dev/dsp until the stream of sound currently playing has ended.


Actually, it's older (early 0.9) versions of ALSA (OSS emulation) that blocked writes to /dev/dsp until the card was finished playing sound. Real OSS and OSS/Free would either not allow you to open it or return an I/O error when you try to write to it (I don't remember which).

QUOTE(ikelos)
As to your problem, I'm afraid I don't have any advice, but I am interested in what you have to say about OSS.  If you can cure the lack of software mixing problem I think that would calm a lot of users who are requesting an alsa version, because as I'm sure you can imagine, it's very annoying not to hear skype ring, just because you're playing music at the time...


With proper use of dmix and aoss you can easily obtain ALSA-level software mixing with OSS only programs. See http://alsa.opensrc.org/index.php?page=DmixPlugin for details.
bengelxs4_
QUOTE(ikelos)
Hi bengelxs4,

I'm just interested in your comment that oss can mix.  I'm very well aware that oss allows the /dev/dsp device to be opened multiple times if your soundcard has *hardware* mixing, but I was under the impression that if your soundcard did not support hardware mixing directly that oss blocks (read freezes) all applications attempting to write to /dev/dsp until the stream of sound currently playing has ended.

Mike  5:)


maybe you missed the text "the commercial variant". OSS is based on www.opensound.com and that driver can do things alsa still dreams about. my soundcard (in fact builtin soundchip) doesn't have the mixing capabilities you refer to but the OSS I use has virtual mixing.

other things are that it can record the sounds you play or receive. it has a mixer w/ builtin equalizer, multiple vu meters, builtin reverb, surround and fifelity controls.

what fails is that for whatever reason, skype wants to load the alsa stuff and manages it to do so while it is off in modules.conf. the first ring comes in, all subsequent sounds are muted. you will see the vu meters go with OSS mixer but no sound. only if you exec the sequence : rcalsasound stop; soundoff; soundon (the latter commands are to switch off/on OSS) will regain sound, up until the time skype wakes up ringing....

I can, without problems play 8 mp3's with various players (mpg123, mplayer, xine) and they all work fine. when skype tries to play something it kills the sound.

hopefully this explains what I see.
ikelos
QUOTE(bengelxs4)
maybe you missed the text \"the commercial variant\".

I did miss that bit, sorry. My bad.

Mike 5:)
x-drum_
hello,
i have the same problem!
i use ALSA on my laptop because my built-in audio chipset
(ATI - IXP) only works with it.
i have many problems with oss emulation (no full duplex support) so native support for ALSA in skype will be a better chosen.
Oss is now deprecated, starting with 2.6.x kernels because ALSA is the new architecture for Linux Audio.
Many other people with built-in audio have the same problem
(e.g VIA VT82XX).

P.S (Skype Rocks! thanks 1000x for porting it on Linux Systems)
beckman_
yep alsa support would be nice

an alternate notification way as well


but at first id like to have the 'custom capture/playback device' option
and also a third option for the 'ringin device', cos for example i want it to ring on speakers but talk over card1 with mic and headphones.


thanks bigsmile.png

btw. the app is great so far bigsmile.png
zUgLiO_
I've got a sound blaster 16 and i use alsa with kernel 2.6.7, i try alsa-oss emulation too,but it doesn't work.
Finally i try to use Oss but nothing, i'm going crazy :evil:

please developers use Alsa,oss is deprecated bigsmile.png bigsmile.png
bengelxs4_
QUOTE(zUgLiO)
I've got a sound blaster 16 and i use alsa with kernel 2.6.7, i try alsa-oss emulation too,but it doesn't work.
Finally i try to use Oss but nothing, i'm going crazy :evil:  

please developers use Alsa,oss is deprecated  :D  :D


the _kernel_ oss is deprecated. opensound itself (the real OSS) runs circles around ALSA.
ikelos
Possibly, but it isn't free, and it doesn't come with the kernel, so perhaps supporting alsa *as well* would be an ok alternative?
Yoda-BZH_
I think the proper way may be to let the user deciding of the player to use to play sounds

a box where we can put
- play $sound
- artsplay $sound
- sox $sound
- [whatever with the corrects arguments]
ikelos
I don't think streaming sound quite works like that, I think that's more applicable for playing individual sound clips in a readily recognizable format (such as wav, ogg, etc). Lots of people have asked for more options concerning the sound output and I'm sure the people at skype are working on it. It's only been about a week since they released the first version to be fair...
Yoda-BZH_
I don't think so ... :/
Accessing directly to the hardware avoid the use of others programs using sounds ...
ie you can't use xmms or amsn when you are talking with skype.

More, distributions like Mandrake install by default artsd, which access directly to /dev/dsp ... and skype freeze when it wants to access to this device

I know that skype for Linux is only 1 week old, I'm not "shouting" at skype, just saying what I think ...

To skype's dev team to choose the way ;p
ikelos
Yoda,
I think we're beginning to misunderstand each other, I was under the impression you wanted skype to pass it's sound to a command line program in some way or other (like play) and I don't think that's possible.

Sound daemons such as arts and esd etc. are widely used to handle the lack of software streaming found in (as ben pointed out only the non-comercial, kernel version of) OSS.

Whilst alsa is also a method of direct hardware access it has a plugin facility (called the dmix plugin) which allows for software mixing also, which avoids other programs (or skype) freezing when the sound device has been opened already.

Since arts, esd and others can run on top of alsa, and implementing an engine for each one would be time consuming I'm suggesting only that alsa support be added to skype, and as many others have requested, an options page to specify the device used for the sound input/output.

I hope this clears things up...

Mike 5:)
h2k_
But i think that both should be supported, one package for oss, one for alsa, or 2in1. So you are not FORCED to use one or another cool.png
organgrinder_
I am using the emu10k1 chip, and it play more than one streams.
I use OSS because it has better routing options.
Is there a reason to use alsa for me?

My question. I have routed PCM->Front and PCM1->Rear. So a headset is connected to rear, and available by /dev/dsp1.
How can I make the application skype using this dsp1 device?
Starting by a script?

sincerely,
Paolo
beckman_
hey, can u tell me how u got that routing options to work?
Flolp_
roothorick wrote:

CODE

With proper use of dmix and aoss you can easily obtain ALSA-level software mixing with OSS only programs. See http://alsa.opensrc.org/index.php?page=DmixPlugin for details.


I tried to do this and run skype using the dmix, dsnoop and async plugins for ALSA, closely following the alsa-wiki about asym.
Everythings working fine, I can even run multiple oss-programs using aoss, running multiple outputs and recording at the same time.
Yet when it comes to skype, capture and playback fail.
I found this in the aoss-manpage:

CODE

In the current form, aoss is not able to  wrap  OSS  applications  that make use of libc's FILE* infrastructure (fopen() and friends) for their communication with the OSS sound driver.  This  is  because  libc  uses internal  versions of open() and friends which cannot be intercepted by LD_PRELOAD'ing a shared library..


I guess this applies to skype, but can anyone verify this? Or maybe anyone got skype working with aoss and can post some hints?

Of course I'd even more appreciate an alsa-aware skype. Sound servers like arts (which I can use skype with using artsdsp) are not a good replacement for driver-level software mixing in my opinion, mostly because of the huge delay they cause.
Alternatively it might be possible to change the method skype seems to use to communicate with the OSS driver as pointed out in the aoss-manpage to an aoss-compatible access method?

Thanks in advance for any answers and/or hints, Flolp
tormodv_
QUOTE(Flolp)
roothorick wrote:

I found this in the aoss-manpage:

CODE


In the current form, aoss is not able to  wrap  OSS  applications  that make use of libc's FILE* infrastructure (fopen() and friends) for their communication with the OSS sound driver.  This  is  because  libc  uses internal  versions of open() and friends which cannot be intercepted by LD_PRELOAD'ing a shared library..



I guess this applies to skype, but can anyone verify this? Or maybe anyone got skype working with aoss and can post some hints?



I tried Tapas' patches from http://alsa.opensrc.org/index.php?page=aoss that are now included in alsa-lib 1.0.6. They are supposed to fix this fopen issue. However, when I try to to call using this libaoss wrapper I get "read error, res = 640 , handle = 24" from the skype stderr. I think there is something wrong about my libaoss build, because "rec" also fails with it. "xmms" runs fine though, so it seems like there is something with capture that fails.

Has anyone else tried this ? Any suggestions ?
tormodv_
I had a session with Tapas tonight. libaoss 1.0.6 kind of works with skype, but only for a short time in my case. libaoss has some trouble with mmap'ing. I didn't get asym to work at all with any OSS application, although my .asoundrc seems to be fine because it works with ALSA apps.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.