Slashdot Mirror


Software-Audio for Linux?

Oscarfish asks: "A pattern I'm seeing in newer PC motherboard chipsets is integrated audio, usually through a software-only solution. I know it's not an option for power users, but do OEMs have any hope of using a soft-audio setup for prebuilt Linux machines? It's usually an AC97 audio codec that's being used, popular in both Intel's i820 (Camino) and Via's Apollo Pro 133A chipsets, often complimented with an AMR (audio-modem riser) slot. What's the driver situation under Linux, and will this ever be of practical use? Unfortunately it seems like an audio version of a Winmodem to me...but aren't there beta Linux drivers for those now?"

4 comments

  1. What's the difference? by akejay · · Score: 1

    I admit I've never programmed a driver, but the difference between a software-based sound card and a hardware-based sound card still escapes me.

    When it comes to modems, it seems easy: A hardware-based modem will communicate directly through a serial port, and these have been standard for years. A software-based modem doesn't, and needs CPU-intensive software to do its signal processing for it. So, I've always pictured a softmodem as a sound card for a phone line. The CPU has to calculate all of the sound it needs.

    But when you're dealing with a sound card, there are already several different manufacturers and interfaces. While some cards may be SBPro- or SB16-compatible, there are always different native ways of using them. Each driver (ESS, SB, SoundPro, Aureal, AC97) still has to pass the sound data to the card in a different way.

    True, there are always cards that will do more (hardware wavetable MIDI, 3D effects generation, Dolby surround support), but people who need these features would buy a more expensive sound card, same as they'd buy an ever-more-enhanced-3D video card.

    What would one of these cards do poorly that a SoundBlaster 16 does better?

    --
    one, two, one two like a duck
  2. There are definite possibilites by Oddball · · Score: 1

    Warning: I'm spouting this off w/o double checking. I'll leave that as an exercise to the interested readers.

    AFAIK, there has to be more to an audio system than just the codec. There has to be some sort of DSP to create the stream that the codec (ie AC97) then pumps out to the sound outputs. In the case of integrated chipsets, they may forgo the DSP, expecting that to be written in software. Granted, this doesn't mean that it /can't/ be used in linux, it just makes it very difficult. Writing a DSP in software and writing a driver to handle a DSP are two completly different things (re: post #1).
    There probably is work being done on it. The ALSA Project tends to do some amazing work (www.alsa-project.org), and there may be an AC97-only driver in their distrobution. From a quick look at their docs, I see that the intel i8x0 and Via 82c686a are supported.
    And, of course, if you want to see it happen and it's not, pick up the source, grab GCC and code away.

    --
    "A good programmer is someone who looks both ways before crossing a one-way street." - Doug Linder
  3. Sound isn't as complicated as a modem. by SwellJoe · · Score: 3
    A sound card in it's most basic sense simply shoots some bits through a Digital to Analog convertor. There is no way this can be done "in software". As long as the method for sending data to these sound interfaces is available, (and even if it's not...a reverse enigineering job should be as easy as they come) there is nothing preventing sound drivers being written.

    If you want 3D and reverb and whatever other shoddy DSP stuff they put into audio cards these days, then it is most likely not a feature built into the hardware. Good riddance, I say. A well written software solution is my preference any day.

    Really, the only problem I foresee with these interfaces is that they might sound really bad. But maybe they'll be Ok. Regardless, if you do audio work you're going to need a proper sound card anyway, not anything that will come by default in a standard desktop PC. These days you can get an 8 channel 24/96 (24 bit 96kHz) board for under a grand. If you need great audio, professional quality is only a few bucks away. If you need sound for Quake ]|[ use your built in audio and enjoy.

    In short, sound cards generally cannot be like "WinModems" because sound cards just aren't that complicated. If our heroes at ALSA can figure out how to talk to the card, it will work just fine.

  4. Coming, slowly but surely by Captn+Pepe · · Score: 2

    Check out the sources for the 2.3 kernel tree. There are working drivers for a lot of the AC97 codecs already, and more are progressing towards stability. If you feel up to using the unstable kernel tree (just be careful - there's still a few serious flakynesses left) go for it, and if it doesn't work, submit bug reports. As far as OEMs go, I wouldn't look to see them supporting these crap-chips anytime too soon, though. The drivers are certainly not up to production quality yet. That said, I would venture to say that most (nay, practically all) of the linux boxes shipping these days are server systems, where sound doesn't matter and stability does. Heck, a bunch of server systems never even see X.

    --

    Quantum mechanics: the dreams that stuff is made of.