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?