[alsa-devel] Via VT82xx VT1708 ICE1724HT and higher sample rate/bit depth files through SPDIF

Pavel Hofman pavel.hofman at insite.cz
Tue Feb 26 15:36:20 CET 2008

Hi Martin,

> First- sample rate
> Even though the documents claim that it will play at 176.4 KHz and 192KHz
> whenever I play a file at these rates it down converts to ½ the rate (88200
> and 96000). I tested this with the ICE1724HT (Juli@) which has almost the
> same core, I never could get 176.4KHz at the SPDIF output. I confirmed that
> the ICE1724 will play the file at 176.4KHz in Windows so its not a hardware
> limitation. I tried to do the same with the VT1708 (on a Via CX700  chipset)
> and the Windows driver wouldn’t let me at anything other than 48000. 

I spent a few days on this issue and confirm that ICE1724HT cannot
output 176.4kHz from its internal SPDIF transmitter, WHEN clocked by its
internal clock circuits. A scope hooked to corresponding pins/outputs
revealed the following:

All I2S lines output correct 176.4kHz signal, i.e. D/A codecs receive
proper signal.

However, I did not find a way to force ICE1724 to output 176.4kHz, it
always drops to 88.2kHz, no matter what MT01/MT02 combination is. The 
same happens with windows drivers of my Prodigy 192. The sequence is: 
44.1, 48, 88.2, 96, 88.2, 192

I have not seen any manufacturer of Envy-based cards revealing this
deficiency. The "preliminary" datasheet we all use mentions only that
the chip forces the 128x mode when switched to 176.4kHz. I believe the 
output of 88.2kHz is an undocumented feature or perhaps even a bug of 
the chip.

Juli is a card whose manufacturer may be aware of the problem. It is not
clocked by ICE1724 internal clocks fed by the two crystals. Instead, the 
crystals also provide signal to external circuits generating
clock signals of required frequency, feeding the chip in slave mode. The 
circuitry is controlled by ice1724 GPIOs.

This way the ICE1724 is not aware of its clocking frequency and cannot 
thus mis-configure its SPDIF transmitter. The windows driver does
output proper 176.4kHz.

I am working on Juli driver and have been analyzing this beast for a
few nights. The special clocking is already working at home :)

> Second, the only way I can get the 24 bit files out in a form that the card
> can play is to pass them through dmix. But I need to reconfigure dmix for
> each sample rate. And I’m not convinced that it isn’t resampling twice, both
> at the input and the output. Or how to configure the buffers etc. to prevent
> underruns even when the only conversion is to pass a 24 bit file to the
> card.

ICE cards use 32bits format. Try aplay -v -D plughw:0 24bit.wav and you
will see the conversion to 32 bits done by the plug plugin, no dmix

> I’m trying to build a high quality music server that will pass the files to
> either the internal or an external DAC at the bit depth and sample rate they
> were recorded at. I have tried to understand the various plugs and settings
> but it seems they are all focused on mixing various streams. I want to send
> the files unmixed to the output. I can’t figure out what set of plugs and
> settings in asound.conf would enable this.

Check the plug plugin.


Pavel Hofman.

inSITE, s.r.o.

Kafkova 16, 160 00 Praha 6
Rubesova 29, 326 00 Plzen

Tel., fax: +420 - 37 - 74 493 58
GSM: +420 - 603 - 163 973
Email: pavel.hofman at insite.cz

www.educity.cz, www.insite.cz
www.meetings.cz, www.hrzive.cz
www.comben.cz, www.hr-online.cz

More information about the Alsa-devel mailing list