Hijacking I2S to make a high end PC digital transport.

Jun 19, 2009 at 12:28 AM Thread Starter Post #1 of 20

Mr.Duck

100+ Head-Fier
Joined
Jun 8, 2009
Posts
147
Likes
14
The current DIY solution for USB -> I2S is a PCM2702 or similar. This is fine for entry level but has many limitations. 16bit 48KHz max is a major limitation. Also the way it transfers audio is not good enough. Streaming the audio and then hashing 44.1KHz out of a 48MHz clock and a PLL. This is not the best way to do it. Even if those PCM2702 chips could support 24/96 we can still do better.

USB is my prefered connection method. Since all PCs and laptops have it. It should outlive PCI and maybe even PCI-Ex. I have been waiting and searching for a high end DIY solution but it's not been done yet. Creating a DIY high end transport can be done. It requires special firmware inside the USB -> I2S chip that can use the PC as a slave to tell it when to transfer the bits. Since I can't design such a device, and no one else has done the hard work for me, I've been thinking of another way to do it...

My idea is to mod an Emu 0202 USB. This card is ideal because it is affordable and more importantly, it transfters the audio in bulk mode. Meaning it can clock the audio data itself and should have very good jitter performance. Even better, the card supports 192KHz audio! I believe it uses the CS4392 DAC chip. My idea is to use the data sheet to find the I2S bus for that chip, and solder on some leads to give I2S output. If all works well I will have high resolution, low jitter I2S output without any sample rate converters (ASRC - best known method for reclocking to remove that pesky jitter).

Anyway that is some of my ideas which is as far as I've got so far. I wanted to get some feedback incase there's somthing I'm missing or a better way to do it.
 
Jun 19, 2009 at 4:03 AM Post #2 of 20
http://www.cirrus.com/en/pubs/proDat...CS4392_PP3.pdf

From my very quick look at the datasheet I'm not seeing any I2S pins, correct me if I'm wrong but to me it has the fairly canon power and gnd pins.
biggrin.gif
Digital audio in, analog audio out, some control pins for a microcontroller etc. and some additional pins for setting the mode, reset, mute etc.

However from the datasheet it seems that it will accept an I2S input... (section 3.6) so I'd say the EMU 0202 has an IC that does USB to "some format" for the 4392... whether or not that is I2S depends as on the datasheet this chip will accept a few formats.

So there may be an IC that converts USB-I2S for the 4392 on the 0202, however it could be some other digital format.
 
Jun 19, 2009 at 5:12 AM Post #3 of 20
Quote:

Originally Posted by Mr.Duck /img/forum/go_quote.gif
I have been waiting and searching for a high end DIY solution but it's not been done yet.


You need to check out Empirical Audio. In particular, their Offramp USB:

Empirical Audio Offramp

USB input, multiple types of output (including I2S) and tons of possible upgrades. Their stuff sounds excellent.
 
Jun 19, 2009 at 7:10 AM Post #5 of 20
There are better DACs than the Pico and the OP was clearly asking for an interface with I2S output.

Well... there aren't many and I'd have to say your choices are limited.

I personally use a modified ESI Juli@ to output I2S, but technically, any card based on the Via Envy24 COULD be hacked up to do this - it's just easiest with the Juli@. The OffRamp is another solution and does look pretty cool - USB input with as I was told "reclocked to all hell" I2S and S/PDIF output.
 
Jun 19, 2009 at 10:11 AM Post #7 of 20
Quote:

Originally Posted by bhjazz /img/forum/go_quote.gif
You need to check out Empirical Audio. In particular, their Offramp USB:


Yeah but that's not DIY
wink.gif
I like paying ~$12 for a PCB. DIY gives better results in general. Such as building a gainclone that is better than the original gaincard is not so difficult. Plus it's a lot cheaper lol.
 
Jun 19, 2009 at 10:20 AM Post #8 of 20
Quote:

Originally Posted by FallenAngel /img/forum/go_quote.gif
I personally use a modified ESI Juli@ to output I2S, but technically, any card based on the Via Envy24 COULD be hacked up to do this - it's just easiest with the Juli@. The OffRamp is another solution and does look pretty cool - USB input with as I was told "reclocked to all hell" I2S and S/PDIF output.


Yeah OffRamp is nice. I was hoping that some one would start a DIY project just like it. I know about moding the Juli@. I just wanted to do it with a USB card, and the Emu 0202 seemed like the ideal candidate.

Maybe there is a better way. Have you seen anyone build a ultra low jitter master clock to clock the transport / soundcard? PCI or USB. If that could be done with the Juli@ then maybe that would be a better way to do it...
 
Jun 19, 2009 at 4:01 PM Post #10 of 20
Take a look at what Wavelength Audio has done with the TAS1020B USB controller.

Quoting numbers from another forum for jitter performance:
PCM2706 3433ps
TAS1020B Adaptive mode changed every 4ms standard code: 2838ps
TAS1020B Adaptive my slow mode PLL code: 632ps
TAS1020B Async USB mode internal PLL: 482ps
TAS1020B Async USB mode OSC to MCLKi port generating I2S output: 73.2ps
 
Jun 19, 2009 at 8:47 PM Post #11 of 20
Quote:

Originally Posted by Mr.Duck /img/forum/go_quote.gif
Yeah but that's not DIY
wink.gif
I like paying ~$12 for a PCB. DIY gives better results in general. Such as building a gainclone that is better than the original gaincard is not so difficult. Plus it's a lot cheaper lol.



I completely understand. You mentioned DIY...and high end...I figured I could help with at least a high end solution.

BTW, do you have an I2S DAC you could use all of this with?
 
Jun 19, 2009 at 11:41 PM Post #12 of 20
Quote:

Originally Posted by bhjazz /img/forum/go_quote.gif
You need to check out Empirical Audio. In particular, their Offramp USB:

Empirical Audio Offramp

USB input, multiple types of output (including I2S) and tons of possible upgrades. Their stuff sounds excellent.



Emperical's marketting is great.

Quote:

automatically generates 24/44.1 from 16/44.1, making the data bit-perfect


If the original audio (i.e CD) is 16/44.1 then converting it to 24/44.1 makes the data not bit perfect as it is no longer a perfect representation of the original.
 
Jun 20, 2009 at 4:31 AM Post #13 of 20
Quote:

Originally Posted by cobaltmute /img/forum/go_quote.gif
Emperical's marketting is great.


Maybe so...ehm, I'm not sure what you're saying!
biggrin.gif

Have you heard any of their gear? I heard nearly all of the line a year or so back and it was really amazing. Steve's tube DAC was so unique and liquid sounding. omg. For me, it's definitely not marketing!
 
Jun 20, 2009 at 5:54 AM Post #14 of 20
Quote:

Originally Posted by Mr.Duck /img/forum/go_quote.gif
Oh, I thought it did have I2S. Page 5 of the data sheet, see pins 3, 4, 5, 6. Is that not I2S?


It may be I2S... or it may not be. They're the digital audio input pins, which as in 3.6 may be I2S inputs...

As I said, there is obviously a USB interface as from what I can see the 4392 doesn't support direct connection to USB. So there would be an IC handling that for the 4392.

I may be wrong though I haven't studied it in detail, but from what I see the 4392 on it's own is definitely not what you're looking for and won't work as you want. If it was part of a circuit with an I2S input, then it seems plausible you could tap off that.
 
Jun 20, 2009 at 12:17 PM Post #15 of 20
Quote:

Originally Posted by bhjazz /img/forum/go_quote.gif
Maybe so...ehm, I'm not sure what you're saying!
biggrin.gif

Have you heard any of their gear? I heard nearly all of the line a year or so back and it was really amazing. Steve's tube DAC was so unique and liquid sounding. omg. For me, it's definitely not marketing!



I'm not making any claims on the sound - never heard the gear.

If you read the rest of my post, the Offramp claim is that upsampling 16/44.1 to 24/44.1 makes the data bit perfect. Generally bit perfect means the exact bit representation of the original data. For CD data, 16/44.1, I'm not sure how adding 8 bits of data to each sample of the stream that didn't exist before actually makes the data bit perfect when bit perfect is 16/44.1 data.

But then again that is marketting - make people believe what you're doing is right. It may sound great, but the statement is wrong.
 

Users who are viewing this thread

Back
Top