|
Audio Asylum Thread Printer Get a view of an entire thread on one page |
For Sale Ads |
66.220.118.62
In Reply to: Re: PCI 2 I2S interface existing? posted by kls on January 27, 2007 at 13:07:31:
I2S is non-trivial and has pitfalls. You should read this review:
http://www.6moons.com/audioreviews/empirical/offramp.html
Follow Ups:
So has anyone figured out what the best way to get the digital from your pc to your dac?? Seems like there are alot of differant opinions on this. USB-> i2s, usb-> spdif, soundcard-> spdif, firewire....etc Im still trying to figure out which direction to go in.
There are barriers to making ANY solution sound good, but IMO the current best solution is USB. It will support 24/96 with most converters. Wi-Fi is not far behind though. The problem with most of these computer "transports" is jitter I believe. Solutions like my Pace Car will solve this ultimately.As for I2S, it is hands-down the lowest jitter solution available, whether you are using a transport, USB converter or a Wi-Fi converter. The clock essentially drives the D/A chip directly. You cannot get any simpler than this.
What I figured out by myself:My USB DAC works really fine after tuning my PC for best performance
under Linux, but it is obvious, that as soon as I change conditions/parameters at the PC, such as not playing out of RAM, the sound dramatically changes.Even if my Tent-precision-clocked PCM2707 buffers three 48kHz stereosamples, my sound changes heavily when changing the input stream parameters, even though I am not getting Over-/Underruns!
The only solution I see is a rather perfect masterclocking in front of the DAC slaving all other parts of the chain.
With USB this is impossible. With SPDIF and soundcards providing
clockinputs on wordclock basis this would also be possible to a certain extent.
Though in this case you'd have numerous stages in the chain, which
most probably mess around with the stream.Recklocking is another issue. I don't trust recklocking very much unless there'd be perfect buffer management in front of it.
That's why I am after a PCI 2 I2S solution. My DAC Master clock slaving a simple Fifo on a PCI card. Shouldn't be too difficult.
Cheers
What frequency is your DAC master clock?My Pace-Car does do perfect buffering ahead of the DAC.
The problem with your scheme is that the PCI card will have a fixed frequency master clock tied to the CPU clock frequency. You cannot change this clock frequency with USB. In fact, the CPU clock frequency will change slightly from one PC to another.
Steve.My PCM2707 is externally clocked with a Tent 12Mhz crystal and provides the I2S bus.
The I2S-out runs right into the DAC without being reclocked.
Back2PCI:One question remains!
How do professional PCI soundcards, that are running with precision clocks, do separate the PC clock from the soundcard clock?
These cards ususally also run I2S internally!
They may have clock input, but if it is driving a PCI sound card, then there must be a PLL. I'm not sure what frequency we are talking about here. Is it word-clock or bit-clock or master clock?
I don't see why you think there is a need for a pll on a PCI card. The clocking of the PCI bus is completely independent of the clocking of the DAC. The DAC is clocked by a crystal, same as a normal standalone system. The PCI bus is used to transfer data into a fifo, which is then clocked out by the crystal. Basic async fifo processing - interrupt generated by the card when the fifo needs data. As long as the PC responds quickly enough, there is never any problem.
The only time a PLL should come into play is when slaving to an external spdif signal or external word clock.In principle, a PCI soundcard is an ideal audio device. Properly implemented with a precision clock, jitter should be a complete non-issue. Rig one up with a really good power supply, good shelding, etc, and you have a very good system. In fact, I've been curious as to why you haven't done a PCI card w/ I2S output - modding a Delta 44 for I2S output should be easy, and all that is left is a superclock and figuring out the power supply (although that last one may be the kicker)
If the computer is streaming to the soundcard, then the computer clock frequency must be matched by the sound card clock frequency. If it is burst-mode buffering, only then can the sound card clock be independent.
But PCI doesn't 'stream'. Sure, data is clocked into a buffer on the card via the PC clock, but it's typically done by DMA after the card generates an interrupt. Basically an async process triggered by the card requesting a new buffer.Deriving audio-related clocks via pll from the 33MHz pci clock would be bizarre. PC Audio may be odd, but unless I'm missing something basic and fundamental, it's not THAT odd.
The datasheet for the chip used in the M-Audio Delta series cards is linked for reference.
If I run the Envy chip with a precision clock at 24576kHz, there wouldn't be a need for a Master/Slave setup, right!?!
This clock would be the source clock for the I2S bus and indirectly the source for clocking the DAC.Proper buffering, if needed, would most probably be the biggest problem.
(I have to look up if the Envy chip buffers samples!)One more thought ( a bit refering to my current setup):
Since the PCI interface is working in burst modes, as far as I understood, and USB is actually hooked on the PCI bus, it is more then evident that the IRQ handling will impact the stream heavily,
most probably even more impacting the USB bus .
The worse your PC Latency, an indicator for pretty poor interrupt handling, the more problems you'll run into, unless you have a perfect buffer management seperated from the IRQ management of the PC.This might be the reason, why my realtime Linux system sounds far better than any other OS on my PCM2707. It allows me to run
buffer sizes at 1 sample, without getting xruns. Very close to realtime I'd say.My PCM2707 delivers much better quality, when runnning these low buffer sizes, even though it buffers 3 samples on its own!
Aren't we talking about two or three different types of jitter in general anyhow?
The one related to electrical parameters incl. clocks and the other one related to the IRQ handling? Perhaps there is another one related
to samplerate mismatch related to the clock. (Offline upsampled 48kHz material sounds far better then 44,1kHz material in my case!)Anyhow - I still don't feel to have the right logic in mind of how to approach the issue! (Perhaps I'd buy myself a Lynx 2 - That would be too easy though.)
Cheers
This post is made possible by the generous support of people like you and our sponsors: