Hi Benny,

I changed from Mandrake's AlsaRPMs(=0.9.0rc2) to tarballs
(0.9.0rc6) now. I noticed some (not-)changes:
* the DAC control slider now works for left & right channel (it worked
only for one channel before). Thanks!
* the DSP hang problem when switching the SPDIF controls is gone! Great!
* the DC offset/popping noise/distortion problem remains (I have to
reload the module after rebooting to eliminate it. What could have
changed while loading the module the second time -- or perhaps while
unloading the module before??)
* I tried what you've written below to get 4 channel out working -- but
with no success:
aplay -D hw:0,1 or -D hw:0,2 plays the wav file, but I don't hear
anything from my first or second output. If I playback to -D hw:0,0, I
can hear the same sound from both outputs. (I.e. the driver behaves like
before. But I'm absolutely sure that I have installed the new cs46xx
module after compiling)
I don't know enough about the internals of the driver, but do I have to
change some other lines to put the codec in the extended mode? Should I
notice any change in alsamixer if I get two independent stereo outputs
(e.g. a second pcm slider; I don't see changes)?

And now for something (not) completely different :^)
The SPDIF input seems to get out of sync after unmuting or bit errors
(or ...?) sometimes. You have to mute/unmute the SPDIFin to get
undistorted sound. So I can't use the linux driver to record from my
digital radio (48kHz spdif output). As this doesn't happen with the
win98 driver, I compared the SPDIF input behaviour of my soundcard
under windows and linux:
* under linux you can hear the sound immediately after switching on the
SPDIF input (unmuting)
* under windows you'll hear the sound after some seconds. In this time,
the driver seems to find the sample rate and to sync to the SPDIF
stream. (Do you know whether the win or linux driver does some error
checking/fixing for SPDIF input?) Does there exist some DSP code to
perform these tasks (obtain sample rate and sync to input signal)? In
the 'cwcspud.dat' file of the win98 wdm driver, there is written
something about a "SPDIF Monitor" task (uses cwcsndct.osp code).

*another problem with SPDIF input is the fact that you can record the
PCM output only to get the SPDIF stream. (Bad, if any program/shell
causes pcm output while recording ...). The behaviour of the old win98
driver shipped with the card was quite similar. With the newer wdm
driver from terratec, you can select the SPDIF input as the only input
to be recorded. Perhaps the newer win98 driver contains better DSP code
you could use for your driver? I don't know if it really uses other DSP
code or if the driver is written in another way somehow.

If I could provide some additional information needed for solving the DC
offset problem, or test some source modifications to enable 4channel
output -- just let me know...

fe

Benny Sjostrand wrote:
>>[...] Btw, do you have any idea how
>> to get 4 indep. channels working with this one codec?
>>
> Finnally something that I believe I got a answer -;)
> In theory the aproach should be:
> [...]
> 1 - AC97 CODEC configuration:
> Front channel left and right goes through slot 3 and 4
> Ext. left and right goes through slot 5 and 11
> Case 1, only one AC97 CODEC, 4 channel output is not supported yet by
> the current driver ...
>
> Now, in dsp_spos.c example:
> /* create the CODEC output task */
> codec_out_scb =
> cs46xx_dsp_create_codec_out_scb(chip,"CodecOutSCB_I",0x0010,0x0000,
> MASTERMIX_SCB_ADDR,
> CODECOUT_SCB_ADDR,timing_master_scb,
> SCB_ON_PARENT_SUBLIST_SCB);
>
> creates a task in DSP that will output samples on slot 3 and 4 from the
> following mapping:
> AC 97 primary and secondary links output slot 3 0x000 - 0x00F
> AC 97 primary and secondary links output slot 4 0x010 - 0x01F
> AC 97 primary and secondary links output slot 5 0x020 - 0x02F
> AC 97 primary and secondary links output slot 6 0x030 - 0x03F
> AC 97 primary and secondary links output slot 7 0x040 - 0x04F
> AC 97 primary and secondary links output slot 8 0x050 - 0x05F
> AC 97 primary and secondary links output slot 9 0x060 - 0x06F
> AC 97 primary and secondary links output slot 10 0x070 - 0x07F
> AC 97 primary and secondary links output slot 11 0x080 - 0x08F
> AC 97 primary and secondary links output slot 12 0x090 - 0x09F
>
> 0x0000 is the address to the left-channel slot and 0x0010 is the offset
> to get to the right-channel slot,
> finally, to have 4 channel on the Terratec the following change (in pure
> theory should work) in dsp_spos.c
>
> sec_codec_out_scb =
> cs46xx_dsp_create_codec_out_scb(chip,"CodecOutSCB_II",0x0010,0x0040,
> REAR_MIXER_SCB_ADDR,
> SEC_CODECOUT_SCB_ADDR,codec_in_scb,
> SCB_ON_PARENT_NEXT_SCB);
>
> (which currenlty is configured to output sample on slot 7 and 8 on
> extended CODEC) change to:
>
> sec_codec_out_scb =
> cs46xx_dsp_create_codec_out_scb(chip,"CodecOutSCB_II",0x0060,0x0020,
> REAR_MIXER_SCB_ADDR,
> SEC_CODECOUT_SCB_ADDR,codec_in_scb,
> SCB_ON_PARENT_NEXT_SCB);
>
> /Benny
>
> PS. sorry, forgot that this was the alsa-user list -;)
yep, but alsa-users are linux-users, so they are used to use compilers ;-)








-------------------------------------------------------
This SF.net email is sponsored by: Get the new Palm Tungsten T handheld. Power & Color in a compact size! http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to