Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming Software Linux IT Technology

State of Sound Development On Linux Not So Sorry After All 427

An anonymous reader writes "There have been past claims by Adobe and others that development on Linux is a jungle, particularly with regards to audio. However today, the author of the popular 'The Sorry State of Sound in Linux' has posted a follow up showing Adobe's claims to be FUD, as well as being a good update on where OSS and ALSA are holding today, and why PulseAudio isn't a good idea."
This discussion has been archived. No new comments can be posted.

State of Sound Development On Linux Not So Sorry After All

Comments Filter:
  • by emj ( 15659 ) on Friday June 19, 2009 @05:49PM (#28396317) Journal
    If Pulse Audio really sucks, then Linux Audio really is in a sorry state .
    • Re: (Score:2, Informative)

      Supported Operating Systems
      * Linux (any modern distribution)
      * Solaris
      * FreeBSD
      * NetBSD
      * Native Win32 (no cygwin)

      Wonderful, we've just broken Windows Audio, Solaris Audio and many other Audios as well. (BTW, you probably wanted to type Linux audio, not Linux Audio).

      • by Larryish ( 1215510 ) <larryish@@@gmail...com> on Friday June 19, 2009 @06:43PM (#28396979)

        Pulseaudio rocks IMO.

        I have 7 Internet-connected personal machines at the house (7 Linux boxes, 1 Wintendo), and one Linux laptop is connected to a 5.1 surround system in the office.

        Every machine on the network (with the exception of the Wintendo) can play audio over the network through the 5.1 surround system via Pulseaudio, with no appreciable loss of sound quality.

        I can sit on the couch with a wireless-enabled laptop and play music from the headless file storage machine through the 5.1 surround system remotely.

        We've come a long way, baby.

        • by defaria ( 741527 ) <Andrew@DeFaria.com> on Friday June 19, 2009 @08:09PM (#28397649) Homepage
          Being able to play sound over the network is OK I guess. BUT THE VAST MAJORITY OF USERS JUST WANT SOUND TO AT LEAST WORK LOCALLY FIRST - then get the network to work. For example, I just purchased a mic so I can use Skype. The mic works - I hear my voice - but it doesn't record. How frigging hard is it to record from the one input labeled mic?!? Tons of instructions - all of them different - none of them work. Meanwhile some pimple headed Linux geek is still trying to get sound over the network working...
        • Re: (Score:3, Funny)

          by syousef ( 465911 )

          We've come a long way, baby.

          Don't call me baby! I've seen you sluting around with those tramps ALSA and OSS! Do you think I wouldn't find out!? You said you were done with them but now I know you were lying. I'm going home to mother's house! See you in court!

        • by X0563511 ( 793323 ) on Friday June 19, 2009 @09:07PM (#28398125) Homepage Journal

          Which is great, but it's not so great if you are trying to produce audio.

          When I plug my guitar in, I can notice a latency greater than 5ms. And greater than 25ms, it drives me insane.

          Compare that to what I get with PluseAudio (usually): 100-150ms. No thank you.

    • Pulseaudio sucks so bad I can't use it with the player of MY choice to watch movies.

    • by emj ( 15659 )
      The article is really good read it, the conclusion is that Ubuntu should hire the OSS developer, and that debian needs better OSS support. Another thing was Pulse Audio, which he say gives too much latency to be useable in games, not something I really care about but a 3 second delay is pretty extreme, I wonder if that is true.
    • by the_womble ( 580291 ) on Friday June 19, 2009 @06:55PM (#28397117) Homepage Journal

      If Pulse Audio really sucks, then Linux Audio really is in a sorry state

      No, because you do not have to use Pulseaudio.

      He says pulse sucks for games . Although he is exaggerating the latencies, I can believe it.

      It is so, so for video (you can get occasional lack of sync)

      It does audio very nicely - mixing works fine, you can play different streams to different cards (yes, I do that), you can play streams on remote servers, you can combine all local sound cards into a single virtual device etc.

      So the problem is not that we do not have good solutions. It is that we have different solutions with different strengths and it is not clear which should be the default. He thinks pulse should not be the default. I like pulse although I would like the latency and reliabliity issues dealt with.

  • it's all relative (Score:5, Insightful)

    by clang_jangle ( 975789 ) on Friday June 19, 2009 @05:57PM (#28396415) Journal
    When I no longer have to reboot into OS X to do real multimedia production work, then I'll agree that alsa has arrived. But this self-congratulation party is way premature. Linux has nothing that can even begin to rival GarageBand, what to speak of Logic Pro or Pro Tools. I surely wish it were otherwise. In fact, I just got done spending hours fooling with the Pro Audio overlay for Gentoo, and couldn't even get Hydrogen to play nice with or without jackd. Yes, my soundcard is listed as "supported".
    • Re:it's all relative (Score:5, Interesting)

      by delta419 ( 1227406 ) on Friday June 19, 2009 @06:02PM (#28396481)
      I can't speak for Logic Pro, but there is a (VERY good) alternative to Pro Tools; Ardour. The ubuntustudio packages had everything I needed to jump right into a professional DAW. I've been using it for high-quality recording/editing for almost a year now, no problems.
      • Re:it's all relative (Score:5, Informative)

        by clang_jangle ( 975789 ) on Friday June 19, 2009 @06:13PM (#28396617) Journal
        I tried Ubuntu studio on several different machines, and had no luck at all. If you try Pro Tools on the Mac, I'm sure you'll see what I'm talking about. The quality of sound is 100%, and using multiple sound sources not only works, it *just* works. That was not my experience with Ubuntu studio (nor Gentoo, Debian, dyne:bolic, arch, crux). I found them really wretched to work with, if you can even get them to work. Multiple sound sources via jackd? No way, it just doesn't work. Also, the sound quality matters a lot to me, and with alsa it's terrible. I've been trying to do what I do in Linux since 2003. It still isn't ready. I truly hope it will be one day soon...
      • Re: (Score:3, Interesting)

        by Danzigism ( 881294 )
        I HIGHLY agree with this. I thought audio production was at a complete standstill in the days of Rosegarden since it crashed for no reason on any machine I installed it on. It was a great concept, but it simply didn't work. When I installed Ardour I couldn't believe how great and functional it was. The ubuntustudio package is indeed a super easy way to get yourself up and running. Not to mention there is a pretty big following in #ardour on Freenode. Always someone there willing to lend a hand. Beats spendi
      • Re:it's all relative (Score:4, Informative)

        by CyDharttha ( 939997 ) on Friday June 19, 2009 @07:00PM (#28397147) Homepage
        I'm with you. I've been using Ardour [ardour.org] and Hydrogen [hydrogen-music.org] for years. Also use Rosegarden [rosegardenmusic.com] for keyboard synth. My keyboard is a M-Audio 49-key USB interface, just plug it in and go. I've set up a few audio production systems for friends as well. Shane Bertrand [myspace.com] has been recording and mixing his own music on one for 5 years now. A 10 input M-Audio Delta 1010LT [m-audio.com] sound card, Ardour, and Hydrogen are his main tools. They recorded and produced both CWO [myspace.com] albums on this setup. They used 5 mics to record the drummer; Shane's modest system had no problems handling it all, even at more than 40 tracks in a song. He had a Sempron 2500+ and 512MB RAM w/ Kubuntu, just upgraded to a X2 3800, 2GB RAM a few months ago.
  • Really, it is.

    It can be a pain in the ass to get working still, and is buggy.

    I'm sure it works well for some, but many others still have problems.

  • PulseAudio... (Score:5, Insightful)

    by Ponga ( 934481 ) on Friday June 19, 2009 @06:03PM (#28396495)
    In theory pulseaudio is great. In practice, it sucks. Nevermind, it sucks in theory too :(
  • by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Friday June 19, 2009 @06:08PM (#28396555) Homepage Journal

    Yes, Linux audio sucks. If nothing else, we have three common and incompatible APIs to perform a single tasks, and none of them are definitively better than the others. So, my question: what exactly is it that we're trying to achieve? What's the end goal of creating newer APIs instead of perfecting the old ones, such as moving from OSS to ALSA to whatever they roll out this month?

    For comparison, FreeBSD uses multi-channel OSS. You can have a whole passel of processes writing to /dev/dsp simultaneously, because whenever a process attempts to open it, the OS spawns off a new copy. It Just Works. I'm a little amazed that my FreeBSD server's sound handling is so much better than my Linux desktop's and requires approximate zero client configuration. So again, what was Linux hoping to achieve by dropping old "obsolete" OSS in favor of increasingly complex solutions?

    • by caffeinemessiah ( 918089 ) on Friday June 19, 2009 @06:29PM (#28396817) Journal

      So again, what was Linux hoping to achieve by dropping old "obsolete" OSS in favor of increasingly complex solutions?

      As far as Ubuntu is concerned, its the same inane neophyte behavior that "obsoleted" Xmms and BMPx in Jaunty in favor of the iTunes wannabe Amarok, which I find much less stable and cumbersome to use. There was absolutely nothing wrong with Xmms as a Winamp-style media player that was quick, efficient and could handle Internet radio and almost all the popular DRM-free formats, yet it was automatically removed with other "obsolete" software. Yes, I can compile it again from source, but it just seems a bit obnoxious. BMPx was another simple media player that was quite nice, albeit with the occassional bug, and it too has been "obsoleted".

      For all the evangelism of the Ubuntu community, why are we being driven towards solutions that mimic the proprietary soup-du-jour (iTunes in this case)?

      • by jedidiah ( 1196 )

        This stupid FUD magnified by outsiders that fixate on it takes hold an even
        eventually gets parroted by actual Ubuntu users. Ultimately, real users
        fixate on the FUD to the exclusion of real problem analysis.

      • Re: (Score:3, Informative)

        yeah it had nothing to do with BMPx no longer being maintained! as for xmms i suspect that gtk1.x is no longer being maintained. Canonical can't be arsed to maintain a few old winamp style players when there are many other well maintained ones about :O

        • by amRadioHed ( 463061 ) on Friday June 19, 2009 @07:32PM (#28397397)

          Xmms is no longer maintained either, the developers have all moved on to Xmms2. So yeah, distro's don't include software that's been abandoned upstream.

          • Re: (Score:3, Informative)

            by fishbowl ( 7759 )

            Xmms2 is just plain weird. I don't get it at all, and the amount of effort I put into trying to understand it was not rewarded.

            I felt lucky to discover Audacious, which I found by accident.

            • Re: (Score:3, Interesting)

              by amRadioHed ( 463061 )

              I think the main difference is that they broke it up into a client/server design. The advantage of that being the freedom to use whatever UI you like.

              In theory that sounds like a good idea, but I've never tried it since the development was going pretty slowly.

      • Yes, I can compile it again from source

        Or you could just ada third party repo that has it.

      • by Hatta ( 162192 ) on Friday June 19, 2009 @07:13PM (#28397255) Journal

        There was absolutely nothing wrong with Xmms as a Winamp-style media player that was quick, efficient and could handle Internet radio and almost all the popular DRM-free formats, yet it was automatically removed with other "obsolete" software. Yes, I can compile it again from source, but it just seems a bit obnoxious.

        You want Audacious [audacious-...player.org].

    • by dozer ( 30790 ) on Friday June 19, 2009 @06:32PM (#28396863)

      "So again, what was Linux hoping to achieve by dropping old "obsolete" OSS in favor of increasingly complex solutions?"

      Linux deprecated OSS2, which everyone agrees sucks hard. It was a no-brainer.

      OSS3 is significantly better but it was only recently open sourced. Frankly, if the OSS devs hadn't spent most of the last decade with their heads firmly wedged, audio on Linux would probably be in a much better state. Ah well.

    • while agree that PulseAudio is not ready for the primetime:
      1) the three APIs are not that incompatible as they always include legacy modes for old apps.
      2) I never figured out how to stop audio playing if a 2nd user logged in with alsa, but it happened by default with PA.

      IMH(umble)O it would have been better for PA's features to be implemented as scripts around ALSA, but those doing the work thought differently and as im too stupid and/or lazy to do it myself, I have to live with a slightly broken PA until i

    • You can have a whole passel of processes writing to /dev/dsp simultaneously, because whenever a process attempts to open it, the OS spawns off a new copy

      Good god, I want that.

    • First off, KDE and Gnome != Linux. Last time I checked they both ran on FreeBSD too. They are the real problem. When I first started playing with sound on Linux (probably 1996 or so), OSS was the established standard for the kernel. I think there were some other devices for compatibility, but Linux developers used OSS.

      Then around 2000 or so, ALSA started to show up as a viable project. It supported low latency sound and was more reliable for syncing sound to video. Obviously, you want this for playing vid

    • Re: (Score:3, Interesting)

      by TheRaven64 ( 641858 )

      OSS became commercial (non-Free) and so new versions couldn't be imported into the Linux or FreeBSD kernels. It also lacked in-kernel software mixing, so if your sound card didn't support multiple channels you could only have one device playing sound at once. At this point, the two camps went in different directions.

      The FreeBSD team kept adding features to the open source version of OSS. They followed the 4Front APIs, and included support for mixing. They maintained backwards compatibility with all of

  • by vadim_t ( 324782 ) on Friday June 19, 2009 @06:10PM (#28396575) Homepage

    And that is that ALSA's way of handling mixing is completely moronic.

    As an user, I care about hearing sound first of all. Sound quality (no pops or crackles) comes second, latency comes third.

    There should always be sound mixing, with no ifs, buts, exceptions, or configuration required. It should be there by default for anything that tries to play sound, whether through ALSA or the OSS backwards compatibility.

    The result of this nonsense is that crap like pulseaudio continues to exist, which is CPU hungry, often skips, fails to work with some programs and crashes frequently (what the hell is up with that?).

    Is there any document out there which explains why /dev/dsp doesn't get mixing with ALSA? And why nobody tried to patch that yet?

    • by cras ( 91254 ) on Friday June 19, 2009 @06:40PM (#28396957) Homepage

      Is there any document out there which explains why /dev/dsp doesn't get mixing with ALSA? And why nobody tried to patch that yet?

      Yeah, TFA explains it.. Here's it in short: /dev/dsp goes to kernelspace, while ALSA does mixing in userspace. I've no idea how difficult it would be to make ALSA do sound mixing in kernelspace.

      • Re: (Score:3, Informative)

        by Anonymous Coward

        they make it in userspace because of floating point, I think. No FP is allowed in the kernel. So alsa does it in userspace.

        Just get a card that does not suck (like an audigy 2) and mixing is a non-issue.

    • by a09bdb811a ( 1453409 ) on Friday June 19, 2009 @07:26PM (#28397347)

      There should always be sound mixing, with no ifs, buts, exceptions, or configuration required. It should be there by default for anything that tries to play sound

      There is. ALSA's dmix has been enabled by default for a long time, years. Have you even tried Linux? I can't remember the last time I had to 'configure' sound on Linux. Insert sound card, mixer shows up, play sounds. From the ALSA wiki: "NOTE: For ALSA 1.0.9rc2 and higher you don't need to setup dmix. Dmix is enabled as default for soundcards which don't support hw mixing."

      The result of this nonsense is that crap like pulseaudio continues to exist

      No. Sadly, pulseaudio exists simply to copy Vista. Vista introduced per-application mixers and apparently this is a Cool New Feature that everybody supposedly wants, even if it's a shitty implementation that slows down what was a perfectly working sound system.

      Is there any document out there which explains why /dev/dsp doesn't get mixing with ALSA?

      If you bothered to try, you'd find that it does.

      • by vadim_t ( 324782 ) on Friday June 19, 2009 @08:46PM (#28397943) Homepage

        There is. ALSA's dmix has been enabled by default for a long time, years. Have you even tried Linux? I can't remember the last time I had to 'configure' sound on Linux. Insert sound card, mixer shows up, play sounds. From the ALSA wiki: "NOTE: For ALSA 1.0.9rc2 and higher you don't need to setup dmix. Dmix is enabled as default for soundcards which don't support hw mixing."

        Yeah, it's supposed to work, but for some reason for me it doesn't.

        And have you looked at that page? It's full of listings of arcane incantations. Really, I just want the darn audio to always get mixed, without having to get a degree in audio engineering to understand what's going on there.

        If you bothered to try, you'd find that it does.

        See the dmix page [opensrc.org], which says "Normally (without hardware mixing) you cannot use /dev/dsp multiple times directly."

        So it seems that if you have onboard audio, and want to have more than one app use /dev/dsp, you're out of luck.

  • by Zombie Ryushu ( 803103 ) on Friday June 19, 2009 @06:11PM (#28396585)

    Pulse Audio is a bloody disaster. It breaks just about every audio application I have, and even when its not running, it creates over runs and under runs in other ALSA and SDL audio applications (like ZSNES). ALSA, and SDL audio was the perfect sound abstraction system. Pulse Audio screws EVERYTHING up. I have to makle my own patched RPMs to get rid of Pulse Audio hooks in applications. Its bad. Its really bad.

    Audio applications should use ALSA but not lock the card. Games should use SDL. Everyone else should follow suit.

    If an application is locking a card its the drivers fault. Fix the driver, fix the over runs, and ditch Pulse Audio!

    • KISS (Score:4, Insightful)

      by MikeFM ( 12491 ) on Friday June 19, 2009 @06:28PM (#28396791) Homepage Journal

      I hate PA. It's a complex mess and half the time it just doesn't want to work right. There is no way your average user could deal with it. Most of the time I have trouble with it not allowing multiple users to have audio at the same time seemingly due to some twisted sense of how security should work. ALSA is better than PA but still doesn't work a lot of the time.

      It sounds like OSS is getting it's act together and just needs someone to hire the lead developer(s) and port all cards missing OSS support over. That sounds like a worthy goal for those selling distros or soundcards. If it works well and is easy for developers then it'll work well for end users. That is what matters. Sound has been my #1 embarrassment when pushing Linux. It has never worked well and it's time we get it fixed.

    • by Ed Avis ( 5917 ) <ed@membled.com> on Friday June 19, 2009 @06:47PM (#28397029) Homepage

      The developer of PulseAudio explains some of the rationale in this interview [blogspot.com].

    • When I've installed Ubuntu on other peoples the machines the first thing I do is remove PulseAudio. It offers no benefit for the average user and is the source of many headaches. Imagine being a new user and, when when discovering you can't do anything sound related, have to dive into a nasty tome of a HOWTO like this: http://ubuntuforums.org/showthread.php?t=789578 [ubuntuforums.org]. You'd be looking for your Windows install disk before you even started scrolling down.

  • ALSA was a mistake (Score:4, Insightful)

    by Anonymous Coward on Friday June 19, 2009 @06:13PM (#28396607)
    ALSA was a big mistake, from the same mold as the Netscape "Let's throw everything away and start again!" that Jamie Zawinski complained about all those years ago. For some reason the ALSA developers decided that OSS sucked but rather than fix the few issues that existed, they threw it all away and created this huge monster called ALSA. There are some nice ideas in there, such as generic PCM buffer management, but there is no reason those features could not have been added to the existing OSS implementation. OSSv4 proves that it was possible. Instead Linux has plumped for a system that is too complex, poorly supported, poorly documented and disliked by developers. If instead the effort had been applied to fixing OSS, sound on Linux would now be further ahead than it is now. Now that OSSv4 is fully GPL I'd love to see it back in the mainline tree, at least to give users better choice, but sadly I suspect there are some major egos and political posturing that will stop that happening.
    • by GlassHeart ( 579618 ) on Friday June 19, 2009 @07:28PM (#28397361) Journal

      If instead the effort had been applied to fixing OSS, sound on Linux would now be further ahead than it is now.

      You hear this a lot in the open source circle. Many projects have close competition (Gecko/KHTML, KDE/Gnome, etc.) where this comment might apply. The problem is that "fixing the few issues that existed" is frequently not only very hard, but also very boring. Put another way, if it was fun and/or easy, the original developers would've already done it. IOW, this is probably crappy work that you have to pay people to do, and unfortunately free software doesn't usually pay, so volunteers gravitate towards the fun and easy (at least, perceived to be easy), which is often to start a new exciting project.

  • Until developers can write apps and be sure that they will behave as he expects when it comes to sound across the vast majority of distros, I am afraid that we in the Linux world will still be playing catch up when it comes to multimedia. Sadly, the article did not show that things are improving in any way!

    So much for the so called "freedom of choice"...but what's wrong with choosing a technology and throwing all development efforts behind it?

    Those who crave the freedom to do whatever they want can still do

    • by MikeFM ( 12491 )

      Choice is good. We should always have competition. But it's the kernel maintainers and distro maintainers to package those choices into something end users and developers can work with. It's ridiculous that sound doesn't work well in Linux at this point in time. There should be a single stable API and everything else should be easily plugged in and out as needed with a known good implementation also provided as the default. Don't allow programs to break sound for each other and make sure everyone can input

  • by parlancex ( 1322105 ) on Friday June 19, 2009 @06:19PM (#28396703)
    The real problem here was created when developers started trying to solve the mixing issue by writing software libraries instead of a specification.

    Instead of attempting to write a one size fits all sound library that would interface directly with the sound hardware and provide the direct interface for applications who wish to play sound, what they should have been done was drafting a specification for an API that contains only the most basic audio features (creation of primary / secondary audio buffers, enumerating supported device buffer formats, etc.). The driver provides the implementation for the specification. If the device driver indicates the device is capable of hardware mixing, it should use hardware mixing internally, if it doesn't, it uses software mixing internally, if supports the use of hardware buffers for secondary buffers it can do so, but this all will take place within within the driver specific implementation of the standard specification. This should have been paired with a robust generic open source driver that (hopefully) supported as many generic audio devices as possible. Using the interface exposed by the spec directly might seem a little low level, but additional software libraries could be built on top of that interface for use by applications. The important advantage if they had gone down THIS road is that the single conduit, the arbiter of all things audio in the system would've been the device driver for the sound hardware, which would reside neatly in the kernel.
    • by jd ( 1658 ) <imipak@ y a hoo.com> on Friday June 19, 2009 @07:36PM (#28397429) Homepage Journal

      I agree with the specification point, and agree that the lowest level API should be as basic (and standard) as possible. Then, once you have that, you can layer whatever higher-level architecture you like on top, as the low-level drivers are "just there" and will "just work".

      However, this doesn't help applications, necessarily. I would argue to help apps writers, you need to standardize the glue between layers, such that sound and commands can be passed from one layer to another in a predictable manner. Innovators can always add new commands that are parsed by their own injectable layer.

      I would also argue that it's impossible to chain userland software a-la JACK via the kernel efficiently, as you've a double context switch per element in the chain. Since transforms are CPU intensive, you want to do the fewest composite transforms possible, which means a software mixer should be something you can chain, which means that the heavy-lifting mixer needs to be in userspace.

      (Either that, or you're going to need LADSPA and LV2 support in the kernel, plus some way of coaxing "smart" sound cards into supporting such effects. Since the kernel developers would force the first coder who tried to submit such a patch to walk the plank, I don't see it as likely.)

      This would leave the low-level mixer for mixing between kernel threads (rather than between applications per-se) and normalizing the inputs. If we're not having to normalize values anywhere else in the process, we should end up with improved quality and less latency. (Anything that mucks with precision hurts quality, and any operation at all hurts latency.)

  • I actually like the concept of PulseAudio. For the first time different applications that use the sound system can have their output levels adjusted individually, and most importantly for anyone new to Linux - easily. So there are no more surprises between a quiet application and a loud one.

    As for stability, PulseAudio has been pretty rock solid, it hasn't crashed, but on boot VERY occasionally it decides to re-route all the outputs from the speakers to the USB headset, then you have to spend an age finding

  • Fud? Er, no... (Score:4, Informative)

    by mad.frog ( 525085 ) <steven&crinklink,com> on Friday June 19, 2009 @06:28PM (#28396793)

    Both the Adobe article and the "Sorry State Of Sound" article date from May 2007. The new article reinforces that the state *was* sorry then.

  • So does anyone know how to get oss working in Fedora 11?

    I am currently stuck with alsa, and after removing pulse audio, anything is more or less working. And xmms can even do it's own software mixing, but I would like to try oss4 so other applications also could do mixing. Does anyone know if there are ossV4 packages for fedora11 out there?

    ps: I hate the name oss, it always make me think of "open source software" not an audio stack.

    • by joe 155 ( 937621 )
      I don't know, but I would just say congratulations on getting audio to work at all on fedora. I'm still on Fedora 10, but whilst sound used to work perfectly in Fedora Core 5 it seemed to just stop working sometime around fedora 9 and hasn't worked properly since.

      Interestingly the only solutions to my audio problems I read from people online were hacks like "change the sound up and down in alsa and it might start to work...". It's hardly a ringing endorsement of the audio on Linux. The first priority sh
  • by bcrowell ( 177657 ) on Friday June 19, 2009 @06:34PM (#28396881) Homepage

    TFA says that the way sound is implemented in the kernel is basically okay, but there are problems with how the kernel's facilities are used at higher levels by applications, and with the way the whole thing is integrated by distros. I think he's basically correct.

    As an example of what's not broke about the kernel, and doesn't need to be fixed, it's a good thing that we still have support for OSS. OSS allows you to do sound I/O in exactly the way you would expect to do sound I/O based on the fundamental design principles of unix. You just do open(), ioctl(), read() or write() on devices like /dev/dsp. If you couldn't do that, it would be a failure to do the obvious, straightforward stuff to handle sound in the Unix Way.

    As an example of what is broken at higher levels: I run Ubuntu Jaunty. Sound works fine every time I boot the computer, and I get the bongo sound as the login screen comes up. Then when I log in, master playback is muted, and the volume is down at 1/31. Also, the way the Gnome icon shows me that sound is muted (a tiny red box with a white x in it) is the same as the way the network icon would show me that I'd disconnected my ethernet cable or something; in other words, it makes it look like it's not just muted, but actually broken. Here's [ubuntuforums.org] my best attempt to characterize the bug: Here's [launchpad.net] a bug on launchpad that may or may not be the same thing:

  • by demachina ( 71715 ) on Friday June 19, 2009 @06:36PM (#28396895)

    ... when application developers or users express concern about a problem in your OS is to attack them, call them liars and FUD rakers, accuse them of being stooges for Microsoft or whatever.

    I'm pretty sure the engineer who develops the Flash Linux player is probably on your side, and he was expressing a legitimate concern about a problem with Linux. As best I remember Adobe hired him out of the open source, Linux world. It would probably be more productive to listen to his concerns, and see if maybe, just maybe, there is a problem with audio on Linux. Having tried to write simple audio apps myself using OSS and ALSA I can assure you they have issues, OSS having no mixer at all was a nightmare to make play with more than one audio stream or more than one app at a time, that's why ESD, arts and pulse were created to hide these mixer deficiencies.

    ALSA is a ridiculously overdone, convoluted audio API which makes it very painful for audio driver writers and application developers alike. It simply has too many knobs that can be tweaked and turned most of which never get implemented properly by driver writers and can't be trusted.

    The simple fact that there must be a dozen different audio API's on Linux many of which exist solely to hide applications and users from the deficiencies in OSS and ALSA tells you something right there.

    Rather than attacking this guy maybe you should have the empathy for the guy, he has to deploy an application that is used by probably millions of Linux users, most of whom are ticked off its not open source in the first place and then when it doesn't work perfectly they scream bloody murder. He has to try to make audio work in the face of the fact there are countless barely working or at least buggy ALSA drivers in the world, and there must be about a HUNDRED different ways to configure audio when you count OSS, ALSA, gstreamer, pulse, esd, arts, jack, OpenAL, and a MILLION different configurations when you count all the obscure options you can or in some cases HAVE to set on audio drivers.

    As an end user I've suffered through painful, hard to fix audio bugs, in just about every PC I've owned over the last ten years due to audio driver bugs. Sure I could sift through "supported" hardware lists and try to find that rare new PC or laptop where everything is guaranteed to work on Linux, but I would actually prefer to just buy the hardware I want at the price I want. Of course in all fairness to the Linux developer community it is a total bitch to get working drivers on all the PC hardware being put out especially when the vast majority of hardware developers either just don't support Linux, support Linux badly, or actively obstruct Linux support.

    You all seriously need to realize that if you want broader acceptance of your wonderful operating system:

    A. You need applications and application developers to develop for your system, and not attack them if they point out problems deploying apps on your system. In a perfect world every app would be open source, but there may be some apps which aren't Linux would be better off having as closed source than not having at all.

    B. it will have to actually work for ordinary people who aren't going to spend days/weeks/years fiddling with things to try to make it work right.

    One of the beauties of the Mac is the hardware is tightly controlled. You may view that as confining and depriving you of your freedom, but it also helps insure the damn thing works out of the box, and most of the applications on it work pretty damn well. After years of fighting nagging bugs on Linux I decided it was in my own best interest to just switch to a Mac for my desktop system and I use my Linux box solely to develop code on. Linux on the desktop is a lot better than it was but unfortunately its just not a very good desktop experience by comparison.

    Unless there is a major attitude adjustment in the Linux community that is unlikely to change. Either:

    A. Be content that Linux is a niche OS for hardcore fans a

  • Developer FAIL (Score:5, Insightful)

    by coaxial ( 28297 ) on Friday June 19, 2009 @06:43PM (#28396989) Homepage

    Wait. Claiming audio sucks on Linux is FUD because there's not one, not two, but three mutually incompatible and redundant APIs? How the hell is this not a clusterfuck?

    Oh I'm sure there's some reason why someone prefers one to the other, but seriously. You're sending bits to a soundcard. That's it. Just make one API and be done with it. Got a beef with the API? Enhance it, don't just throw it away?

    My god, audio was one of the reasons why I ditched Linux for a mac four years ago after running it as my primary OS for ten years prior. Frankly I got tired of having sound work in some applications, but not others. I got tired of guessing which mixer would adjust the sound, which mixer wouldn't. I got tired of seeing "No ALSA cards detected" in my startup, but someone how having `alsamixer` be the one mixer that worked most consistently.

    This is a mess made by the developer community and developer community has so far failed to show that it is capable of solving it. If only there were a Benevolent Dictator or something...

  • From reading the (very interesting) article, it sounds like he's still saying it is in a sorry state. Summary for those lazy people.

    OSS3 was a bit crap and removed from the kernel in favour of ALSA
    ALSA is also a bit crap because it does mixing in a stupid place, and sometimes not at all. Also it has an unnecessarily complicated API.
    OSS4 was written, which is much better than ALSA - simpler API, lower latency, better mixing - but isn't included in the mainline kernel.
    PulseAudio is a horrible horrible ugly ev

  • PulseAudio (Score:5, Insightful)

    by harry666t ( 1062422 ) <harry666t@DEBIANgmail.com minus distro> on Friday June 19, 2009 @06:59PM (#28397135)
    The main reason why PulseAudio isn't a good idea:

    It is just the best possible counterexample of "Just Works(tm)". In other terms: each time I try it, it just "Doesn't Work(tm)". Without it, sound works more often than not; I don't care why or how as long as it does work. Simple observation: "apt-get install pulseaudio" breaks audio, "dpkg --purge pulseaudio" repairs audio.

    Hm. Maybe that's how Linux audio is supposed to be brought to a (relatively) sane state: by breaking it so terribly that rolling everything back to the previous state would almost look like a step forward.
  • Alsa to OSS (Score:3, Interesting)

    by AaronW ( 33736 ) on Friday June 19, 2009 @07:01PM (#28397159) Homepage

    Over the years I had a lot of prolbems with ALSA, the biggest being the lack of sound mixing with the sound card on my motherboard. To get around it, I went out and bought a different sound card that supported hardware mixing. I still had problems where ALSA would just break periodically and require restarting it. Then at one point it just plain broke and nothing would fix it.

    I had enough and installed OSS. What a difference. Latency is better and it just works. There is no excuse to not providing consistent audio mixing. I should have switched to OSS in the beginning rather than buy an expensive sound card because ALSA couldn't do software mixing.

    A sound API should provide sufficient abstraction so that basic operations do not depend on the underlying hardware. Mixing, sample rate conversion (when needed) and per-application volume settings fall under basic operation as far as I'm concerned.

  • My chief complaint, both on Windows and Linux is that probably 99% of applications have no concept of anything other than the default sound card, making multiple cards useless for all but a few niche applications. Apps that use sound need to provide a way to specify which device is used in case the user wants to use other than the default, period. None of the solutions for audio so far have really done anything to make this better (or they make it worse in the process) - granted, it's mostly an application issue, but control of device selection in the mixer as well would help.
  • Are you kidding? (Score:5, Interesting)

    by Hurricane78 ( 562437 ) <deleted&slashdot,org> on Friday June 19, 2009 @08:12PM (#28397669)

    App -> libao -> OSS API -> OSS Back-end - Good sound, low latency.
    App -> libao -> OSS API -> ALSA Back-end - Good sound, minor latency.
    App -> libao -> ALSA API -> OSS Back-end - Good sound, low latency.
    App -> libao -> ALSA API -> ALSA Back-end - Bad sound, horrible latency.
    App -> SDL -> OSS API -> OSS Back-end - Good sound, really low latency.
    App -> SDL -> OSS API -> ALSA Back-end - Good sound, minor latency.
    App -> SDL -> ALSA API -> OSS Back-end - Good sound, low latency.
    App -> SDL -> ALSA API -> ALSA Back-end - Good sound, minor latency.
    App -> OpenAL -> OSS API -> OSS Back-end - Great sound, really low latency.
    App -> OpenAL -> OSS API -> ALSA Back-end - Adequate sound, bad latency.
    App -> OpenAL -> ALSA API -> OSS Back-end - Bad sound, bad latency.
    App -> OpenAL -> ALSA API -> ALSA Back-end - Adequate sound, bad latency.
    App -> OSS API -> OSS Back-end - Great sound, really low latency.
    App -> OSS API -> ALSA Back-end - Good sound, minor latency.
    App -> ALSA API -> OSS Back-end - Great sound, low latency.
    App -> ALSA API -> ALSA Back-end - Good sound, bad latency.

    Do you by any chance buy Monster cables, and a wooden volume knob, because it "sounds better"?

    I'm sorry, but without proper ABX tests, I do not believe a single word of this table.
    And about the latency: Please enlighten us, how you actually measured them?

    • Re: (Score:3, Informative)

      by AaronW ( 33736 )

      The article is fairly clear on why the latency is better with OSS vs ALSA. ALSA does audio mixing in user space before passing the mixed audio to the kernel. OSS, on the other hand, does everything in kernel space including audio mixing and even resampling. Since the audio is only processed in the kernel the latency can be much lower. With ALSA audio must be buffered in user space for mixing then buffered again in the kernel for the hardware. OSS eliminates this problem by doing it all inside the kernel.

      ALS

  • by Ant P. ( 974313 ) on Friday June 19, 2009 @08:20PM (#28397755)

    I'm sure from all the rave reviews it's technically superior and all, but right now it's controlled by a paranoid schizo who hasn't got a clue how open source works: after GPLing it and whining that he hasn't suddenly started making money, he now thinks he can dictate what license apps using his API have to be released under.

  • by X0563511 ( 793323 ) on Friday June 19, 2009 @09:15PM (#28398183) Homepage Journal

    Looking at the charts, and looking in a few other places, it is clear to me that OSSv4 is the way to go.

    So, when does this start to happen? I tried this a few months ago, and I had to patch my kernel and do all sorts of other things that ended up hosing sound completely (since I'm not a developer, asking me to do developer-ly things is trouble).

    When will it be a simple switch in the kernel config, or a simple matter of installing a package in the major distros?

    • If we switch to OSSv4, people will start whining because we will have three sound systems instead of two. A gift for all Linux FUD spreaders. Drivers quality will not improve in the switch from ALSA to OSS (why should it?) so people will keep complaining about cracks and pops and out-of-the-box hardware support, and new bugs will inevitably crawl in during the process of converting existing drivers from ALSA to OSS.
      Of course, developers will have to support ALSA for a long time (dropping ALSA altogether wo

A morsel of genuine history is a thing so rare as to be always valuable. -- Thomas Jefferson

Working...