Asynchronous I2S FIFO project, an ultimate weapon to fight the jitter - Page 182 - diyAudio
Go Back   Home > Forums > Source & Line > Digital Line Level

Digital Line Level DACs, Digital Crossovers, Equalizers, etc.

Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 2nd January 2013, 04:42 PM   #1811
Julf is offline Julf  Europe
diyAudio Member
 
Join Date: Oct 2011
Location: Amsterdam, The Netherlands
Quote:
Originally Posted by qusp View Post
OK so perhaps the better way would be to have 2 fifos and shuffle between them as needed.
Not sure that helps in any way - you are still back to the issue of only being able to discard/fill in material in the quiet pauses.

Quote:
assuming it ever becomes a problem.
Unfortunately it won't suddenly become a problem. Some users (with greater clock frequency mismatch) will occasionally run into it (when playing long, uninterrupted pieces of music), others won't - so it will be hard to replicate/verify the complaints.

Quote:
I gather on the next version ie multichannel/DSD version, Ian is boosting the memory, so perhaps it will just become even more of a non-issue
More memory will make it more likely that you will stop listening to the music and go to bed before the buffer under/overflows, thus solving the problem
  Reply With Quote
Old 2nd January 2013, 04:52 PM   #1812
diyAudio Member
 
Join Date: Apr 2010
Hi! if we take the example from Julf a 0.1% difference between source /reclock clocks

Worst case for 44.1Khz:
44100 (sample F)x 32bit (Spdif encaps 16bits) x2 (channel)=2822400 bits/s
half fifo (4M/2) = bits
2048000/2822400 = .73 seconds buffer
.1% error would be 2822 under/over samples /s
the fifo would underrun in 2048000/2822 = 725s = 12 minutes

So since no regulation mecanisme is implemented in the fifo this would leave us with 62 minutes of 'jiterisched' music after 12 minutes ;-)

But +-.5% mean error on frequency precision is normaly seem on clock using a resonnator.

Even a 1000Ppm clock module is +-0.001% ;-) and even then +-0.001% is not a error of +.001% but a error between -0.001% to .001%

Correct me if I'm wrong but I thing we have at least one order of magnative of safety margin event at 384khz.

Last edited by Fridrik; 2nd January 2013 at 05:04 PM.
  Reply With Quote
Old 2nd January 2013, 05:31 PM   #1813
diyAudio Member
 
andrea_mori's Avatar
 
Join Date: Jan 2005
Location: Italy
...just send back the MCLK to the source..
FIFO buffer will isolate anyway from the source jitter, even with the worst source
no memory underflow/overflow since the source will work with the same master clock.
No PLL needed, 1MB memory is safety enough.

and don't tell me you cannot tweak the source, we are diyers
  Reply With Quote
Old 2nd January 2013, 05:42 PM   #1814
qusp is offline qusp  Australia
diyAudio Member
 
qusp's Avatar
 
Join Date: Oct 2009
Location: Brisbane, Australia
Quote:
Originally Posted by Julf View Post
Not sure that helps in any way - you are still back to the issue of only being able to discard/fill in material in the quiet pauses.
yeah this fifo memory is far too linear!



Quote:
Unfortunately it won't suddenly become a problem. Some users (with greater clock frequency mismatch) will occasionally run into it (when playing long, uninterrupted pieces of music), others won't - so it will be hard to replicate/verify the complaints.
well yes it will 'suddenly' become a problem, because presumably at some point, someone, anyone! will suddenly report actually.... having a problem. until then there is effectively no problems only potential problems. very much like Schrödinger

given ryanj has been using a cheap chinese SD player with fifo and not made a report, i've used it with no less than 5 different sources and even during long jam sessions in Logic audio and internet radio over a period of more than a year...no problem and I gather the worst thing that can happen is it will either have a segment of silence, or will replay a segment.


most people by the time theyve got to the point of buying the fifo, already have a reasonable source


Quote:
More memory will make it more likely that you will stop listening to the music and go to bed before the buffer under/overflows, thus solving the problem
yup =)
  Reply With Quote
Old 2nd January 2013, 05:48 PM   #1815
qusp is offline qusp  Australia
diyAudio Member
 
qusp's Avatar
 
Join Date: Oct 2009
Location: Brisbane, Australia
Quote:
Originally Posted by andrea_mori View Post
...just send back the MCLK to the source..
FIFO buffer will isolate anyway from the source jitter, even with the worst source
no memory underflow/overflow since the source will work with the same master clock.
No PLL needed, 1MB memory is safety enough.

and don't tell me you cannot tweak the source, we are diyers
due to fifo memory buffer it is asyncronous with the source, it has to be, but I suppose it could simply be marching in time, but still offset in time. me, I wont bother doing anything about it or expending any effort or money on the problem that hasnt shown itself

fridrik 1000ppm is 1/1000th or 0.1% but honestly who is using anything like a 1000ppm clock with fifo? most will be using 50ppm so 0.005%

Last edited by qusp; 2nd January 2013 at 05:52 PM.
  Reply With Quote
Old 2nd January 2013, 06:11 PM   #1816
vzs is offline vzs  Europe
diyAudio Member
 
Join Date: Dec 2005
Location: Cluj-Napoca, Romania
@Julf

First page fourth post says:
"- Half-full over flow time: 1486 seconds (at 44.1KHz input I2S stream with 500ppm frequency tolerance);"

The most crappy clocks for audio frequencies I could find have +-120ppm tolerance. If your source happens to have one of those and its really on its ppm limit then the FIFO will over/under run in 6181 second (~103 minutes) of continuous play... be serious, even Beethoven's 9th symphony is shorter played in one continuous stream.

If you think a PLL with a VCXO would be a better solution you are wrong since most VCXOs have less pull range: e.g. TentLab's VCXOs have +-100ppm, so those will not even work.

Last edited by vzs; 2nd January 2013 at 06:30 PM.
  Reply With Quote
Old 2nd January 2013, 06:24 PM   #1817
qusp is offline qusp  Australia
diyAudio Member
 
qusp's Avatar
 
Join Date: Oct 2009
Location: Brisbane, Australia
that was long before the final version too.
  Reply With Quote
Old 2nd January 2013, 08:30 PM   #1818
aos is offline aos  Canada
diyAudio Member
 
Join Date: Mar 2007
I think it should be a reasonable fallback to have the reclocker stop once it detects under or overflow, refill it to half again and continue, providing silence for those few seconds. Preferably providing a LED status indicator as to what happened. I would personally find it a good tradeoff. Adding a VCXO with a PLL trying to pull the frequency average to be the same as the source is the ultimate solution but it has its own issues (how good will the PLL filter be? It needs to have a sub-Hz cutoff and the cutoff needs to be steep enough otherwise we're back at square one with jitter).

What does the FIFO do right now when it hits buffer over or under run?
  Reply With Quote
Old 2nd January 2013, 09:15 PM   #1819
diyAudio Member
 
Join Date: Apr 2010
Quote:
Originally Posted by qusp View Post

fridrik 1000ppm is 1/1000th or 0.1% but honestly who is using anything like a 1000ppm clock with fifo? most will be using 50ppm so 0.005%

Sorry your correct 0.1% , the exemple was simply to demonstrate the worst case : 500ppm (worst crystal of the 1990) x 2.

100ppm should be the most probable worst case scenario . If I take my computation this would mean :

about 120 minutes = 44.1 mhz
about 14 minutes = 384 mhz

The ways the get under or over buffer are then

1- play long classical musique piece at very high sample rate
2- play a long play list with the gapeless mode ON in your player setting.

to conclude:
For most of us the under of over buffer condiftion is no concern in theory and in practice ;-)

Last edited by Fridrik; 2nd January 2013 at 09:21 PM.
  Reply With Quote
Old 2nd January 2013, 10:01 PM   #1820
diyAudio Member
 
iancanada's Avatar
 
Join Date: Dec 2009
Location: Toronto
Quote:
Originally Posted by vzs View Post
@Julf

First page fourth post says:
"- Half-full over flow time: 1486 seconds (at 44.1KHz input I2S stream with 500ppm frequency tolerance);"

The most crappy clocks for audio frequencies I could find have +-120ppm tolerance. If your source happens to have one of those and its really on its ppm limit then the FIFO will over/under run in 6181 second (~103 minutes) of continuous play... be serious, even Beethoven's 9th symphony is shorter played in one continuous stream.

If you think a PLL with a VCXO would be a better solution you are wrong since most VCXOs have less pull range: e.g. TentLab's VCXOs have +-100ppm, so those will not even work.
Agree.

The worst audio clock I have ever met was from a CDROM, but it still better than 100ppm. Clocks from most of the digital audio sources we are running right now will be better than 30ppm, which including the CD players and many USB sound cards. If they are talking about 50ppm, that means it's over a wide temperature range, says 0-55 degree C. At room temperature, situations will be much better.

So, I'm just wondering what kind of worse digital source we are gonna feed to a FIFO?

There are more than 100 members running the FIFO now, so, maybe they can tell if they have experienced empty/overflow? if so, at what condition, and what was happened. While I did R&D, I can only simulate these cases by a programmable clock generator with running at much higher or much lower frequency.

VCXO can be a kind of solutions if don't care about jitter. VCXO usually comes with bigger jitter than a XO (except very expensive high end VCXO). For example, Si570 is a XO with phase noise -112dBc/Hz at 100Hz, however, Si571 is a VCXO, the phase noise is degraded to -87dBc/Hz at 100Hz. The reason is obvious: the noise on the control voltage will be converted into jitter.

Just a personal point

Ian
__________________
Ian GBV - I2S to PCM converter board & FIFO KIT
http://www.diyaudio.com/forums/group...ml#post3662743
  Reply With Quote

Reply


Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
XMOS-based Asynchronous USB to I2S interface Lorien Digital Source 2113 26th July 2014 06:52 PM
exaU2I - Multi-Channel Asynchronous USB to I2S Interface exa065 exaDevices 1357 3rd March 2014 08:51 PM
DAC chip selection + I2S jitter questions drwho9437 Digital Line Level 2 26th July 2010 12:50 PM
Simple FIFO to I2S CPLD, for MCU players / reclocking KOON3876 Digital Line Level 21 19th September 2008 04:00 PM
asynchronous reclocking and low jitter clocks ash_dac Digital Source 3 8th February 2005 09:22 AM


New To Site? Need Help?

All times are GMT. The time now is 11:52 PM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright ©1999-2014 diyAudio

Content Relevant URLs by vBSEO 3.3.2