Originally posted by allquixotic
View Post
Actually, it's probably not. In the general purpose computing market (laptops + desktops + tablets + home movie devices), the two chip designs that basically dominate the market are chips based on Intel's HD Audio standard (5.1 or 7.1 channels, integrated on motherboard, software mixing, blah blah); and chips based on the HDMI Audio standard (similar support as HD Audio, but supplied as a companion ASIC on a SoC or discrete graphics card). Both of these only do software mixing.
If you go a little older, AC'97 was the dominant chip standard, and that also only supports software mixing.
If you go portable (for people who hate their on-board sound or don't have on-board sound), USB Audio Class 1.0 (requires USB 2.0) is the dominant standard, and that also only supports software mixing.
What, do you suppose, is the combined percentage of market share between HD Audio, HDMI Audio, AC'97 and USB Audio Class 1.0, compared to other chips which do not fall into any of these categories (and discounting software-mixing DSP chips embedded in small cellphone/smartphone ASICs)?
I think 99% would be a gross understatement; you need to add a few .999's to it to reach a semblance of precision.
So yes, you are extremely rare. Phoronix membership tends not to be representative of the general populace. This site is for enthusiasts. The fact that three or four people have chimed in saying they have hardware mixing just goes to prove my point.
Funny thing is, I know a lot of audiophiles personally who are perfectly happy with their consumer-grade HD Audio or HDMI Audio solution. To them, like many of us, it's the quality of the headphones you use that makes more of a difference in audio quality, not the quality of the DSP or whether the DSP offloads mixing work from the CPU. Even consumer-grade DACs are incredibly powerful these days, so unless you are using your audio hardware to actually produce content that will generate extreme amounts of revenue and/or publicity, or unless you just have spare money sitting around, I can't see any reason to buy a discrete audio card that does hardware mixing. Just the thought of an audio card -- something you couldn't live without in the 90s -- seems amusing to me now, just by reading the words "a-u-d-i-o c-a-r-d". It's like reading the words "math coprocessor". Well of COURSE everyone's CPU has a math coprocessor, dummy! What do you think this is, 1978?! Yeah. That's how I feel about audio cards.
One other thing that has me genuinely interested: people claim that not having PA running saves them RAM or CPU time. Well that's just dandy, but something, somewhere, is still mixing your audio. How power-efficient is that chip? How many streams can it handle at once? Does it buckle under sustained load? If it has a bug, do you have the expertise to upload new firmware to it (assuming it's possible to do so at all)?
I haven't been keeping up with the fringes of audio technology lately, but my gut feeling is that audio card manufacturers aren't exactly using 22 nm technology for their boards. And it's pretty clear from Intel's recent innovations that smaller (and smarter; see Ivy Bridge's on-chip voltage regulator) makes a chip more power efficient. Unless you've physically measured the voltage consumed by your audio card's HW mixing and found it to be lower than an optimized CPU-based solution such as PulseAudio, I'm going to wager that doing it on the CPU will eat less power.
But, then again, if I actually had a pro audio card with hardware mixing, I'd probably want to use it -- to be fair. Especially if I have a desktop and power consumption isn't really a factor, when you consider that audio cards aren't eating up power nearly as much as video cards do; I've never heard of an audio card that takes external PCI-E power plugs like the big Radeons and GeForces do.
People have expressed interest in using PA's protocol features, plugins and routing features with hardware mixing before, but it seems like it'd be a fairly difficult task. I'm sure it's possible for certain classes of hardware, but you would end up having to develop a hardware interface layer that's closer to a general purpose computer, or at least provide some mechanism for PA to modify buffers already queued up on the card, and read back existing buffers, kinda like what the more recent OpenGL specs have provided for GPUs. You'd basically end up having an audio accelerator card with very similar "programmable fixed-function" features, analogous to what you saw on GPUs about 7 or 10 years ago, before they became fully programmable. Because if you're going to make it fully programmable, you might as well just do it on the CPU, or -- hell -- even the GPU.
Audio on the GPU. Now you have me genuinely interested.
OpenCL "hardware mixing" in PulseAudio. hahahahahahahahahahahahahahahahahaha. Is it even possible? I'm just thinking aloud here.
If you go a little older, AC'97 was the dominant chip standard, and that also only supports software mixing.
If you go portable (for people who hate their on-board sound or don't have on-board sound), USB Audio Class 1.0 (requires USB 2.0) is the dominant standard, and that also only supports software mixing.
What, do you suppose, is the combined percentage of market share between HD Audio, HDMI Audio, AC'97 and USB Audio Class 1.0, compared to other chips which do not fall into any of these categories (and discounting software-mixing DSP chips embedded in small cellphone/smartphone ASICs)?
I think 99% would be a gross understatement; you need to add a few .999's to it to reach a semblance of precision.
So yes, you are extremely rare. Phoronix membership tends not to be representative of the general populace. This site is for enthusiasts. The fact that three or four people have chimed in saying they have hardware mixing just goes to prove my point.
Funny thing is, I know a lot of audiophiles personally who are perfectly happy with their consumer-grade HD Audio or HDMI Audio solution. To them, like many of us, it's the quality of the headphones you use that makes more of a difference in audio quality, not the quality of the DSP or whether the DSP offloads mixing work from the CPU. Even consumer-grade DACs are incredibly powerful these days, so unless you are using your audio hardware to actually produce content that will generate extreme amounts of revenue and/or publicity, or unless you just have spare money sitting around, I can't see any reason to buy a discrete audio card that does hardware mixing. Just the thought of an audio card -- something you couldn't live without in the 90s -- seems amusing to me now, just by reading the words "a-u-d-i-o c-a-r-d". It's like reading the words "math coprocessor". Well of COURSE everyone's CPU has a math coprocessor, dummy! What do you think this is, 1978?! Yeah. That's how I feel about audio cards.
One other thing that has me genuinely interested: people claim that not having PA running saves them RAM or CPU time. Well that's just dandy, but something, somewhere, is still mixing your audio. How power-efficient is that chip? How many streams can it handle at once? Does it buckle under sustained load? If it has a bug, do you have the expertise to upload new firmware to it (assuming it's possible to do so at all)?
I haven't been keeping up with the fringes of audio technology lately, but my gut feeling is that audio card manufacturers aren't exactly using 22 nm technology for their boards. And it's pretty clear from Intel's recent innovations that smaller (and smarter; see Ivy Bridge's on-chip voltage regulator) makes a chip more power efficient. Unless you've physically measured the voltage consumed by your audio card's HW mixing and found it to be lower than an optimized CPU-based solution such as PulseAudio, I'm going to wager that doing it on the CPU will eat less power.
But, then again, if I actually had a pro audio card with hardware mixing, I'd probably want to use it -- to be fair. Especially if I have a desktop and power consumption isn't really a factor, when you consider that audio cards aren't eating up power nearly as much as video cards do; I've never heard of an audio card that takes external PCI-E power plugs like the big Radeons and GeForces do.
People have expressed interest in using PA's protocol features, plugins and routing features with hardware mixing before, but it seems like it'd be a fairly difficult task. I'm sure it's possible for certain classes of hardware, but you would end up having to develop a hardware interface layer that's closer to a general purpose computer, or at least provide some mechanism for PA to modify buffers already queued up on the card, and read back existing buffers, kinda like what the more recent OpenGL specs have provided for GPUs. You'd basically end up having an audio accelerator card with very similar "programmable fixed-function" features, analogous to what you saw on GPUs about 7 or 10 years ago, before they became fully programmable. Because if you're going to make it fully programmable, you might as well just do it on the CPU, or -- hell -- even the GPU.
Audio on the GPU. Now you have me genuinely interested.
OpenCL "hardware mixing" in PulseAudio. hahahahahahahahahahahahahahahahahaha. Is it even possible? I'm just thinking aloud here.
You're sharp reasoning prompted me to try pulseaudio again. I removed my dmix asound.rc and reinstalled alsa then installed pulseaudio. I'm sorry to report, but pulseaudio still crackles loudly and consistently on both of my machines. I'm going to stick to dmix for another year or so before I try again.
Comment