[alsa-devel] Sampling rate limited to 48 kHz
Hi,
I have Turtle Beach Catalina Card (Envy24HT-S, VT1616 + WM8728) which I belive is exactly the same as Mad Dog Entertainer 7.1 ( http://techreport.com/reviews/2004q1/maddog-entertainer/index.x?pg=2 )
Card is recognized as Chaintech AV-710 but works very well ( so far I tested analog out through WM8728 and digital out ).
My problem is : I can't set sampling rate higher than 48000 on SPDIF out.
I know this card can go higher because :
1. It can go higher under Windows (High Sample Rate 2-channel mode)
2. If I "flash" eeprom with M-Audio Revolution 7.1 settings card can sync with my external DAC up to 96 kHz (DAC limit) and I can play 96kHz .wav file. This is not the way to go for me (analog part and SPDIF-in is lost)
I found this :
ice1724.c:390:static int get_max_rate(struct snd_ice1712 *ice) ice1724.c-391-{ ice1724.c-392- if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) { ice1724.c-393- if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720) ice1724.c-394- return 192000; ice1724.c-395- else ice1724.c-396- return 96000; ice1724.c-397- } else ice1724.c-398- return 48000; ice1724.c-399-} ice1724.c-400-
Tried to play with it, but no luck - I'm not developer :-)
How can I help with making ice1724 driver even better ?
Thanks, Marek
# cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.14rc1. Compiled on Apr 2 2007 for kernel 2.6.18.6.
# cat /proc/asound/card0/ice1724 Chaintech AV-710 at 0xd000, irq 11
EEPROM: Subvendor : 0x12142417 Size : 28 bytes Version : 1 System Config : 0x42 ACLink : 0x2 I2S : 0x10 S/PDIF : 0xc3 GPIO direction : 0xff GPIO mask : 0xff GPIO state : 0xff Extra #18 : 0x1 Extra #19 : 0x8 Extra #20 : 0x0 Extra #21 : 0x0 Extra #22 : 0x0 Extra #23 : 0x0 Extra #24 : 0x0 Extra #25 : 0x0 Extra #26 : 0x0 Extra #27 : 0x0
Registers: PSDOUT03 : 0x00000000 CCS00 : 0x00 CCS01 : 0xa0 CCS02 : 0x00 CCS03 : 0x00 CCS04 : 0x42 CCS05 : 0x02 CCS06 : 0x10 CCS07 : 0xc3 CCS08 : 0x00 CCS09 : 0x00 CCS0a : 0x00 CCS0b : 0x00 CCS0c : 0x00 CCS0d : 0x0a CCS0e : 0x00 CCS0f : 0x00 CCS10 : 0x37 CCS11 : 0x06 CCS12 : 0x01 CCS13 : 0x80 CCS14 : 0x00 CCS15 : 0xea CCS16 : 0xff CCS17 : 0x00 CCS18 : 0xff CCS19 : 0x00 CCS1a : 0x00 CCS1b : 0x00 CCS1c : 0x00 CCS1d : 0x00 CCS1e : 0x2a CCS1f : 0x00 MT00 : 0x00 MT01 : 0x08 MT02 : 0x00 MT03 : 0x08 MT04 : 0x5a MT05 : 0x08 MT06 : 0x21 MT07 : 0x82 MT08 : 0x00 MT09 : 0x00 MT0a : 0x00 MT0b : 0x00 MT0c : 0x00 MT0d : 0x00 MT0e : 0x00 MT0f : 0x00 MT10 : 0x40 MT11 : 0x1f MT12 : 0xa8 MT13 : 0x0d MT14 : 0x2f MT15 : 0x78 MT16 : 0x00 MT17 : 0x00 MT18 : 0x80 MT19 : 0x03 MT1a : 0x00 MT1b : 0x00 MT1c : 0xff MT1d : 0x07 MT1e : 0x00 MT1f : 0x00 MT20 : 0x20 MT21 : 0x01 MT22 : 0xac MT23 : 0x0d MT24 : 0xb7 MT25 : 0x7f MT26 : 0xff MT27 : 0x07 MT28 : 0x00 MT29 : 0x00 MT2a : 0x00 MT2b : 0x00 MT2c : 0x00 MT2d : 0x00 MT2e : 0x00 MT2f : 0x00
# lspci -vvv
00:0b.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01) Subsystem: VIA Technologies Inc. AMP Ltd AUDIO2000 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at d000 [size=32] Region 1: I/O ports at cc00 [size=128] Capabilities: [80] Power Management version 1 Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME-
At Mon, 2 Apr 2007 23:44:53 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
Hi,
I have Turtle Beach Catalina Card (Envy24HT-S, VT1616 + WM8728) which I belive is exactly the same as Mad Dog Entertainer 7.1 ( http://techreport.com/reviews/2004q1/maddog-entertainer/index.x?pg=2 )
Card is recognized as Chaintech AV-710 but works very well ( so far I tested analog out through WM8728 and digital out ).
My problem is : I can't set sampling rate higher than 48000 on SPDIF out.
How did you test it? Which program and which parameters? ice1724 driver itself supports up to 192kHz for SPDIF output.
Takashi
I know this card can go higher because :
It can go higher under Windows (High Sample Rate 2-channel mode)
If I "flash" eeprom with M-Audio Revolution 7.1 settings card can sync with my external DAC up to 96 kHz (DAC limit) and I can play 96kHz .wav file. This is not the way to go for me (analog part and SPDIF-in is lost)
I found this :
ice1724.c:390:static int get_max_rate(struct snd_ice1712 *ice) ice1724.c-391-{ ice1724.c-392- if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) { ice1724.c-393- if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720) ice1724.c-394- return 192000; ice1724.c-395- else ice1724.c-396- return 96000; ice1724.c-397- } else ice1724.c-398- return 48000; ice1724.c-399-} ice1724.c-400-
Tried to play with it, but no luck - I'm not developer :-)
How can I help with making ice1724 driver even better ?
Thanks, Marek
# cat /proc/asound/version Advanced Linux Sound Architecture Driver Version 1.0.14rc1. Compiled on Apr 2 2007 for kernel 2.6.18.6.
# cat /proc/asound/card0/ice1724 Chaintech AV-710 at 0xd000, irq 11
EEPROM: Subvendor : 0x12142417 Size : 28 bytes Version : 1 System Config : 0x42 ACLink : 0x2 I2S : 0x10 S/PDIF : 0xc3 GPIO direction : 0xff GPIO mask : 0xff GPIO state : 0xff Extra #18 : 0x1 Extra #19 : 0x8 Extra #20 : 0x0 Extra #21 : 0x0 Extra #22 : 0x0 Extra #23 : 0x0 Extra #24 : 0x0 Extra #25 : 0x0 Extra #26 : 0x0 Extra #27 : 0x0
Registers: PSDOUT03 : 0x00000000 CCS00 : 0x00 CCS01 : 0xa0 CCS02 : 0x00 CCS03 : 0x00 CCS04 : 0x42 CCS05 : 0x02 CCS06 : 0x10 CCS07 : 0xc3 CCS08 : 0x00 CCS09 : 0x00 CCS0a : 0x00 CCS0b : 0x00 CCS0c : 0x00 CCS0d : 0x0a CCS0e : 0x00 CCS0f : 0x00 CCS10 : 0x37 CCS11 : 0x06 CCS12 : 0x01 CCS13 : 0x80 CCS14 : 0x00 CCS15 : 0xea CCS16 : 0xff CCS17 : 0x00 CCS18 : 0xff CCS19 : 0x00 CCS1a : 0x00 CCS1b : 0x00 CCS1c : 0x00 CCS1d : 0x00 CCS1e : 0x2a CCS1f : 0x00 MT00 : 0x00 MT01 : 0x08 MT02 : 0x00 MT03 : 0x08 MT04 : 0x5a MT05 : 0x08 MT06 : 0x21 MT07 : 0x82 MT08 : 0x00 MT09 : 0x00 MT0a : 0x00 MT0b : 0x00 MT0c : 0x00 MT0d : 0x00 MT0e : 0x00 MT0f : 0x00 MT10 : 0x40 MT11 : 0x1f MT12 : 0xa8 MT13 : 0x0d MT14 : 0x2f MT15 : 0x78 MT16 : 0x00 MT17 : 0x00 MT18 : 0x80 MT19 : 0x03 MT1a : 0x00 MT1b : 0x00 MT1c : 0xff MT1d : 0x07 MT1e : 0x00 MT1f : 0x00 MT20 : 0x20 MT21 : 0x01 MT22 : 0xac MT23 : 0x0d MT24 : 0xb7 MT25 : 0x7f MT26 : 0xff MT27 : 0x07 MT28 : 0x00 MT29 : 0x00 MT2a : 0x00 MT2b : 0x00 MT2c : 0x00 MT2d : 0x00 MT2e : 0x00 MT2f : 0x00
# lspci -vvv
00:0b.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01) Subsystem: VIA Technologies Inc. AMP Ltd AUDIO2000 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at d000 [size=32] Region 1: I/O ports at cc00 [size=128] Capabilities: [80] Power Management version 1 Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
2007/4/3, Takashi Iwai tiwai@suse.de:
At Mon, 2 Apr 2007 23:44:53 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
Hi,
I have Turtle Beach Catalina Card (Envy24HT-S, VT1616 + WM8728) which I belive is exactly the same as Mad Dog Entertainer 7.1 ( http://techreport.com/reviews/2004q1/maddog-entertainer/index.x?pg=2 )
Card is recognized as Chaintech AV-710 but works very well ( so far I tested analog out through WM8728 and digital out ).
My problem is : I can't set sampling rate higher than 48000 on SPDIF out.
How did you test it? Which program and which parameters? ice1724 driver itself supports up to 192kHz for SPDIF output.
Takashi
Hi,
alsamixer - impossible to set "Multi Track Internal Clock" beyond 48000
# amixer sget "Multi Track Internal Clock" Simple mixer control 'Multi Track Internal Clock',0 Capabilities: enum Items: '8000' '9600' '11025' '12000' '16000' '22050' '24000' '32000' '44100' '48000' '64000' '88200' '96000' '176400' '192000' 'IEC958 Input' Item0: '48000' # amixer sset "Multi Track Internal Clock" 32000 Simple mixer control 'Multi Track Internal Clock',0 Capabilities: enum Items: '8000' '9600' '11025' '12000' '16000' '22050' '24000' '32000' '44100' '48000' '64000' '88200' '96000' '176400' '192000' 'IEC958 Input' Item0: '32000' # amixer sset "Multi Track Internal Clock" 44100 Simple mixer control 'Multi Track Internal Clock',0 Capabilities: enum Items: '8000' '9600' '11025' '12000' '16000' '22050' '24000' '32000' '44100' '48000' '64000' '88200' '96000' '176400' '192000' 'IEC958 Input' Item0: '44100' # amixer sset "Multi Track Internal Clock" 48000 Simple mixer control 'Multi Track Internal Clock',0 Capabilities: enum Items: '8000' '9600' '11025' '12000' '16000' '22050' '24000' '32000' '44100' '48000' '64000' '88200' '96000' '176400' '192000' 'IEC958 Input' Item0: '48000' # amixer sset "Multi Track Internal Clock" 64000 Simple mixer control 'Multi Track Internal Clock',0 Capabilities: enum Items: '8000' '9600' '11025' '12000' '16000' '22050' '24000' '32000' '44100' '48000' '64000' '88200' '96000' '176400' '192000' 'IEC958 Input' Item0: '48000' # amixer sset "Multi Track Internal Clock" 88200 Simple mixer control 'Multi Track Internal Clock',0 Capabilities: enum Items: '8000' '9600' '11025' '12000' '16000' '22050' '24000' '32000' '44100' '48000' '64000' '88200' '96000' '176400' '192000' 'IEC958 Input' Item0: '48000' # amixer sset "Multi Track Internal Clock" 96000 Simple mixer control 'Multi Track Internal Clock',0 Capabilities: enum Items: '8000' '9600' '11025' '12000' '16000' '22050' '24000' '32000' '44100' '48000' '64000' '88200' '96000' '176400' '192000' 'IEC958 Input' Item0: '48000'
My external DAC (Behringer Ultramatch Pro 2496) has leds showing current rate and I can see my card syncs up to 48000. When it is synced at 48 kHz and I play 96 kHz wav file it plays slooowly.
# aplay -v -D bitperf 96khz.wav Playing WAVE '96khz.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo Plug PCM: Linear conversion PCM (S32_LE) Its setup is: stream : PLAYBACK access : RW_INTERLEAVED format : S24_3LE subformat : STD channels : 2 rate : 96000 exact rate : 96000 (96000/1) msbits : 24 buffer_size : 8192 period_size : 2048 period_time : 21333 tick_time : 1000 tstamp_mode : NONE period_step : 1 sleep_min : 0 avail_min : 2048 xfer_align : 2048 start_threshold : 8192 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 1073741824 Slave: Hardware PCM card 0 'Chaintech AV-710' device 1 subdevice 0 Its setup is: stream : PLAYBACK access : MMAP_INTERLEAVED format : S32_LE subformat : STD channels : 2 rate : 96000 exact rate : 96000 (96000/1) msbits : 24 buffer_size : 8192 period_size : 2048 period_time : 21333 tick_time : 1000 tstamp_mode : NONE period_step : 1 sleep_min : 0 avail_min : 2048 xfer_align : 2048 start_threshold : 8192 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 1073741824
# cat ~/.asoundrc pcm.bitperf { type plug slave { pcm "hw:0,1" format S32_LE } }
Regards, Marek
At Tue, 3 Apr 2007 21:49:08 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
2007/4/3, Takashi Iwai tiwai@suse.de:
At Mon, 2 Apr 2007 23:44:53 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
Hi,
I have Turtle Beach Catalina Card (Envy24HT-S, VT1616 + WM8728) which I belive is exactly the same as Mad Dog Entertainer 7.1 ( http://techreport.com/reviews/2004q1/maddog-entertainer/index.x?pg=2 )
Card is recognized as Chaintech AV-710 but works very well ( so far I tested analog out through WM8728 and digital out ).
My problem is : I can't set sampling rate higher than 48000 on SPDIF out.
How did you test it? Which program and which parameters? ice1724 driver itself supports up to 192kHz for SPDIF output.
Takashi
Hi,
alsamixer - impossible to set "Multi Track Internal Clock" beyond 48000
Well, then it's because the EEPROM content is somehow strange. It doesn't indicate that it has I2S connection. I guess it's because the board has both ac97 and I2S codecs. It's an interesting case. We'd first need to figure out the connections of these codecs.
When you use amp.c as it is, how well does the card work? I guess you having some mixer elements like "Master", "PCM", etc. They come from ac97 (vt1616). The driver creates no mixer elements for WM8728 on the other hand.
So, the question is, when you change "Master" or "PCM", which output (front, surround, clfe, side) is affected?
Also, when you change the values in wm_inits[] in snd_vt1724_amp_init(), especially, the values for WM_ATTEN_L and WM_ATTEN_R to other values, say, 0x20 (-16dB), which outputs are affected?
Takashi k
2007/4/4, Takashi Iwai tiwai@suse.de:
At Tue, 3 Apr 2007 21:49:08 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
2007/4/3, Takashi Iwai tiwai@suse.de:
At Mon, 2 Apr 2007 23:44:53 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
Hi,
I have Turtle Beach Catalina Card (Envy24HT-S, VT1616 + WM8728) which I belive is exactly the same as Mad Dog Entertainer 7.1 ( http://techreport.com/reviews/2004q1/maddog-entertainer/index.x?pg=2 )
Card is recognized as Chaintech AV-710 but works very well ( so far I tested analog out through WM8728 and digital out ).
My problem is : I can't set sampling rate higher than 48000 on SPDIF out.
How did you test it? Which program and which parameters? ice1724 driver itself supports up to 192kHz for SPDIF output.
Takashi
Hi,
alsamixer - impossible to set "Multi Track Internal Clock" beyond 48000
Well, then it's because the EEPROM content is somehow strange. It doesn't indicate that it has I2S connection. I guess it's because the board has both ac97 and I2S codecs. It's an interesting case. We'd first need to figure out the connections of these codecs.
When you use amp.c as it is, how well does the card work? I guess you having some mixer elements like "Master", "PCM", etc. They come from ac97 (vt1616). The driver creates no mixer elements for WM8728 on the other hand.
So, the question is, when you change "Master" or "PCM", which output (front, surround, clfe, side) is affected?
Hi,
As on this photo http://support.turtlebeach.com/site/kb_ftp/586117719.asp from the left :
1. Front Out (Channels 1/2) :
Vol reg : Master, PCM
2. Rear Out (Channels 3/4) :
Works only with "Alternate Level to Surround Out" set to [on] Vol reg : Headphone, PCM
3. Center/Sub Out (Channels 5/6) :
Couldn't get sound at all.
4. Surround Out (Channels 7/8) :
Works only with "IEC958" _not_ set to "PCM Out"
Vol reg : PCM
Also, when you change the values in wm_inits[] in snd_vt1724_amp_init(), especially, the values for WM_ATTEN_L and WM_ATTEN_R to other values, say, 0x20 (-16dB), which outputs are affected?
Recompiled modules with WM_ATTEN_L and WM_ATTEN_R set to 0x0020. Played some music. Unloaded original modules (/etc/init.d/alsasound stop) Replaced /lib/modules/2.6.18.6/alsa-driver Loaded newly compiled modules (/etc/init.d/alsasound stop) Played some music. All channels sounded the same.
Regards, Marek.
At Thu, 5 Apr 2007 00:38:18 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
2007/4/4, Takashi Iwai tiwai@suse.de:
At Tue, 3 Apr 2007 21:49:08 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
2007/4/3, Takashi Iwai tiwai@suse.de:
At Mon, 2 Apr 2007 23:44:53 +0200, =?ISO-8859-2?Q?Marek_=A3awicki?= wrote:
Hi,
I have Turtle Beach Catalina Card (Envy24HT-S, VT1616 + WM8728) which I belive is exactly the same as Mad Dog Entertainer 7.1 ( http://techreport.com/reviews/2004q1/maddog-entertainer/index.x?pg=2 )
Card is recognized as Chaintech AV-710 but works very well ( so far I tested analog out through WM8728 and digital out ).
My problem is : I can't set sampling rate higher than 48000 on SPDIF out.
How did you test it? Which program and which parameters? ice1724 driver itself supports up to 192kHz for SPDIF output.
Takashi
Hi,
alsamixer - impossible to set "Multi Track Internal Clock" beyond 48000
Well, then it's because the EEPROM content is somehow strange. It doesn't indicate that it has I2S connection. I guess it's because the board has both ac97 and I2S codecs. It's an interesting case. We'd first need to figure out the connections of these codecs.
When you use amp.c as it is, how well does the card work? I guess you having some mixer elements like "Master", "PCM", etc. They come from ac97 (vt1616). The driver creates no mixer elements for WM8728 on the other hand.
So, the question is, when you change "Master" or "PCM", which output (front, surround, clfe, side) is affected?
Hi,
As on this photo http://support.turtlebeach.com/site/kb_ftp/586117719.asp from the left :
- Front Out (Channels 1/2) :
Vol reg : Master, PCM
- Rear Out (Channels 3/4) :
Works only with "Alternate Level to Surround Out" set to [on] Vol reg : Headphone, PCM
Doesn't it have "Surround" mixer controls?
- Center/Sub Out (Channels 5/6) :
Couldn't get sound at all.
Even playing with 6 or 8 channel sample files?
- Surround Out (Channels 7/8) :
Works only with "IEC958" _not_ set to "PCM Out"
Weird..
Vol reg : PCM
OK, could you show the content of "alsactl -f somefile store" in the working state? Also, you can compare files in /proc/asound/card0/codec97#0/* files between working and non-working states.
Also, when you change the values in wm_inits[] in snd_vt1724_amp_init(), especially, the values for WM_ATTEN_L and WM_ATTEN_R to other values, say, 0x20 (-16dB), which outputs are affected?
Recompiled modules with WM_ATTEN_L and WM_ATTEN_R set to 0x0020. Played some music. Unloaded original modules (/etc/init.d/alsasound stop) Replaced /lib/modules/2.6.18.6/alsa-driver Loaded newly compiled modules (/etc/init.d/alsasound stop) Played some music. All channels sounded the same.
Then this implies that the all signales go through only AC97, not WM codec. In this case, the limitation to 48kHz is correct. But, maybe we can switch the signal route dynamically between AC-link and I2S by AC97_CFG register.
Takashi
participants (2)
-
Marek Ławicki
-
Takashi Iwai