Saturday, 8 June 2013

MEASUREMENTS: Part I: Bit-Perfect Audiophile Music Players (Windows).

Close to a month back, after publishing my TEAC UD-501 results, someone E-mailed me about the use of JPLAY with this DAC.

Although I had not tried the program yet, it begs the question, how's it possible that JPLAY could sound any different? JPLAY is described as a bit-perfect player openly discussed in the FAQ but if you look at items 5 & 6, they seem to imply that "timing is everything" and somehow, an optimized software player can make a difference. Note that already there have been tests questioning these claims (here's a nice one from Mitch over on the Computer Audiophile between JPLAY vs. JRiver). The fact is, there is so much going on the in the hardware level such as OS and USB buffering, DAC buffering, driver-interface interactions that are just beyond the "reach" of the player software that it really makes no sense IMO for any software developer to make such claims!

Since my hardware was already set-up with the Mac, I did the software measurements with that platform first (results here). This week, I turned my attention over to the Windows platform. Here then are the candidates for the test:

1. foobar2000 - Free, highly configurable, fully functional, a myriad of plug-ins including support for all major file formats, this is my daily workhorse for playback on my Windows machines. I generally use the ASIO plugin for most of my DAC's to ensure bit-perfect data transfer. The dynamic range (DR) plug-in comes in very useful to check for severity of dynamic range compression among different "pressings". ABX comparator is great for controlled evaluation of sound quality. In terms of sound "quality", foobar intends to "just work". It makes no pretensions about sounding "better" than anything else - just bit-perfect - nothing more, nothing less. For this test, I ran version 1.2.6 with ASIO plugin version 2.1.2. All settings set to default. Tested with the ASIO driver and WASAPI (event style). Furthermore, I installed the SACD Decoder plug-in for DSD playback - works great (remember to run the ASIOProxy plugin, configure the ASIO settings, and go to Tools --> SACD to make sure it's not transcoding to PCM).

2. JRiver Media Center for Windows - I previously looked at this player for Mac. This is of course the "original" version since the PC release came first and only recently ported over to OS X. I've used this program to easily play DSD64 and DSD128 to the TEAC DAC with DoP including DST decoding and have since registered the full version. I'll be testing version 18.0.177 here. Tested with ASIO, Kernel Streaming, and DSD playback.


3. iTunes x64 for Windows - Why not :-). Using version 11.0.3.42. It bears repeating - the lack of native FLAC makes iTunes essentially useless for me since I refuse to use ALAC (which doesn't compress as well by default) and there's no way I'm going to leave lossless files uncompressed as WAV or AIFF - ridiculous waste of HD space. Just like with the OS X tests, I've converted the test audio to play as AIFF files, volume at 100%, all plug-ins turned off. To handicap iTunes even further, I'm going to play these AIFF files for measurement off a comparatively slow Patriot Rage XT USB stick rather than copying them over to the SSD. To potentially make it even worse, I tested with DirectSound - manual setting of 16/44kHz and 24/96kHz (royal pain folks - you have to adjust the default Windows settings, iTunes settings, and make sure to restart iTunes each time).


4. TEAC HR Audio Player for Windows V1.0 - this is the TEAC freebie for use with their DAC's. Will also play DSD using either the TEAC's native ASIO driver or DoP. This program does not support DST compression for DSD unfortunately. Like with the OS X version, memory playback turned OFF.


5. JPLAY v5.1 trial - self-described as the "hi-end audio player for Windows" - implicit in this is the idea that somehow this program is capable of better sound quality. As I quoted earlier, the web site suggests that "timing is everything", which implies that today's multi-gigahertz multi-core computers somehow have issues dealing with relatively slow data processing involved in even 24/192 bitrates. Various audiophile sites have obliged with reviews claiming that this program makes digital audio "almost neck and neck with vinyl" (sure, vinyl sounds great with a good system, but is that the definitive standard?!). We shall see just whether any difference can be detected using this program in each of its River, Beach, Xtream, and ULTRAstream "engines". I used foobar2000 as the front end since JPLAY can be used with any program that's compatible with ASIO. I'll even try with full optimizations like hibernate mode, high priority, and low buffer sizes! Thankfully, the trial version only interrupts playback every 2 minutes which should be enough for the test "runs".



Because JPLAY brings with it so many options, I am actually going to split this topic into 2 sections - this first part is getting too unwieldy... Watch for Part II in this series focused on JPLAY.


Setup:

(Similar to previous DMAC Test and OS X Player Test.)

ASUS Taichi (*running audio player*) --> shielded USB  (Belkin Gold) --> TEAC UD-501 DAC --> shielded 6' RCA --> E-MU 0404USB --> shielded USB --> Win8 Acer laptop

The ASUS Taichi DH51 is the same machine I used in the laptop tests. CPU is the Intel i5-3317U (1.7-2.6GHz dual core, 3M cache). "Only" 4GB DDR3 RAM (good enough for audio memory play IMO). Of course, the machine will not be multitasking with other programs running during playback apart from the usual OS tasks. OS is Windows 8 x64 with all recommended updates as of June 1, 2013. Tests were done with the laptop unplugged running off batteries.

Win8 laptop is the Acer Aspire 5552 which has been my measurement "work horse". Again, nothing fancy, just 2.2GHz AMD Phenom X4 processor to grab data from the E-MU 0404USB and process the data through DiffMaker, RightMark, or jitter FFT analysis.


I. RightMark 6.2.5 (PCM 16/44, 24/96, and DSD64)

Like with the Mac tests, all the test audio was encoded with FLAC except for the iTunes test presented as uncompressed AIFF.

PCM 16/44 Summary:
As you see, the leftmost item is from the Mac test with Decibel, the rest of the recordings done with the Windows 8 platform...  Look at how close the results are despite measurements taken about 3 weeks apart. JRiver "KS" refers to Kernel Streaming.

Frequency Response:

Noise:

THD:

Stereo crosstalk:

PCM 24/96 Summary:
Again, the leftmost item is done with Decibel on the Mac. The rest are all from the Windows 8 machine.

Frequency Response:

Noise:

THD:

Stereo Crosstalk:

DSD64 via either ASIO native or DoP for the programs that support DSD:
This is done using the 24/96 test signal encoded into DSD64 using KORG AudioGate, then played back to the TEAC UD-501 DAC using DSD Over PCM (DoP) protocol or natively with ASIO and measured with RightMark. As usual, we see the effect of noise shaping in DSD up in the ultrasonic range.

Yet again, leftmost column is from the Mac using JRiver (OS X) playing DSD via DoP (on the Mac, DoP was the only supported way to play DSD). The foobar SACD/DSD plug-in worked very well for me, as did JRiver (Windows) and of course TEAC's own player software.

Frequency Response:

Noise:

THD:

Stereo Crosstalk:
DSD output looks good across the board.

Part II: Dunn J-Test Jitter (16-bits shown for brevity)

foobar ASIO:

foobar WASAPI:

JRiver ASIO:

JRiver Kernel Streaming:

iTunes (with uncompressed AIFF rather than FLAC):

TEAC HR Audio Player:

I don't see any differences in these spectra. Certainly no major sidebands creeping up. Although not shown, the 24-bit spectra look unremarkable also.

Part III: DMAC Protocol

As the reference, all comparisons were made to a recording with foobar ASIO.


Very high quality correlated null depth in all the players in the mid-80+dB range in this "machine listening" test. MP3 320kbps was used in the last column as a comparator - measuring in the mid-60dB level as usual.


Part IV: Conclusion

Ultimately I cannot say much beyond what was expressed in the OS X conclusions. With these Windows programs, the players are all capable of indistinguishable high quality audio output to my TEAC UD-501 whether 16/44 and 24/96 PCM or DSD using DoP or native ASIO. Furthermore, in the Windows world with the various driver models, I detected no significant difference between ASIO, WASAPI, or Kernel Streaming whether through FFT-based RightMark analysis, "microscopic" examination with the Dunn J-Test, or "macroscopic" listening test over >30 seconds with the DMAC.

Although DirectSound does not claim to be "bit-perfect" since it takes the integer audio --> converts to 32-bit float --> dithered back to 16/24-bit and sent to the DAC through Windows Mixer at a specific sample rate (set in your Control Panel for the sound device), it looks like it is able to do this with a single audio stream of the same sample rate without significant deterioration in the output in the 24-bit domain (remember the DMAC Test is 24-bit audio) - not exactly rocket science so this is to be expected. I believe many folks feel the quality of the Windows Mixer has improved over the years. Dithering down to the 16-bit domain would likely be very detectable in the measurements and would have messed up the 16-bit J-Test as well - this is why I always keep my Windows default output as 24-bits (note that the TEAC driver does not have a 16-bit setting for DirectSound so I can't demonstrate what 16-bit dithering looks like). Of course if you have multiple streams going through the mixer, things could deteriorate - but this is not generally relevant for home music playback. Also, if you run a DTS or AC3 file through DirectSound, it would not be surprising to hear errors in the bitstream.

Over the years I have used foobar, JRiver, and even iTunes for hours of listening...  Other than the tests here, I have never tried to perform any controlled testing. However, I have not found occasion to complain that the audio output sound "bad" comparatively. Personally, I like using ASIO since there's just less risk of messing up the settings.

The simple message remains - stay bit-perfect and stop worrying. So far the most important factors I have seen with digital gear has been getting a good DAC with good drivers and make sure there are no settings lingering around that could be messing up the sound. Not only is there no objective difference between Windows audio players so far, but this is also shown to be cross platform with the Mac. No need for flame wars between Win and Mac; they're the same.

As usual, I invite anyone to comment if they think these results and/or conclusions are erroneous based on controlled testing results.

Lets get "extreme" next time and consider JPLAY - could there be a measurable difference?

My music selection tonight: Hilary Hahn & Oslo Philharmonic's Mendelssohn & Shostakovich Violin Concertos SACD (2002 - sadly it looks like the 2.0 layer came from PCM 44kHz source!).

Remember to enjoy the music folks...

Thursday, 6 June 2013

MEASUREMENTS: "Pulse Response" - 5kHz & 10kHz.

In the previous post, Frans de Gruijter posed an interesting comment and question...

"When for instance a sine wave is used of say 5kHz which is stopped at the 0 crossing what would the ringing be?"

Interesting how I've never seen measurements of this... We always see just the worst case scenario with a single maximum amplitude impulse response when as I mentioned previously, this kind of thing does not exist in real music.

So then folks, let us have a look at what a single "pulse" looks like with the different filters at 5kHz and 10kHz. Again, remember that I am measuring the waveform back using the E-MU 0404USB at 24/192 so there will be some "ringing" imposed by the ADC itself when looking at the TEAC UD-501 NOS mode especially.

Note: Ignore the phase inversion between 5kHz and 10kHz - I accidentally caused this inversion and it's not due to the TEAC hardware.

I. SHARP (Linear Phase) Filter:

Reminder of the impulse measurement:

5kHz (16/44):
10kHz (16/44):

Ringing evident at 10kHz but lower amplitude and shorter duration than impulse (ie. worst case scenario). Notice that the frequency of the ringing is the same as the impulse so we're looking at around Nyquist (22kHz).

II. SLOW (Linear Phase) Filter:

Impulse response:

5kHz (16/44):

10kHz (16/44):

III. Digital filter OFF ("NOS-mode"):

Impulse response:

5kHz (16/44):

10kHz (16/44):

IV. Minimal Phase Upsampling to 24/192 with Digital Filter OFF:

Impulse response:

5kHz (16/44):

10kHz (16/44):

V. Summary...

Some comments about the linear phase pre-ringing which some folks obsess over:

1. Lower frequencies like 5kHz essentially is associated with no pre-ringing to worry about in linear phase filters... Since the ear is most sensitive to tones from 1-5kHz, this may be reassuring. As you can see, pre-ringing does show up higher like at 10kHz.

2. Ringing amplitude also correlates with the frequency. The lower the frequency, the less the pre-ringing amplitude. For example, the SHARP filter 10kHz pulse pre-ringing amplitude is ~1/2 of the impulse.

3. The pre-ringing frequency itself remains high at around Nyquist like the impulse response so I remain skeptical that it's even audible (seriously folks, real musical recordings have a noise floor as well as complex harmonics - how anyone can claim that it's low-amplitude, high frequency pre-ringing causing any defect in the sound is a mystery to me!).

Of course, there is an "easy" way to not have to worry about the pre-ringing phenomenon in the audible spectrum... Go download a hi-res copy of the music ;-).

SHARP filter, 10kHz sampled at 88kHz:
Presto! Pre-ringing gonzo!

Note: Actually, there will still be some very high frequency pre-ringing for 20kHz sampled at 88kHz but we're talking 40+kHz ringing at even lower amplitude... I'm pretty sure I can live with this! (Again, please ignore the phase inversion compared to the graph above.)

Wednesday, 5 June 2013

MEASUREMENTS: Digital Filters and Impulse Response... (TEAC UD-501)

By now, I suspect that most of us have read reviews and comments about the different types of digital filters available in many of the modern DAC's these days. A number of years ago - 2006 to be precise - I remember reading in Stereophile about these filter types and first saw the impulse response graphs in this article by Keith Howard. At that time, I remember being perplexed by all the variation of filter types possible but remembered how "cool" it seemed that here is another factor beyond jitter which may differentiate the "digital sound" from analogue... Furthermore, those graphs looked a little scary - Wow! Look at all that ringing!

Skip forward a few years and we see the introduction of new DAC's with various filter options available. I remember taking notice with the introduction of the Meridian 808.2 around 2009 with their "apodizing", minimal phase filter. In time, folks on forums would talk about how detrimental the whole "pre-ringing" would be with various manufacturers following the minimum phase filter design as selling points. Of course, in life, almost nothing is that simple; as if simply getting rid of one "issue" (like pre-ringing) would lead to joy and happiness without some price to pay. In terms of filter types, the price to pay includes a combination of early frequency roll-off and potential aliasing products.

As I have shown previously, the TEAC UD-501 has interesting properties including 2 digital filters based on the Burr-Brown/TI PCM1795 (SHARP and SLOW), as well as an OFF mode which results in removal of the oversampling filter and hence a "NOS" mode of operation. Today, let us have a look at the impulse response graphs, and consider issues like aliasing...  I even found another little surprise from this DAC!

First consider the sine wave frequency roll-off I previously found - this is why NOS DAC's sound a bit rolled off on the top end:


I. SHARP (Linear Phase) filter.

Let us start with the SHARP filter because this is the standard filter implemented in most DACs where you do not have a choice of settings. As you can see from the frequency graph above, this looks like the "classic" brick wall, and as you have no doubt seen, the impulse graph looks "classic" as well:

I played back a 16/44 "impulse" file and "recorded" it with my E-MU 0404USB at 24/192 to obtain that image above from Adobe Audition if you're wondering. Notice the positive deviation (up) which correlates with the phase of the impulse file therefore the TEAC maintained absolute phase. This is the standard "linear phase" filter with moderate amounts of pre and post-ringing. Here are graphs using white-noise to demonstrate the steep filter roll-off around the Nyquist frequency.

16/44 - White noise:

24/96 - White noise:

And here is what a 19kHz -10dB sine wave looks like with this filter measured up to ~100kHz (similar to John Atkinson's recent measurement changes in Stereophile which he discussed in the April 2013 issue, page 180):

We see a number of harmonics present with the largest being up at 38kHz (-90dB amplitude so obviously inaudible) representing one octave above the primary signal at 19kHz.

Although there is pre-ringing in the impulse response - hence lower temporal resolution, the good thing about the linear phase filter is that audible phase distortions are minimized. Also linear filters tend to measure very well compared to other implementations mainly because of the high frequency resolution which is what we usually look at with our FFT measures like frequency response, intermodulation distortion measurements, etc.

II. SLOW (Linear Phase) filter.

Next, let us consider the SLOW filter with a more gradual and earlier top end roll-off. I believe in some circles, the term "apodizing" may be used to refer to these filters although other places seem to also associate this term with minimal phase filters - if there's a simple consensus definition of "apodizing" as it refers to digital audio, please help clarify this for me. Here's the impulse response:

Nice...  It's still a symmetrical profile so it's a linear phase filter with low phase distortion. The (supposedly bad) pre-ringing is significantly reduced, hence better temporal characteristics, but here's the price one pays:

16/44 - White noise:

24/96 - White noise:

Notice that in both graphs, the roll-off doesn't hit the noise floor until well beyond the Nyquist frequency; we're looking at close to 35kHz for 16/44 and almost 75kHz with 24/96! No doubt this will result in aliasing distortions (the 19kHz -10dB graph):

There you go. Notice that high amplitude 25kHz aliasing distortion showing up now almost up to the level of the 19kHz primary.

So, basically we see a compromise with the SLOW filter...  Allow more aliasing, but also significantly decreasing the duration of the pre-ringing in the impulse response plot.

III. Digital filter OFF ("NOS").

The last of the TEAC UD-501 standard settings is of course with the digital filter OFF - the "NOS mode".

Impulse response:

Wow... No pre-ringing. It's essentially a square wave representing the duration of a single 16/44 sample. But in order to achieve this of course, the price to pay is tremendous:

16/44 - White noise:

24/96 - White noise:

Without any filtering, all the aliasing distortions get through. NOS DACs are said to sound "dirty" for this reason although of course many folks subjectively find the sound pleasing. Behold the 19kHz -10dB signal and all the aliasing and harmonics that gets through:

"Impressive"... Again, the price to pay for essentially having "perfect" impulse response with zero pre- or post-ringing. I would say that these effects are the most audible. So for those folks who really advocate for the "NOS sound", I guess it just means they prefer noisy, inaccurate reproduction with numerous harmonics and aliasing distortions. (I would love to see how these graphs look like on those expensive Audio Note NOS DAC's!)

IV. Minimal Phase filter!

Surprise! The TEAC UD-501 also has a minimal phase filter mode. This one is implemented by the 24/192 upsampling setting coupled with the digital filter turned OFF. Here's the impulse response:

As you can see, with a minimal phase filter, pre-ringing is not an issue. However, all that "energy" has been shifted into post-ringing. In fact, given the long ripple trail (about 4ms compared to SHARP filter 0.8ms start to finish of impulse), the absolute temporal resolution is the worst with this filter. However, since many believe that post-ringing is more "natural" and furthermore masked by the primary signal, its presence isn't particularly problematic (according to them). Here's the rest of the graphs:

16/44 - White noise:

24/96 - White noise:

Using an onboard ASRC chip, the upsampling algorithm does a excellent job achieving a sharp frequency roll off to prevent signals going beyond Nyquist.

Here's the 19kHz -10dB signal:

Very nice - even cleaner than the SHARP filter (as one would predict given the lower temporal resolution). Some harmonics present but no aliasing distortion.

What's the price to pay for minimal phase filters? The post-ringing duration is quite long in this implementation. Also, given the non-linear characteristic, there may be audible phase distortion.

V. So what?

Yup... Now you know what the graphs look like and the options available on the TEAC DAC (and of course variants of these filters with other DACs)...

So what?

Objectively, I think it can be said that the fact that NOS DAC's don't just plain sound awful really speaks to just how forgiving our ears are!

Subjectively, as one who aims for accuracy in waveform reproduction, I've found that my "favourite" remains the standard linear phase (SHARP) filter both based on what I hear and intellectual satisfaction. I've never been a fan of the NOS sound - the rolled off highs and slight "dirtiness" to the sound quality robs it of resolution IMO (I presume this is secondary to the high aliasing distortion). I will however give a thumbs up to the TEAC engineers for the minimum phase upsampling with digital filter turned OFF. Some audiophiles have commented that in many DAC chips, it's actually not the pre-ringing that is an issue, but rather the processing of the digital filters themselves and taking out these built-in filters improves the sound quality... At least there's that opportunity on the TEAC - I'll have to listen a bit more...

One final thing. Consider this, just how audible is pre-ringing anyways? Realize that music isn't an impulse so these graphs are artificial exacerbations of the "ringing", just like testing with square waves generally do not show perfect instantaneous transitions in real life equipment. But even if I zoom into that SHARP impulse response (note I purposely inverted this impulse), this is what I see:


We have 7 waves over 60 samples, measured at 192kHz. This means we're looking at low amplitude pre-ringing at around the Nyquist frequency ~22kHz (remember 16/44 impulse signal). Hmmm, what kind of human physiology has the capability to hear that lead up to the primary impulse wave? Has anyone ever proven this is audible in music? Any references to controlled trials? Even the golden ears at Stereophile seemed unclear about the significance of these filters in that 2006 article before folks started claiming pre-ringing was "bad" (they were even listening to maximal phase filters with lots of pre-ringing and didn't dislike that nor show clear preference to the minimal phase filter).

As usual, if anyone has information/data/results about the audibility of these digital filters, please drop a note!

Time to go listen to  those 2013 Eagles remasters now...

(PS: Looking at the oversampling function of this TEAC DAC, I was hoping ASUS could have done something similar with the XONAR Essence One as I noted a few months ago - instead they made a gimp upsampler which rolled off way too early! Unfortunate.)

Addendum: As suggested by Shoddy in the comments - if I just have a look at the pre-ringing waveform from the SHARP (linear phase) filter, boost the levels and check the FFT; here's what it looks like:

Indeed, most of the energy of the pre-ringing waveform seems to be clustering around the Nyquist frequency and measures about 10 dB louder than what I assume is low frequency noise...