[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