This probably isn't the place to ask this question, but I am not sure where is. Feel free to point me somewhere else if there is a better place : ). I am pretty new to linux audio and am having some trouble getting a grasp on it all.
Basically i am using a WM8580 Codec on MCASP0 of the AM335x. I have the codec driver all working and i can play audio and it comes out great on VOUT1 of the Codec. The problem is when i try to route to the other channels. The codec has three output channels VOUT1, VOUT2, and VOUT3. I can't seem to get anywhere except VOUT1. I put the following into my asound.conf file:
pcm.dmixed {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
rate 48000
channels 4
}
bindings {
0 0
1 1
2 2
3 3
}
}
pcm.frontx {
type plug
slave {
pcm "dmixed"
channels 4
}
ttable.0.0 1
ttable.1.1 1
}
pcm.rearx {
type plug
slave {
pcm "dmixed"
channels 4
}
ttable.0.2 1
ttable.1.3 1
}
pcm.bothx {
type plug
slave {
pcm "dmixed"
channels 4
}
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
}
So what happens is when i just aplay straight to the card (aplay -D plughw:0,0 file.wav) it sounds great except it only comes out the VOUT1 channels. When i try to play out say VOUT2 (aplay -D rearx file.wav) the sound comes out of VOUT1 still instead and is slower. So it seems what is happening is basically when i up the channels from 2 to 4, the first 2 channels are transmitted at the first frame sync then it waits til the next frame sync and transmits channels 3&4. This is creating my half speed sound on VOUT1 and resulting in no sound on VOUT2.
So any ideas of what the issue is? Do i have something wrong in the asound.conf or maybe something that i don't have setup correctly as far as mcasp0 is concerned?