[Flac] Inexpensive Flac player for separates system?

Brian Willoughby brianw at sounds.wa.com
Fri Jan 15 05:06:50 PST 2010


The following is mostly for Nick, but perhaps there are others who  
might be interested in one part or another of the following...


Nick,

I think we're basically on the same page here.  I'll first try to  
cover some of my basic ideas in general, then respond to your  
specific comments inline.

For one thing, I have long believed that it is smart to keep analog  
audio circuits separate from digital circuits.  This would seem to  
point to SPDIF and AES3 as the ideal interconnect, but the  
unfortunate truth is that those two specific digital audio standards  
create more problems than they solve.

I'll try to explain: Every digital audio playback system combines  
some sort of storage media with some sort of DAC.  Between these  
basic elements is a flow of data at a particular sampling rate.   
Without getting into multichannel systems that combine multiple DAC  
boxes into one system, there are basically only two choices for  
clocking.  Either the DAC is the master or the media device is the  
master.  When the DAC is the master, the media source must be able to  
determine whether it is going too fast or too slow, and throttle its  
data accordingly.  When the media is the master, the DAC inevitably  
must alter its clock to match the media data flow, and unfortunately  
this is an ongoing process.  Both SPDIF and AES3 are one way  
transports in that they only feed data and clock from the media  
source to the DAC - there is no feedback from the DAC to the media to  
control the rate of data.  In other words, SPDIF and AES3 absolutely  
require that the DAC alter its clock on an ongoing basis to match the  
media, and meanwhile the media source is sending data blindly with no  
outside information that could possibly be used to correct the rate.   
In contrast, FireWire and more advanced USB designs allow  
bidirectional communication.  This makes it incredibly simple for the  
DAC to set its rate to a perfect clock, and then force the media data  
flow to accommodate the DAC.  This is especially easy in systems like  
Mac OS X, where CoreAudio is a "pull model" - meaning that the  
selected audio interface tells each application when it needs the  
next buffer.

Basically, I have decided not to put any more money into systems  
which are designed primarily around SPDIF or AES3.  Those  
interconnect designs basically force the worst possible situation  
(well, the worse of the two options).  The unfortunate side-effect of  
my decision is the fact that the industry continues to use SPDIF and  
AES3 for compatibility reasons - since it's a simple interface that  
allows multiple devices to be installed component fashion, like you  
and I both desire.  It takes concerted effort to buck the system and  
fight the inertia of those establish standards, even though their  
design is flawed in light of what we know about jitter.

Getting back to the idea of separating analog and digital, keep in  
mind that every DAC circuit must have at least some digital signals,  
even if nothing more than the clock and data.  Once a proper circuit  
is designed to keep the digital side of the DAC from destroying the  
quality of the analog side, you can basically add more digital  
circuits without making the problem any harder.

As a specific example, the best DAC I know of is the MobileIO line  
from Metric Halo Labs.  These are FireWire audio interfaces.  They  
have separated the analog and digital components internally by  
placing them on separate boards.  Based on this (and many other  
examples) I think that it would be possible to have everything in one  
box, so long as the digital and analog are segregated properly.



On Jan 15, 2010, at 02:59, Nicholas Bower wrote:
> Hi glad you're interested - comments below.
>
> On Fri, Jan 15, 2010 at 5:05 PM, Brian Willoughby  
> <brianw at sounds.wa.com> wrote:
>
> On Jan 14, 2010, at 20:59, Nicholas Bower wrote:
> I'm after the cheapest way to decode a flac stream with following  
> criteria;
> - Transport from UPnP (DNLA) NAS using either WiFi or Cat5 networking
> - Toslink digital out for using existing HiFi DAC.
> - Low power consuption (eg just few Watts - it's just a decoder  
> anyway).
> Your criteria fall short of the full potential for quality when you  
> separate the transport from the DAC via TOSLINK.  I suppose that if  
> you mention "cheapest" then you're perhaps not concerned about  
> sacrificing quality.  The problem is that the only remaining  
> choices are FireWire (or USB) or integrating the DAC into the  
> device which handles the UPnP transport.  The reason the latter  
> choices are better than TOSLINK is that it allows the transport  
> speed to be throttled by the DAC clock, instead of the other way  
> around.
>
> Actually on the contrary.  Cheap in terms of simple to spend money  
> where it's going to make a difference on audio quality (not in a  
> Flac decoder device containing knocked up electronics from a PC  
> manufacturer).  Besides cheap can mean reasonable design too:
>
> http://www.siliconchip.com.au/cms/A_111597/article.html
That may or may not be an improvement.  It really depends upon the  
DVD player.

For one thing, as I've hopefully explained above, the choice to use  
TOSLINK cripples the system such that even this high-quality 24/96  
DAC cannot operate from a local crystal clock source.  Thus, it  
cannot achieve the maximum sound quality that is possible from an  
internal DAC.  Check out some of the White Papers from Dan Lavry over  
at Lavry Engineering.  He points out that there is no way for an  
external clock signal to be superior to a well-designed internal  
clock signal.  Unless you are running a recording studio with more  
than 8 channels - in which case some of your converters must run on  
external clocks - then the best DAC will necessarily run from an  
internal clock.  But TOSLINK does not allow an internal clock to run  
independently, because it must constantly adjust to the incoming data  
from the media source (in this case, the DVD player).

Another consideration is the other poor design choice in consumer  
audio: The unbalanced analog audio interconnect.  The other reason a  
DVD player might have the hum mentioned on that Silicon Chip page is  
because unbalanced is really a stupid design for analog audio.   
Replacing one bad design with another is not really a smart solution.

A better solution than a component DVD player with TOSLINK DAC (even  
24/96) would be a computer software DVD player with a FireWire Audio  
Interface (DAC), preferably Mac OS X with its "pull model"  
CoreAudio.  Many such devices have multiple clocking options, so you  
would select the internal clock.

To maximize the quality, you'd want balanced outputs on a FireWire  
DAC with a balanced input preamp and balanced amplifiers, too.


> Regarding Toslink, my understanding (albeit limited) is that if an  
> external DAC is going to reclock the bitstream anyway (right?),
You're sort of right, but technically wrong.

If you look at what exists in the industry, and think about  
compatibility with existing gear, as well as marketability (i.e.  
potential for a successful product), then: Yes, just about every  
external DAC is going to reclock the bitstream in one way or  
another.  Either Sample Rate Conversion (which introduces distortion)  
or Phase Locked Loop clock regeneration, both of which require  
buffering of the audio data and thus latency.

However, if you look at what is technically possible, and even  
available in niche markets, then: No, it most certainly is not  
necessary to reclock the bitstream.  If you're willing to toss out  
compatibility with legacy digital designs (which means designing a  
product that probably won't sell), then you can basically reclock the  
media instead of reclocking the bitstream.  With a bidirectional bus,  
the DAC can run its own clock independently, and periodically update  
the media transport to effect flow control.  SPDIF and AES3 are  
unidirectional, so they're out of the picture in my opinion.   
FireWire and USB allow the bitstream rate to be manipulated before  
it's taken off the media, and before its reaches the DAC, such that  
no reclocking is needed at all.  Be wary though: The average USB- 
Audio device does not implement the advanced Asynchronous clocking  
option necessary for this.  Most FireWire Audio devices do implement  
things correctly, but I believe there were at least a few very early  
examples where designers were lazy about clock generation and did a  
poor again.  Again, the Metric Halo MIO represents a best-of-breed.

> and there is no video to sync,
Well, you're basically on the right path there.  Video would  
complicate things, as would the multichannel situations I described  
above.  But even without video or external channels, you still want  
to avoid reclocking the bitstream since it's possible to do so with  
the right design.

> why wouldn't you want the DAC (and pre-amp and power source and  
> line level amp) completely external from componentary like embedded  
> OS, TCP stack, NIC and WiFi radio (especially)?
Again, you're thinking along the right lines.  Ideally, the DAC would  
be almost pure analog, with only the most minimal data and clock  
signals existing in the digital realm.  However, take care that you  
don't sacrifice the clock quality by choosing a unidirectional  
transport such as SPDIF (TOSLINK) or AES3.  The only existing options  
besides Word Clock (coming out of the DAC and going into the CD  
transport - a setup which does exist in the UK from dCS and in Japan  
from TEAC/Esoteric - would be FireWire or advanced USB.

By the way, the Word Clock design is not bad.  Digital studios have a  
standard for Word Clock, including standard cables, master clock  
units, and such.  It's more expensive than consumer component stereo  
gear, but it's at least a valid design.  You would need a DAC with  
Word Clock out, with the DAC set to be its own master clock, and then  
a CD player that can slave to a Word Clock input, such as the dCS or  
TEAC/Esoteric.

> That's where the boutique money goes in my guess - integrating the  
> latter complexity sufficiently well to obtain a level of quality  
> that is fairly straight forward to obtain with a simple separates  
> system using established principles.
The money doesn't necessarily go into anything but the pockets of  
snake oil salesmen!  There are a lot of audiophile products that are  
not worth a dollar.  Admittedly, some are actually expensive  
solutions to a bad design choice (i.e. all of the SPDIF and AES3  
designs, not to mention unbalanced analog), but I'm no fan of  
throwing good money after bad designs.  The crazy thing is that the  
boutique places are already accustomed to niche markets, but if they  
were to break away from the established standards like unbalanced  
audio and unidirectional digital audio, they would have an even  
smaller market - apparently so small they're not willing to take the  
bold step and be the first.


>>> There seems a real lack of Flac players that are cheap and HiFi  
>>> separates integratable like current-day CD players.  All  
>>> solutions I've seen are either expensive boutique heavy-weights  
>>> or portable devices.
>> There are certain some over-priced boutique devices out there, but  
>> I'd say that much of the price goes into working around the  
>> deficiencies in unidirectional digital audio connections such as  
>> SPDIF and AES3.  The real problem is that there is not a better  
>> interconnect for HiFi separates other than FireWire and USB, which  
>> each require a level of complexity in the device which is more  
>> difficult for the average person than pure analog or traditional  
>> digital I/O.
>>
>> However, what's wrong with portable devices?  I realize they  
>> aren't as convenient to install as typical HiFi components, but  
>> they surely meet your low-cost and low-power requirements.
>
>
> Know of one with optical out?  This is one approach I suppose.  I  
> was curious about DIY solutions also however.

Well, when I was shopping for a MiniDisc player (not as a primary  
format), there were many with optical input, but only the  
professional rack mount MD from SONY has optical output.  Thankfully,  
it also had coaxial digital, which is sometimes more convenient.

I'm actually in the market for a FLAC player, but don't really know  
too many details about what's out there.  I just got an iPhone, and  
I've been trying to research the possibilities for FLAC decoding  
there.  I'm also trying to research the options for digital output  
(even though I criticize SPDIF, I do have SPDIF input on my Nakamichi  
car stereo, and I would prefer that over FM).  I have experience with  
CoreAudio and FLAC, but I have a feeling that it might take a lot of  
programming to really optimize FLAC for the Arm processor, unless  
it's already there in the FLAC sources.  I do recall that some  
developers have contributed assembly optimizations for processors  
besides Intel and PowerPC, but I have never looked into the details.   
In other words, an iPhone might make a nice, low-power FLAC player,  
even if it isn't ideal.

Obviously, this isn't my highest priority, but I do recall scanning  
the flac.sourceforge.net listing of FLAC-compatible devices.  Is  
there nothing there which fits your needs?  Aren't there some desktop  
components there?

As for DIY, I've designed USB devices, but I am reluctant to settle  
for USB-Audio when I would prefer FireWire.  Unfortunately, I've not  
designed a FireWire device, and the specifications are not freely  
available as they are with USB.  It would be a serious investment to  
put together a DIY FireWire solution.  That leaves integrated designs  
which combine the WiFI/Ethernet circuits in the same box.  WiFi might  
be asking for trouble, since it involves radio frequencies, but  
Ethernet might be quite possible in a DIY situation.  Both WiFi and  
Ethernet have drop-in module designs available which would be far  
easier in a DIY situation than FireWire.  I've done a number of  
Microchip PIC designs, and am currently in progress designing a DSP  
plus USB device based on the Texas Instruments TMS320VC5506 that  
could be really optimal for low-power FLAC decoding.  Such a DIY  
design would probably not offer full audiophile quality on the first  
revision, but it at least would not suffer from the clocking issues  
created by legacy digital audio interconnects.

All things considered, a TMS320 family low-power chip combined with a  
drop-in Ethernet solution, combined with one of the popular Asahi- 
Kasei stereo DAC chips with 96 kHz or even 192 kHz capabilities might  
be a feasible DIY project.  My current DSP design is managing a 4 MHz  
DAC sample rate, so stereo 192 kHz would be a cinch for these low- 
power chips.


>>> Squeezebox doesn't count for me - requires PC to be on, thus  
>>> breaking rule 3 above as a few-hundred Watt music player system  
>>> (pretty irresponsible solution if you ask me in these times).
>> Excellent point.  Low power is a great goal, and it should be  
>> possible.  Personally, I would relax the "cheapest" part of the  
>> requirements, and focus on the low power aspect.  Of course, I'm  
>> already excluding the more expensive options because I think SPDIF  
>> and AES3 should be left in the past because of their compromises  
>> in audio quality. So, what remains is not terribly expensive in my  
>> view point.  The bigger problem is not so much expense as it is  
>> that nobody really seems to be targeting a move forward, but  
>> instead focus on remaining compatible with older (flawed) designs.
>>
>> I do not know of any solutions, and you can count me as interested  
>> in hearing about what already exists.
>>
>> I look at the problem as a designer, realizing that what you want  
>> is certainly possible with today's technology.  The real question  
>> is how a good design can fit into the existing marketplace when it  
>> cannot be compatible apart from FireWire or USB.  An ideal product  
>> would have an integrated DAC and would only connect via WiFi/CAT5  
>> input and analog output to a preamp.  Another option would be  
>> FireWire (or USB) output to an existing audio interface, but that  
>> requires drivers and more complexity as a tradeoff with being more  
>> of a component system.
>
> I agree it should be possible - just not cheaply to a high level of  
> audio quality if you put those things in the same box (would be  
> happy to be corrected).
I basically agree.  High quality audio is not trivial.  It's getting  
easier and easier to get really high-end, and I think avoiding  
TOSLINK would get rid of most of the headache.  It's at least to the  
point where a smart design, even if not perfect in the analog  
section, would do well enough for 99.99% of FLAC listeners.

> The thing has to match a good CD player (cheap being relatively  
> speaking here) for audio quality would people not agree?
By that metric, I don't think it's hard to beat a good CD player.   
There are so many ways for CD player designs to get it  
"wrong" (usually by cutting corners to save money) that a smart FLAC  
decoder could easily do better.

Brian Willoughby
Sound Consulting



More information about the Flac mailing list