Great discovery!, probably the stream can be inverted several times when it processedthrough
it seems that volumes 0-0x7fff ramp up volumes, then 8000-ffff go back down... but with opposite phases. So...
through the SCB tree. (PCMReader->SrcTaskSCB->MasterMixSCB->CodecOut)
Almost all SCB's got a volume field.
and it sounds correct (for CD analog passthru and PCM at least).I guess that the only thing left is to change the initial volume values set when driver is loaded
(note - you'll need to open alsamixer and adjust the DAC volume before the 'fix' works, I haven't found where it gets programmed on driver load.
in dsp_spos.c line 260:
/* maximize volume */
ins->dac_volume_right = 0x8000;
- ins->dac_volume_left = 0x8000;
+ ins->dac_volume_left = 0x7fff;
ins->spdif_input_volume_right = 0x8000;
- ins->spdif_input_volume_left = 0x8000;
+ ins->spdif_input_volume_left = 0x7fff;
Now, I have no idea if this is correct, if I just broke SPDIF (no reciever), rear speakers (ditto, I don't have any) but it fixes my case anyway, so that's a start. If anyone can test more of these cases, that might be good.If it works and solves a problem then it must correct -:)
/Benny
-------------------------------------------------------
This SF.net email is sponsored by: Microsoft Visual Studio.NET comprehensive development tool, built to increase your productivity. Try a free online hosted session at:
http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel