I have a CMI8738-MC6 (model 55) built into my motherboard. Originally quite dissapointed with the lack of support for hardware mixing in the driver, I discovered dmix to be a very acceptable solution for most of my normal desktop needs.

However once I started to explore the realm of 5.1 surround things got alot more confusing and less satisfactory.

So far i have determined that for this sound card, "hw:0,0" or pcm0p is the "primary" pcm device and seems to be two channels only. Playing a DVD in XINE using the default "surround51" device, I explored the hw_params of the various playback pcms listed and figured that "hw:0,1" or pcm1p is used for 5.1 surround.

Now, here's the problem. If the programs I want to use are just desktop type programs (GAIM, Mozilla, XMMS for 2 channel music), having dmix setup on hw:0,0 is perfectly sufficient - I can tell alsa-aware programs to use the dmix device, and the "aoss" wrapper seems to work well for everything else.

But I quickly discovered that if I'm doing any dmix-2-channel-stuff, I can't watch dvds in 5.1, and vice versa.

First question is - is that normal behavior? It seems that if surround51 uses "hw:0,1" and 2 channel stuff uses "hw:0,0", there shouldn't be any conflict REGARDLESS of dmix. What's the deal here?

And second question - I know that dmix only supports 2 channels. However, is there anyway to split the channels of surround51 into 3 sets of 2 channels, dmix each set of 2, then recombine the dmixed channels into one virtual 6-channel device?

I tried a few different ways of accomplishing #2, with no success. My current best effort is as follows - (/etc/asound.conf)

pcm.dmix01 {
  type dmix
  ipc_key 1024
  slave {
    pcm "hw:0,1"
    period_time 0
    period_size 1024
    buffer_size 4096
    rate 48000
  }

  bindings.0 0
  bindings.1 1
}

pcm.dmix23 {
  type dmix
  ipc_key 1024
  slave {
    pcm "hw:0,1"
    period_time 0
    period_size 1024
    buffer_size 4096
    rate 48000
  }

  bindings.0 2
  bindings.1 3
}

pcm.dmix45 {
  type dmix
  ipc_key 1024
  slave {
    pcm "hw:0,1"
    period_time 0
    period_size 1024
    buffer_size 4096
    rate 48000
  }

  bindings.0 4
  bindings.1 5
}

pcm.dmixs51 {
  type multi
  slaves.a.pcm "dmix01"
  slaves.a.channels 2
  slaves.b.pcm "dmix23"
  slaves.b.channels 2
  slaves.c.pcm "dmix45"
  slaves.c.channels 2

  bindings.0.slave a
  bindings.0.channel 0
  bindings.1.slave a
  bindings.1.channel 1
  bindings.2.slave b
  bindings.2.channel 0
  bindings.3.slave b
  bindings.3.channel 1
  bindings.4.slave c
  bindings.4.channel 0
  bindings.5.slave c
  bindings.5.channel 1

}

pcm.s51 {
  type plug
  slave {
    pcm "dmixs51"
    channels 6
    rate 48000
  }

  ttable.0.0 1
  ttable.1.1 1
  ttable.2.2 1
  ttable.3.3 1
  ttable.4.4 1
  ttable.5.5 1
}



Any help or insight with this dilemma would be much appreciated - I'd much rather keep using my built-in sound than slap in an SBlive5.1. That would involve a shutdown and ruining my glorious uptime. ;)

tia

-Brady




--- [This E-mail has been scanned by Declude Virus running on mail.rwgusa.net and is virus-free]



-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to