[LAU] Hideous dmix, alsa, jack, realtime and mixing mess

Simon Williams simon at systemparadox.co.uk
Fri Sep 21 20:14:24 EDT 2007


AAAARRRGGHHHH!!! FOR GOODNESS SAKE!!!!!!!
Hardware manufacturers are now driving me totally insane. Are they all 
completely brain dead? How in the world is anyone actually supposed to 
use the appalling software sound cards they put in laptops and on 
motherboards these days?

My previous laptop, a T20, had a CS46xx card, which was amazing- it had 
a hardware mixer. Actually it wasn't amazing. It was an ordinary sound 
card. The cards which don't have hardware mixing are useless pieces of 
******* ****.

I now have an IBM ThinkPad T23, which has one of the censored types of 
sound cards above, which is intel8x0 based. It is not capable of 
hardware mixing. At the time I made this "upgrade" ALSA did not ship 
with dmix enabled by default, and it drove me totally insane trying to 
get it to work (more on why later). In the end I gave up and settled 
with one audio application at a time.

Then one day, to my delight I read that ALSA was now shipping with dmix 
enabled by default. It sortof worked, but to this day I have not 
actually been able to use it properly, because any application which 
doesn't use dmix blocked the soundcard anyway, so if any one of my 
applications didn't use dmix I was back to one at a time.
(I'm looking at YOU, flash plugin (which, incidentally, also comes under 
the category of "useless ****ing ****")- more on that later as well)

With the addition of a midi keyboard I now also have the problem of 
realtime. So I added jack. And my current jack setup isn't acceptable 
either. The main issue with jack is again the lack of hardware mixing. I 
have to manually start the jack server when I want it and shut it down 
if I want to play audio from any other application.

Actually, whilst I'm at it could somebody please explain why
	fluidsynth --> ALSA
lags, yet
	fluidsynth --> jack --> ALSA
does not? How in the world does adding yet another layer of software 
actually SPEED UP the sound output??!?!?!?!?

Anyway, with the addition of MIDI I then find out that these cheap 
software soundcards are also lacking MIDI sequencers, requiring software 
to do that as well. Fine. I eventually got that working, and even in 
(almost) realtime.

But now I want to play along to an mp3 track. And here a large number of 
unacceptable hacks and compromises combine, eventually forcing me to go 
right back to the beginning.

My initial thought was to try and get my other applications to use jack 
directly, which would have the added bonus of mixing them nicely. Great 
in theory, but xmms-jack didn't work and it looks like most other 
applications will require similar hacks, which for the most part are not 
available. I can't even get some applications to use ALSA instead of 
OSS, so I don't really stand much chance of getting them to use jack.

And then I found this...
http://www.articleworld.org/index.php/How_to_force_ALSA_applications_to_use_JACK
which looked great, but it uses /etc/asound.conf and ~/.asoundrc. Why is 
this a problem? Well, aside from the horrific memories it brings back of 
trying to get dmix to work, I am never actually sure if either of those 
two files are actually being used, if the syntax is correct, or if the 
particular contents I found on the internet should actually work. I am 
convinced that there is some voodoo involved. The site given above also 
mentions restarting the alsa rc script to make sure that the changes 
take place, but since there isn't actually an alsa service this seems 
like complete rubbish to me. The init script for alsa just saves and 
loads volume levels. Besides, non root users can't run rc scripts, so 
that's even more pointless with asoundrc files.

I have a 486 in my loft with an ISA AWE32 which I am sure can do better 
than this.

So, to summarise:
1. How do you tell an application to use dmix (an old and probably 
irrelevant question, but I want to know anyway)?
2. Why does adding an extra layer of software (jack) in between 
fluidsynth and ALSA speed up the audio output?
3. How do I get proprietary software (which for some reason all still 
uses OSS)(flash, teamspeak) to use ALSA?
3a. Or at the very least get the flash plugin to release the sound 
device once it's finished, without requiring the whole of firefox to be 
restarted?
4. How do I check that /etc/asound.conf and/or ~/.asoundrc are actually 
being used?
5. How can I force applications to use jack (at the least I need xmms, 
vlc, mplayer and preferably flash)?

If I buy a pcmcia soundcard is it worth it? Any recommendations? Will it 
  have hardware mixing and a hardware synth? Why are they so damn 
expensive? I'm currently looking at 70 pounds on ebay for a Creative 
Audigy 2, which seems totally ridiculous seeing as my midi controller 
only cost 50. I'm loathed to buy a USB one (especially as I only have 
USB1.1)- anyone got any comments on those?

The whole point of buying a midi controller instead of a normal keyboard 
was that it was supposed to be cheaper and more portable. It doesn't 
seem to be going that way.

Any suggestions?
Simon



More information about the Linux-audio-user mailing list