Overclock.net › Forums › Software, Programming and Coding › Operating Systems › Linux, Unix › The State Of Linux Audio
New Posts  All Forums:Forum Nav:

The State Of Linux Audio

post #1 of 30
Thread Starter 
After doing a lot of testing and gnashing my teeth, I thought I would share with OCN my observations on the state of Linux audio. Observations have been made on Ubuntu 10.04.3 LTS, running KDE 4.5.3.



KDE
  • System sounds: Works flawlessly with ALSA, JACK and PulseAudio
  • Music:
    • Amarok: Works flawlessly with ALSA, JACK and PulseAudio
    • Bangarang: Works flawlessly with ALSA, JACK and PulseAudio
    • DragonPlayer: Works flawlessly with ALSA, JACK and PulseAudio
  • Movies:
    • Kaffeine: Works flawlessly with ALSA, JACK and PulseAudio


TeamSpeak
  • Audio Output:
    • Works flawlessy with ALSA (hardware)
    • Works flawlessy with ALSA (JACK plugin)
    • Works flawlessy with ALSA (PulseAudio plugin)
    • Works flawlessly with direct PulseAudio connection

  • Audio Capture:
    • Works flawlessly with ALSA (hardware)
    • Audio crackles with ALSA (PulseAudio plugin)
    • Audio crashes after a few seconds with ALSA (JACK plugin)
    • Works flawlessly with direct PulseAudio connection


VLC
  • Music:
    • Audio works flawlessly with ALSA, JACK and PulseAudio
  • Movies (DVD):
    • Audio works flawlessy with ALSA (hardware)
    • Audio crashes after a while with ALSA (JACK plugin)
    • Audio works flawlessly with ALSA (PulseAudio plugin)
    • Voice soundtrack inaudible with direct JACK connection
    • Audio works flawlessly with direct PulseAudio connection

WINE
  • World of Warcraft:
    • Audio works flawlessly with ALSA (hardware)
    • Audio works flawlessly with ALSA (JACK plugin)
    • Audio is poor quality with ALSA (PulseAudio plugin)
    • Audio works flawlessly with direct JACK connection (driver removed from WINE 1.3.24+)


The main annoyance is WINE's poor quality (read: choppy) audio with the ALSA->PulseAudio plug-in (everything else seems to work with that plug-in fairly well, i.e. VLC).

If this worked then I could easily accommodate the rest of the applications (VLC, TeamSpeak). I don't know if this is an Ubuntu-specific issue, or an issue with the ALSA->PulseAudio plug-in. Unfortunately, there is no direct PulseAudio driver for WINE; everything is through either ALSA or OSS (or JACK with older releases).

The second annoyance is VLC. It seems that VLC does not mix audio properly when connected to JACK directly; the voice soundtrack on a movie is inaudible. Using the ALSA->JACK plug-in helps, but the audio crashes and gets stuck on continuous loop after a couple of minutes. Using PulseAudio directly or with the ALSA->PulseAudio plug-in works fine.

So as you can see, I end up having to run a patchwork of configs and audio servers to accommodate the different applications I use. I have to run JACK as the main sound server (to accommodate WINE), and then connect PulseAudio to JACK (to accommodate TeamSpeak). I then alter .asoundrc to use the ALSA->PulseAudio plugin (to accommodate movies in VLC), and stick with WINE 1.3.24 (current version is 1.3.28) in order to use the JACK driver.

Has anyone else had this kind of experience? Did you ever find a way around it? What other distributions exhibit this kind of mess (to put it bluntly)?
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
post #2 of 30
Linux audio is often in a state of redesign from my observations. The problem is there isn't one good solid API or interface to drivers at all. It makes the whole thing very messy and overly abstracted. I really don't know when or if it will ever get fixed.
post #3 of 30
Thread Starter 
I think the best direction that Linux can take for general purpose audio is to use the ALSA interface since it seems to make a better fist of handling things like positional audio, and then use ALSA plug-ins to connect to sound servers.

The trick here is to make sure that the plug-ins are of the highest quality. This would make for a consistent user experience, and would save developers having to support three or four different sound interfaces - ALSA, ESD, JACK and PulseAudio - rather than just one (ALSA).

I also think that JACK is a far better sound server than PulseAudio (on Ubuntu anyway), but that's just based on anecdotal experience.
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
post #4 of 30
Quote:
Originally Posted by parityboy View Post
I think the best direction that Linux can take for general purpose audio is to use the ALSA interface since it seems to make a better fist of handling things like positional audio, and then use ALSA plug-ins to connect to sound servers.

The trick here is to make sure that the plug-ins are of the highest quality. This would make for a consistent user experience, and would save developers having to support three or four different sound interfaces - ALSA, ESD, JACK and PulseAudio - rather than just one (ALSA).

I also think that JACK is a far better sound server than PulseAudio (on Ubuntu anyway), but that's just based on anecdotal experience.

Honestly, I think alot of the problem is that the linux community as far as developers go, is like cat herding. They are more interested in experimentation vrs generally making the OS really solid. I am not talking about the kernel folks. I am talking about the people building the OS's on top of the kernel. There are other problems like abi/api breakage that go on constantly.

What Linux as a community really needs to do, is sit down and have a cohesive design and implementation conference and hammer this stuff out.

either that or you can come join us over at the Haiku Os project. Consistent approach, all the power of Unix with the ease of use of GUI and its light, fast clean and minimally abstracted. BTW Haiku audio is EXCELLENT when it has functional drivers. It just works !

Thats why I moved to the Haiku community, I just couldn't get anything working properly on Linux and I lacked the knowledge to code fix's myself.
post #5 of 30
Thread Starter 
Quote:
What Linux as a community really needs to do, is sit down and have a cohesive design and implementation conference and hammer this stuff out.
Like you say, it'd be like stacking marbles in a corner. I think what Linux really needs is something that's worked in the closed source world for a very long time - the beneficial dictatorship. One major distribution needs to take the bull by the horns, and drag everyone else along with them.

Don't put it up for a vote, just go ahead and do it. Standardise on ALSA, and fix the soundserver plugins so that they work well with all applications. It would then be relatively simple to configure .asoundrc to reflect whichever sound server has been installed.

I might take a look at Haiku actually. Does it work in a VM?
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
post #6 of 30
Quote:
Originally Posted by parityboy View Post
Like you say, it'd be like stacking marbles in a corner. I think what Linux really needs is something that's worked in the closed source world for a very long time - the beneficial dictatorship. One major distribution needs to take the bull by the horns, and drag everyone else along with them.

Don't put it up for a vote, just go ahead and do it. Standardise on ALSA, and fix the soundserver plugins so that they work well with all applications. It would then be relatively simple to configure .asoundrc to reflect whichever sound server has been installed.

I might take a look at Haiku actually. Does it work in a VM?
Yeah, and they just wrapped up a GSOC Virtualbox add on's project this year.

I don't like ALSA. Have a gander over the BeOS, Haiku media system. Way better design.
post #7 of 30
Quote:
Originally Posted by SCollins View Post
Yeah, and they just wrapped up a GSOC Virtualbox add on's project this year.

I don't like ALSA. Have a gander over the BeOS, Haiku media system. Way better design.
Might as well just suggest OSS4? ALSA though is seriously in much better affairs than OSS4... MUCH better. OSS4 is good and I love it but it doesn't have the active support that ALSA does. [edit] OSS4 sounds loads better though, which if you can run ends up being pretty decent. I did have mic issues, didn't bother to fix though.

ALSA itself has no problems, really if a program has direct ALSA out it should work. What we have is too many audio plugins doing the same thing. We kind of took that farther and made too many sound servers as well. I kind of wish we would have stuck with dmix or something and just have the different sound servers work with their associated software. Kmix would only route KDE associated software sharing the resources with dmix.

Anyways, enough of that. Back to the OP!

1) Wine and PulseAudio don't work well, period. That plugin is a temp fix, if it's not already implamented. Your best option is to turn off PulseAudio when using wine. If you don't like that... Well I would say cry to the wine devs but they will tell you where you can stick it, so your SOL.

2) You have all ALSA programs, as in they all output to dmix (alsa) perfectly. Why on earth! No really, why on earth are you not just going with vanilla ALSA?

Do you have problems with hardware recognition? Do you need individual channel control, such as windows audio being able to control the different audio streams of applications? Do you require any of the extra features PulseAudio uses?

The main problem I see is people trying to complicate things with stuff that they do not need. I always tell people to configure ALSA properly if they can and not use any sound server alternatives. The best way to output to ALSA is through it's native format, ALSA.

Oh, try Mplayer (smplayer/umplayer for gui). It really does have more options than VLC. Plus, mplayer just owns.
Current Rig
(14 items)
 
  
CPUMotherboardGraphicsRAM
FX-8350 4.6GHz@1.44v GA-990FXA-UD3 R4.0 HD 7950 (1100/1450) 8G Muskin DDR3 1866@8CLS 
Hard DriveOptical DriveOSMonitor
1TB WD LiteOn DVD-RW DL Linux/Windows 19" Phillips TV 1080p 
PowerCaseMouseMouse Pad
OCZ 600W Generic Junk Logitech MX400 Generic Junk 
Audio
SBL 5.1 
  hide details  
Reply
Current Rig
(14 items)
 
  
CPUMotherboardGraphicsRAM
FX-8350 4.6GHz@1.44v GA-990FXA-UD3 R4.0 HD 7950 (1100/1450) 8G Muskin DDR3 1866@8CLS 
Hard DriveOptical DriveOSMonitor
1TB WD LiteOn DVD-RW DL Linux/Windows 19" Phillips TV 1080p 
PowerCaseMouseMouse Pad
OCZ 600W Generic Junk Logitech MX400 Generic Junk 
Audio
SBL 5.1 
  hide details  
Reply
post #8 of 30
Actually there was really nothing wrong with Open Sound, other then someone decided to reinvent the wheel vrs extending and cleaning up the API.
post #9 of 30
Quote:
Originally Posted by SCollins View Post
Actually there was really nothing wrong with Open Sound, other then someone decided to reinvent the wheel vrs extending and cleaning up the API.
OSS3 was closed, the owner stopped maintaining it. It was either create hacks or start from scratch. Since the source wasn't released it was easier to start from scratch to get what was required.
Current Rig
(14 items)
 
  
CPUMotherboardGraphicsRAM
FX-8350 4.6GHz@1.44v GA-990FXA-UD3 R4.0 HD 7950 (1100/1450) 8G Muskin DDR3 1866@8CLS 
Hard DriveOptical DriveOSMonitor
1TB WD LiteOn DVD-RW DL Linux/Windows 19" Phillips TV 1080p 
PowerCaseMouseMouse Pad
OCZ 600W Generic Junk Logitech MX400 Generic Junk 
Audio
SBL 5.1 
  hide details  
Reply
Current Rig
(14 items)
 
  
CPUMotherboardGraphicsRAM
FX-8350 4.6GHz@1.44v GA-990FXA-UD3 R4.0 HD 7950 (1100/1450) 8G Muskin DDR3 1866@8CLS 
Hard DriveOptical DriveOSMonitor
1TB WD LiteOn DVD-RW DL Linux/Windows 19" Phillips TV 1080p 
PowerCaseMouseMouse Pad
OCZ 600W Generic Junk Logitech MX400 Generic Junk 
Audio
SBL 5.1 
  hide details  
Reply
post #10 of 30
Thread Starter 
@mushroomboy

You're right in that all the programs I use can interface with ALSA. The problem is that dmix doesn't seem to work on my distro, and I need WINE and TeamSpeak to happily co-exist, audio-wise.

I also find that VLC generally does a better job of playing DVD .iso files than either MPlayer or Kaffeine; it handles the menus and navigation better. Additionally, the ALSA->PulseAudio plugin works fine with other applications, it just screws up with WINE, leading me to believe that WINE is actually the culprit.

What I don't understand is why the ALSA developers didn't bother to write a decent sound server when they developed the ALSA architecture. Something that combines the best of JACK (performance) and PulseAudio (features, like network audio). It would have been a natural fit.
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
Ryzen
(12 items)
 
  
CPUMotherboardGraphicsRAM
Ryzen 7 1700 Gigabyte GA-AB350M Gaming 3 Palit GT-430 Corsair Vengeance LPX CMK16GX4M2B3000C15 
Hard DriveCoolingOSMonitor
Samsung 850 EVO AMD Wraith Spire Linux Mint 18.x Dell UltraSharp U2414H 
KeyboardPowerCaseMouse
Apple Basic Keyboard Thermaltake ToughPower 850W Lian-Li PC-A04B Logitech Trackman Wheel 
  hide details  
Reply
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Linux, Unix
Overclock.net › Forums › Software, Programming and Coding › Operating Systems › Linux, Unix › The State Of Linux Audio