ID Engines had a nasty custom audio engine dating back to DOS days. Audio was NOT their strong point and ID engines were easily outclassed by other games of their days. The trouble with Linux and MMAP is that they used a mmap method for writing audio so therefore were not compatible with certain drivers/hardware and PA. Always troublesome.
The classic non-solution was just to tell people to buy hardware that supported hardware-based mixing.
The modern non-solution is to try to tell people to stop using PA.
Both pieces of advice _may_ fix the problem. May not. More then likely though it will just cause headaches for the person listening to them.
Most of the games that used the ID engines are either now using vastly improved open source versions, or have other work arounds. (like forcing them to use SDL for audio)
We are talking about things like Doom, Quake 1, Quake 2, Quake 3, and Return to Castle Wolfenstein.
This is why you have wikis full of old information about making custom asoundrc files and such.
Basically it's the driver's job to inform userspace what type of audio/buffer/etc that the hardware supports. However a great deal of Linux drivers were giving incorrect information to userspace and had other issues. The key then to good audio experience for a lot of people in the Bad-old-days was to create a custom asoundrc file that forced the correct audio stream for their hardware. Plus users could configure dmix plugin for mixing multiple audio streams on hardware that didn't support it.
(on a side note: hardware mixing stomps on audio quality. You can generally get better audio quality out of non-mixing hardware. Software can use better algorithms and if you want you can disable it altogether. With things like soundblaster/audigy-style hardware all your audio was remixed whether you liked it or not. Modern stuff is a bit better, but not by a whole lot)
Either that or people were forced to do something gaud-aweful.. like install OSS drivers or run some sort of twisted compatibility mode on top of artsd or something like that
The reason this is bad is that instead of just fixing the stupid drivers, each and every user was forced to rediscover the same fix everybody else is using and re-implement everything themselves. A huge PITA for everybody. Made Linux look like shit.
When PA came around a bunch of people were all upset that now their cherished hacks and workarounds were completely ignored. Instead of allowing users to 'fix' their problems through elaborate and confusing system of settings, PA just depended on the drivers to do their job... correctly. And hence a huge number of bugs came to the surface. Most of which has been fixed by now.
Last edited by drag; 09-27-2011 at 04:20 PM.
Yes. Completely unjustified that no one got it configured correctly except for the developers. :-)
It added so many new and interesting issues. Even recently with ubuntu the mic still doesn't work properly (why is it showing my one channel mic with 2 channels, with them by default locked together, with one channel canceling out the other channel? Allot of chat programs auto adjust the mic volume, which causes them to resync together, muting the mic volume. Who the heck made it so upping the volume on a mic channel mutes it!? It took me several days to figure that one out.)
Audio issues were the reason why I stopped using linux for my main computers.
Anyways.... I hope they've fixed some of their issues with their 1.0 release. (Please, please... let the issues be fixed)
If developers actually owned your hardware then they would of fixed it since they don't want their shit to be broke. Only Lusers were so tolerant of broken drivers that they would get used to having to edit a text file to be able to use a webcam microphone or whatever. It's easier to edit your asoundrc file to 'fix' a broken audio setup then it is to file a bug and have it fixed. Especially when you have a lot of people documenting it and telling you that it is how you should be fixing your stuff.
So for years and years Linux had a slew of broken drivers that were never fixed until PA came along and exposed it.
Of course there are still bugs and stuff still needs to be alerted to the developers. Many of these drivers were developed without anybody actually having physical access to the hardware, so there is a lot of guesswork.
Check your audio cable. It could be damaged. I had a similar issue. The audio artifacts and weird canceling effects made me swear up and down that it was drivers, but it turned out that the cord was damaged.It added so many new and interesting issues. Even recently with ubuntu the mic still doesn't work properly (why is it showing my one channel mic with 2 channels, with them by default locked together, with one channel canceling out the other channel?
If that is not the issue then you may just need to configure your I/O correctly. In the applet you can select what type of audio connections you want to use for your audio device. Many cards have multiplexed audio plugins... meaning that the same plug can be used for digital out/digital in or digital out/microphone in and all sorts of other combination.
Shit software. They should stop doing that. Before PA configuring Microphones was such a pain in the ass that nobody could do it right. So people with VoIP programs felt the need try to 'make it easy'. Since nobody could configure their hardware to work properly the chat program authors assumed they were the only ones that could use the MIC and acted accordingly.... which just f*ks everything up.Allot of chat programs auto adjust the mic volume, which causes them to resync together, muting the mic volume.
Audio software for the desktop should NEVER:
1. Probe for hardware
2. Configure audio levels for anything but themselves
Things like Audicity and Ekiga are nightmares. It's understandable considering that they were designed for old interfaces, but they are still effectively usability minefields.
The hardware developers did. The people that made your audio hardware. They are bound by completely different rules then the software developers.. ie: they have to make things out of real hardware with real limitations and real disadvantages... were as software developers are free to do things 'right' and make things usable. It's impossible for a typical user to understand what is happening at the hardware level.Who the heck made it so upping the volume on a mic channel mutes it!? It took me several days to figure that one out.)
Thus hardware makers design their audio mixing interfaces for driver developers... not users.
Previously Linux forced users to handle audio levels by having them interact with the hardware mixing devices directly. Things like 'alsamixer' or 'gnome-alsamixer' controlled hardware mixing devices directly. Each hardware had it's own setup and no two Linux systems would have the same set of mixing controllers, unless they were using exactly the same set of hardware drivers, hardware devices, and alsa user software versions. So it's impossible to document and it's a usability nightmare. Lots of confusing terms, mislabeled things, weird bugs, incompatible or illogical mixing settings were possible, etc etc.
With other operating systems... Like OS X, or Windows, they had everything abstracted so that when you wanted to turn on your Mic or enable digital out, or set their max audio settings it was mostly the same and well documented as far as the OS was concerned (although with Windows each audio device had their own shit proprietary software for doing settings that tended to confuse the hell out of everybody)
or trying to get my bluetooth adapter to automatically pair with my phone, and have my computer be a sink?
or set up dual stereo outputs using the front speakers for one output, and rears for the other? (ex: music over the speakers, mumble over the headphones.)
I could probably come up with a few more sort of main stream uses, and a huge pile of other ones, not least of which is lack of application support meaning everything getting lumped into the "Alsa device" bucket.
The only hardware that Pulse Audio improved the experience on are the sub $200 laptops/netbooks that don't even run windows properly, and there is a quick fix for that. Stop buying cheap hardware you cheap ass trolls.
By the way, does 1.0 fix the SUPER FUCKING TRIPLE SONIC BOOM YOU WIN! bug?
Hardly. There is about 2-3 types of cards that actually worked very well without farting around with it. I have very good audio cards, far better then any typical gaming card or '7.1 surround sound card' and it was a PITA to use before PA came along. It even had it's special mixing software just for it. Nowadays consumer hardware is good enough that going out and spending money on a audio card means that you just blew money on something you didn't need. You only need to spend money if you need a card with special I/O capabilities not normally found on consumer stuff.The only hardware that Pulse Audio improved the experience on are the sub $200 laptops/netbooks that don't even run windows properly, and there is a quick fix for that. Stop buying cheap hardware you cheap ass trolls.
And the answer for people with perfectly good hardware that does not work in LInux is not "Go buy new hardware". It's "Linux sucked for not having something that actually worked, but hey now it does for the most part".
Last edited by drag; 09-27-2011 at 08:47 PM.
Also, there simply is no reason to do mixing in hardware these days. Even the weakest CPUs can handle it easily.
But of course, you're not interested in that, as obviously all you care about is bitching about PulseAudio and Lennart Poettering.