Older entries: HIFIDUINO@BLOGGER.

Interesting details of Weiss Implementation of ES9018

2012/01/20 11 comments

SYNCHRONOUS CLOCKING

The photos below shows the inside of the Weiss 202DAC. Notice that there is no local oscillator, the location/pads where the oscillator should be located is empty.

(photos taken from different sites in the internet. Japanese sites have the best pics)

I would suspect that the clock is provided by the audio interface chip (DICE chip) which derives its clock from its local oscillator as shown below

According to the specification of the DICE chip, the crystal frequency shall by 24.576MHz (section 3.1.1.1).  This frequency multiplied by 4 results in a frequency of 98.304MHz. According to Enjoy the Music, this frequency is what is used to “drive” the ES9018 chip.

According to Russ White [link],

The best thing to do if you desired a synchronous clock is simply to supply one that is an exact multiple of the incoming bit clock. But if you do both 44.1khz and 48khz based multiples that is going to mean two master clocks. The way to do this is to use the same master clock that is actually used to generate the bit clock (by division). I have implemented this using my XMOS proto board. It works quite well, but you still want a fairly high speed clock.

Operating like this allows the DPLL to basically free wheel. It does not even have to try to maintain a lock. :)

This seems to imply that sample rates may be resampled to 192K  (an even division of 24.576) and then sent to the DAC

People at diyaudio have been experimenting with synchronous clocking with great results. The other message here is that the forthcoming XMOS interface from TPA will allow this kind of synchronous clock interface which is favored by the likes of Weiss

C529 BATCH: SAME AS MY BUFFALO II :-)

I think the batch number means week 52 of year 2009. Notice also the location of the Buffalo II DAC and compare to the Weiss implementation.

USE OF BUILT-IN FILTERS

I have been trying to access the programmable feature of the ESS DAC without any success. According to the review at Enjoy the Music,

1. About Filter A and B. These are stated to be “upsampling filters,” but no real detail is given in the manual. Are they similar to other manufacturers upsampling filters, i.e. one is for say 96kHz and the other for 192kHz Upsampling? Does this mean DAC202 cannot be set to bypass upsampling (44.1kHz native playback with oversampling only?).

Answer: The A and B filters are the ones used in the ES9018 DAC chip, i.e. the “factory presets” so to speak. In the ES9018 all input signals (independent of their sampling rate) are upsampled to about 1.5MHz. The B filter has a softer transition band than the A filter. We plan to add more filters to those two.

This leads me to think that even industry-leading edge people like ESS have not been able to use the programmable filter feature of the DAC. Weiss does say that they “plan to add more filters”, but right now it seems that feature is not available.

In any case, Stereophile published the response of the two built-in filters (left is the sharp filter)

WHY SO MANY RELAYS?

The relays are Panasonic TN relays.

The DAC202 has four selectable coarse analog settings and provide 1.06, 2.12, 4.15, and 8.15v at the analog outputs. These are related to the gain resistors at the output stage. The relays are there to select the appropriate resistor for the desired gain. In addition, there may be relays selecting the appropriate input pins for I2S and SPDIF (although you could permanently wire and switch between I2S and 3 other SPDIF inputs just by programming the registers in the DAC chip as detailed here [link])

Code compatible with Arduino 1.0

2012/01/09 9 comments

I’ve updated the Buffalo Code to make it compatible with Arduino 1.0. Check the code section

NEW SETTINGS

Preceding the sample rate number there is an oversampling indicator

  • Oversampling: (^)
  • Oversampling bypass: (.)

Next to the DPLL setting there is a “mode” indicator

  • Normal: DPLL setting is x1: (NOR)
  • Multiplier: DPLL bandwidth is x128: (MUL)
  • Jitter Eliminator is off: (OFF)

These setting are probably only useful if you use the DAC in synchronous mode (feeding an external clock that is synchronous with the data).

OVERSAMPLING BYPASS ON 80MHZ BUFFALO II

Based on previous experimentation and also as suggested by others, I attempted to turn off oversampling in order to play 352KHz material without the noise problem. I added code to automatically turn off oversampling when high sample rate was detected.

Unfortunately, it didn’t work. Oversampling bypass works 0nly if the incoming sample rate is 384KHz. I simulated this by having the Musiland o3 USB interface do the upsampling (it could have been Quicktime doing it but all I had to do is set the sample rate in the Musiland control panel to 384KHz), and I confirmed the sample rate in the Arduino display.

With incoming sample rate below 384KHz, the following was observed:

  • DPLL locks if there is no music playing. The measured frequency is 64x smaller
  • DPLL is unable to lock if music is playing. When the SR is 352K, it can intermittently lock (very rapid lock/unlock). When the sample rate is 192K or below, there is no music output.

GUI SUMMARY

DISPLAY MODE

The normal mode of operation is the “display mode”. In this mode, moving the rotary encoder only changes the volume level: clockwise increase volume (decreases attenuation); ccw: decreases volume (increases attenuation)

SELECT MODE

To enter select mode, you press down on the rotary encoder (to activate the switch in the rotary encoder). If there is no activity within 4 seconds (adjustable in the code), the code reverts to normal mode.

In select mode, a right pointing arrow indicates which parameter may be changed. Every click of the switch of the rotary encoder switch moves the arrow one position; to change the parameter, rotate the rotary encoder. In this mode the sample rate is NOT updated.

REMOTE CONTROL

  • Button 1: Increase volume
  • Button  3: Decrease volume
  • Button 5: Mute/unmute

The mute function is implemented to kill the volume instantly but softly restore the volume level to the previous setting.

New Driver and Imminent Support for Macintosh OS

2011/12/29 6 comments

Update (1/8/12): The (alpha) mac driver does not work -no one has reported it working. They are aiming at another release before they leave for New Year…

Update (1/4/12): There is a Macintosh driver in the beta folder. I attempted to install it on OSX-Lion but I got some error messages even though the files were copied into the proper directory. But I couldn’t see the device in the sound control panel or MIDI setup up panel. There hasn’t been an announcement or instructions yet…

Beta version of driver for Macintosh to be available in a week. According to Musiland,

MAC support for audio is more powerful than Windows. The WIN platform does not directly support 32bit and 384kHz. You need to write your own API. MAC has native 32bit and 384kHz support.

Latest version of the Musiland USB Series driver: MlCyMon_2.2.0.0_build20111228.exe

  • Mainly Minor bug fixes, support for 02US Dragon model
  • In the past 3 months, since the release of version 2.x, the driver has been updated several times in response to bugs reported by the users. The company is becoming more responsive in updating the software. Below is the latest UI (with the HDCD “light” enabled in the config file)

Musiland Dragon

2011/12/28 19 comments

Musiland has released yet another update of their USB interfaces. This time the “02US Dragon”

Enhancements:

  • 200K gates FPGA, Similar to 03US
  • Support to 32Bit/384kHz.
  • Better headphone amp, similar to 03 US
  • Support for external DC supply (in addition ot USB power)
  • MULINK output
  • Lower distortion sound.
  • Volume knob (digital)

More photos over at Soomal [link].

Comparison with 02US and 03US

Feature 02US 03US 02 Dragon Comparison
USB Interface CY7C68013A-56PVXC CY7C68013A- 56LTXC CY7C68013A- 56LTXC Same device, different packaging SSOP vs QFN. Still USB2 speeds
Clock
24 Mhz Crystal 24 MHz CTS-CB3 Oscillator
24 Mhz Crystal The clock used in the 03 has a Phase Jitter (12kHz-20MHz): < 1 ps RMS. Dragon uses a crystal, the same as the old version
FPGA XC3A50A; 2 CMs XC3S200A; 4 DCMs Soomal confirmed it is a XC3S200A; 4 DCMs According the Dragon user manual, there is no “fast” and “precision” Sample Rate Control modes. This indicates the use of 4 DCMs that can be dedicated to independently generate the 44.1 and 48K family of sample rates.
DAC PCM1793DR: 113 dB
THD: 0.001%
PCM1798DR: 123 dB
THD: 0.0005%
PCM 5102DR: 112 dB
THD:0.0022%
Dragon uses Ti’s true 32-bit, 384KHZ DAC. This version has the best specification of the 510x series.
I/V OP275 MC33079 This is a voltage-out DAC so there is no need of I/V conversion The industry is moving towards using V-out devices to facilitate design and lower costs.
Head Amp None TPA6120  TPA6120 Similarly to 03, Dragon has a high performance headphone amp: SNR: 120 dB; THD+N: 0.00014%
Output Toslink, Coax Toslink, MULINK Toslink, Coax, MuLINK More output options than 02 and 03
USB Interface USB2 USB3 USB3 Dragon has a USB3 connector, leveraging the higher power of USB3 (900mA vs 500 mA). The interface speed is still USB2 because of the CY chip used.
Power Mains DC-DC supply USB DC-DC supply USB and External (5v-12v) DC Dragon will allow the user to use any external DC supply. There is a relay next to the DC jack. Seems to be used to cut the USB power when external DC is used
Other - EEPROM on backside of board  Volume knob (digital)
Street Price $125 $160 Same as old 02 Already available in Taobao for ~700 RMB
More Photos Soomal Soomal Soomal

02 Dragon or 03?

From the comparison above, the 02 Dragon comes very close to the Monitor 03. The DAC in the 03 has better specifications, but the 02 Dragon has a DC jack for external (cleaner) power. The only other potential difference is the use of a crystal vs clock (the 24MHz part). Seems that if your goal is to use the device as a USB interface to your DAC (you will still need to tap the I2S signals), the 02 Dragon will not only save you money, but will allow you to use a cleaner external power supply.

Hifiduino with VFD Display

2011/12/09 5 comments

Mr. AR2 (diyaudio, www.burningamp.com) has implemented the code for his BII DAC but this time with a very cool looking VFD display. The display used is a drop-in replacement for the 20×4 LCD and requires no code modification. In addition, the superb photos you see here (click for larger photos) are by themselves a work of art. Mr. AR2 is a professional photographer.

Digital portion is housed in older Proceed case that I gutted and placed my parts inside. I used their PS for pre regulation, and than added the rest of my parts. I am using Arduino Uno to control DAC and I used VFD display. VFD display is fed by separate regulated 5V since it takes 250 – 300 mA. That is the existing one shown on the front panel board. VFD is Noritake CU20045 – UW5J which is from their series as direct LCD replacement, pin to pin.

Proceed had a lots of parts that I could use and I wanted to preserve their front plate with all moment switches and LEDs. So I made the opening to protrude VFD screen in the place where there was original screen, and I paced a another board on the back of that. That is where I positioned Arduino and did all connections for rotary encoder, IR diode and switch.

This implementation is part of the project I have been working on last several months. It uses Titan USB to I2S converter. Titan is manufactured by LightHarmonic better known for their  DaVinci DAC. It provides multichannel output at 384 kHz and it sounds just astonishing. For now I am using Buffalo 2 as DAC, but planning to drop in ACKO DAC with ESS 9012.

In the analog output I use Legato 3 and suppling it with Shunty regs from separate case. Two cases bellow are the ones I made – modified and they house power supply and analog buffers with transformers and analog volume control. My volume control is passive relay controlled, and as I am typing this I am listening to the system. I have to say I cannot hear the difference between volume on Sabre compared to volume in analog. Your programming works really well and volume and remote are working exceptionally.

I truly enjoyed these pictures. Check out his work.

Edifier buying Stax?

2011/12/08 2 comments

On the heels of the announcement by Bill Gates partnering with China to develop 4th generation nuclear reactors, here comes a news item that is just as earth shaking (at least to the audio world :-) ) -Translated with Google:

At Edifier’s eleventh meeting of the Board of Directors December 7, 2011 meeting, considered by “the acquisition of Japanese STAXLtd. 100% stake in the motion.” The Board confirms that its own funds, in cash to acquire Japanese STAXLtd.100% equity, the transaction price of 1.2 billion yen (according to December 6, 2011 Exchange 100 yen exchange 8.1411 yuan exchange rate, equivalent to 97.7 million yuan) . “Equity Transfer Contract” on December 6, 2011 signed, and in consideration by the Board of Directors and approved by relevant Chinese department of commerce for the record effect only.

That is approx US$ 15,000,000

Update: looking at the original press in Chinese, the numbers are 120,000,000 yes or approx US$1.5M. That is a really low price to pay for the company.

1.2亿日元(按照2011年12月6日外汇牌价100日元兑换8.1411元人民币汇率计算,折合人民币976.93万元)

iBasso’s ESS 9018 DAC plans have changed

2011/12/08 Leave a comment

Update: the D7 is now available, but the DAC is the WM8740. I thought I saw “WM8741″ in their earlier announcement.

iBasso changed their plans of releasing a portable ESS-based portable DAC/Headamp.  The D7  will now have the Wolfson WM8741 instead. Could it be that the peculiarities of the DAC (as reported here) prevented them from releasing it on a “h/w” mode (fixed) configuration?

However, they have announced two new products:

A DAP (Digital audio player) with the ESS 9018 DAC

The DX100 is our reference Digital Audio Player (DAP). It can play most of the 24Bit/192kHz Lossless music. The whole design is based on the ES9018, which ESS claim as “The World’s Best DAC Chip”. We are finalizing the DX100 now. We can release it within 20~45 days.

The following are some main features. We will release more information later this month.
• Support up to 24/192 Decoding
• ES9018 DAC Chip
• Built-in +/-8.5V Headphone AMP
• Up to 24/192 Optical/Coaxial Output
• 256-Steps Digital Volume Control

You can read the discussion at head-fi

In addition, they are also announcing a desktop DAC based on 4 ESS 9018 DACs. This should be interesting.

Musiland Driver for MAC

2011/11/26 1 comment

This just in:

No release date yet…

Check out the thread here: [link]

Update: Customer support indicated that the driver is “still buggy” and there is hope of a beta release “this year” [did not say solar year or lunar year :-) ]

Which Digital Isolators for I2S? …or NOT

2011/11/24 6 comments

WHY USE DIGITAL ISOLATORS?

Use of digital isolators for I2S audio signals have been proposed by both industry people as well as diy people.

But why use a digital isolator? For one thing, it adds some jitter into the signals it is supposed to isolate. But I think one reason is to isolate the “dirty” digital side, from the “clean” side. In other words, isolate the “dirty” power (and signals) from the PC from the clean power in the DAC.

From the power supply point of view since there is no power shared between the two sides of the I2S interface, that leaves the Gnd connection that can be isolated between the PC-side and the DAC-side. From the signal point of view, noise on the I2S lines can also be isolated.

NVE has an application note describing the benefits of isolating I2S signals (and another paper on data converters in general):

This application note is about isolation electronics in high fidelity digital sound, and in particular, techniques that can be used to reduce the noise floor of any given system.

…the goal remains the same: elimination of known sources of noise and error in the forward path of the music signal. NVE’s unique GMR isolators can help achieve that goal.

…NVE manufactures the lowest distortion digital isolators in the world today. Precision edge placement with 50 ps of jitter allows the designer to transfer signal data from CD transport to audio DAC without noise induced phase error.

For those curious about how this technology work, here is a chip dissection of an NVE part: [link]

Texas Instruments has a paper describing the different technologies used in digital isolators. A design guide also provides good information for PCB designs with the use of isolators.

Spec ADUM 3440
NVE IL715
Si8440 ISO7240M
Speed 150 Mbps
110 Mbps 150 Mbps
150 Mbps
Propagation delay
20 min, 36 ns max
12 typ, 18 ns max.
3.0 min 9.5 ns max
12 min 24 ns max
Pulse width distortion
.5 typ, 2 ns max
2 typ, 3 ns max
1.5 typ, 2.5 ns max
1.0 typ, 2.0 ns max
Propagation delay skew
16 ns max
4 typ, 6 ns max
2.0 typ, 3.0 ns max
-
Channel to channel match
2 ns max
2 typ, 3 ns max
0.5 typ, 1.8 ns max
0 typ, 1 ns max
Pulse Jitter - 100 picosec typ.
250 picosec peak
1 ns peak to peak
Input-output capacitance
2.2 pf (1MHz test) 4 pf (1MHz test)
2 pf (1MHz test)
2pf (Input capacitance)
Transmit channels
4 4
4 4
Technology Magnetic coupling Giant Magnetoresistive
RF Capacitive coupling
Price $8.85 $10.20 $2.94 $6.63

Manufacturers are also comparing their offerings against competing offerings for example,

Analog Devices has a white paper comparing their ADUM devices with NVE’s isolators. The paper shows the following results:

Whether these issues are important for audio/I2S applications or not, probably depends on the actual conditions (noise levels, etc) in the signal lines.

DIY PROJECTS

There has been some discussion on using I2S isolators but no conclusive “wisdom”. Seems to be a good thing with no negative impact to the I2S signals.

I found these projects…

Project 1 [link] (IL715-based)

Project 2 [link] (IL715-based)

COMMERCIAL IMPLEMENTATIONS

Fidelix I2S over HDMI interface (based on PS Audio’s) [link] (IL715-based)

Exadevices EXAU21 [link] (Likely IL715 based as EXA indicates the use of GMR technology)

Galvanic isolation of the I2S output from the FPGA core and the USB ground virtually eliminates jitter and common noise originated by the PC. Isolation is achieved by using Giant Magnetoresistive (GMR) Digital Isolators. The barrier capacitance between the board circuits and the I2S outputs is 17 pF.”

High Res photo from here [link]

Centrance DAC MINI [link]

Uses IL715.

There are two in the photo, (I think) one for the USB receiver chip and one for the SPDIF receiver chip

NVE IL715

From the example projects above, we can see that the overwhelming favorite digital isolator is the NVE IL715.  It is an SOIC part and thus DIY-friendly.

Summarizing the data from the data sheet we have:

•  +5 V / +3.3 V CMOS/TTL Compatible
•  High Speed: 110 Mbps
•  High Temperature: −40°C to +125°C (IL715T/IL716T/IL717T)
•  2500 V RMS  Isolation (1 min.)
•  2 ns Typical Pulse Width Distortion
•  100 ps Typical Pulse Jitter
•  4 ns Typical Propagation Delay Skew
•  10 ns Typical Propagation Delay
•  30 kV/µs Typical Common Mode Rejection
•  Low EMC Footprint
•  2 ns Channel-to-Channel Skew
•  0.3″ and 0.15″ 16-pin SOIC Packages
•  UL1577 and IEC 61010-2001 Approved

NVE manufactures the lowest distortion digital isolators in the world today. Precision edge placement with  50 ps of jitter allows the designer to transfer signal data from CD transport to audio DAC without noise induced phase error.

ESS 9018 DAC to be used on portable headphone DAC/AMP

2011/11/13 3 comments

iBasso has announced the D7 portable DAC/AMP which incorporates the ESS 9018 DAC.

The D7 “Sidewinder” is coming

We are going to release the D7 “Sidewinder” after about two weeks.
The following are the main features.
1, True 24Bit/192K USB-DAC, supports bit for bit decoding. (in other words, it isnt upsampling)
2, Asynchronous USB transfer
3, Up to 24Bit/192K coaxial output
4, RCA output and Line out.
5, Built-in headphone amplfiier that run off of USB power.
6, Measures 93*60*22mm.

According to a thread at headfi release will be around December…

No price specification but I would guess in the $300 range as their current top of the line with a dual Wolfson DAC sells for $275. Should be interesting to see a portable implementation of this DAC.

Update: “Under $300

Update: iBasso changed plans and now the D7 has the Wolfson WM8740 DAC. However it uses the XMOS USB interface

Why is 80MHz Not Enough?

2011/10/18 31 comments

HYPOTHESIS

I am going to speculate the reason why a Sabre32 DAC needs a 100 MHz clock to correctly handle sample rates of 352.8K and above.

Sabre32 oversamples the incoming data at 8X  before it is passed to the ASRC (the “jitter eliminator). In the ASRC, the data is re-sampled to a higher rate still [link].  The “final” sample rate -the rate coming out of the ASRC is entirely determined by the master clock, and it is fixed at MClk/64 [574]. Thus for the 100MHz Buffalo, the resampled rate is 1.5625 MHz and for the 80 MHz Buffalo, the resampled rate is 1.25 MHz [link]

Maximum sample rate supported by clock frequency

The maximum sample rate is the clock frequency divided by 64 because in one cycle there are 64 samples (32 per stereo channel)  that must be clocked by the system. There is also no reference of clock multiplication inside the Sabre32 DAC. Thus clock frequency divided by 64 should indeed be the maximum sample rate within the DAC that can be accurately clocked.

If we take a look at the tables below, we note that for some incoming higher sample rates, 8X is not possible because it exceeds what the clock can provide. For example, we know that the 80 MHz Buffalo can play 192K material with absolutely no problems. 8X oversampling of this sample rate results in an upsampled rate of 1536 KHz, far, far exceeding what the 80 MHz clock can provide

In such cases, I suspect that the oversampling switches down to 4X (Other DACs such as the WM8741 requires manual switching down of the oversampling when  higher incoming sample rates are used. I would assume Sabre32 does this automatically)

If we look at the 4X column for sample rates 352.8K and 384K we notice that:

  • For 80 MHz clock, the oversampled rate exceeds the maximum rate
  • For 100 MHz clock, the oversampled rate falls within the maximum rate

Thus 80 MHz is not sufficient for oversampled 352.8K and 384K material.

According to the designer of the DAC…

Dustin Forman, the designer of the Sabre DAC over at diyaudio:

Yes you can bypass the internal upsampler if you like. You can put data in at 8X. X can be up to 192k. So that means its possible to put data into the chip at 1.536MS/s. Now that would require a 98.304MHz bit clock (64*8*192k), but the chip will do it if your not worried about running those kinds of clocks and data on an audio board.

The above shows that in order to “move” all the bits of the incoming sample, we need a clock frequency of at least 64*8*FS. “8″ is the oversampling, whether applied internally or external to the DAC. If we tabulate the data we get the following minimum clock frequencies:

This also shows that if 100 MHz is the maximum frequency specified for the DAC, then at some point the internal oversampling switches from 8X to 4X.  Because we also know that with an 80 MHz clock you can perfectly play 176.4K and 192K material, I suspect that the 8X to 4X transition happens at FS>96KHz.

The table also shows that an 80 MHz clock, frequencies up to 192K are supported and for a 100 MHz clock, all shown frequencies are supported.

Even higher frequencies

The datasheet specifies that the maximum sample rate that can be supported by the Sabre32 DAC is about 500KHz. If we keep oversampling the base 48KHz by whole numbers we get these frequencies and the required clock frequencies:

If the DAC can support up to 500 KHz sample rate and if we assume that the internal oversampling falls back to 4X at the higher sample rates, then we can speculate that the DAC has been designed for clock speeds of more than 100 MHz.

Over at diyaudio, “coris” has been trying higher than 100 MHz clocks with success. (The upper limit seems around 130MHz which coincides with the above observation). Coris seems to have settled at 125Mhz as being the top end of the clock frequency. This matches quite well with the specified Max Spec if our assumption is correct

About the clock oscillator…
I`ve been used that time an 133,3 Mhz oscillator. I personally noticed a huge improvement in the sound quality after changed that clock. Unfortunately, and even though the sound it self was very high in quality (perceptual point of view), I`ve noticed in the same time a kind of sparkling noise in the silence passages of recordings. This was happened only when a sound file was played (CD, SACD, or wav/FLAC, 192khz/24bit). In the pauses between tracks was no any noise. It is very possible that in this last case, was about a mute function which was ON… Anyway, I concluded that this is not acceptable. So I had to go down to 125Mhz clock frequency…
It still be a very good sound quality, not as high as at 133Mhz, but is very well for me. And no any noise at all now as before. I think to go even lower to 122,88Mhz clock frequency. This clock frequence match accurate (by 5 factor) ones of the usual samplings frequencies. I`m just waiting now to get my ordered oscillator and try this way.

IN PRACTICE

If the hypothesis is correct, then there is no solution to playing 352.8K material except increasing the clock frequency. No matter what you do, if you apply internal oversampling, the resultant sample rate cannot be supported with an 80 MHz clock.

The data sheet for the Sabre32 DAC specifies the  system clock frequency requirement as follows: Serial Normal Mode: fc>192fs. For fs=352.8Khz then the fc>67.7376 MHz. The system clock in the original Buffalo II DAC is 80 Mhz which meets the specification with ample margin. In fact it has a margin of about of about 18% higher. So it should work fine with 352.8Khz audio material.

Data sheet may be wrong:

But wait a minute, 192/8=24 so perhaps this is the clock frequency requirement of the 24 bit  DAC, the ESS 9008.

Indeed the specified minimum clock frequency for the ESS 9008: 192fs. The maximum sample frequency for the 9008 is 192KHz. If we do the math, for a stereo bit depth of 2×24, 4x oversampling and 192KHz sample rate, we get 48x4x192K=36,864MHz. We see the use of 40Mhz clocks in the evaluation boards.

For the 9018, which was an upgrade from 24 bit to 32 bit, I believe the clock frequency must be >32×8=256 or 256fs. So for 352.8Khz then the fc>90.3168 MHz and for 384KHz material, then fc=98.304 Mhz (Note, this is again assuming that at the higher sample rates, the internal oversampling is reduced from 8x to 4x)

Solution for 80 MHz clock:

It has been shown that turning off the internal oversampling allows flawless playing of 352.8K material with a 80 MHz clock. 352.8K material is the same as oversampling 44.1K material at 8x. This falls well within the max sample rate that a 80 MHz clock can support. Register 17 controls the oversampling ON/OFF. The ASRC upsamples this frequency to a final 1.25 MHz. Should sound pretty good without oversampling.

I shall add oversampling ON/OFF to the next version of the code

Musiland Driver 2.X: Release Version

2011/10/08 12 comments

(Update Oct 26, 2011). Another update: MlCyMon_2.1.0.0_build20111026.exe in the main driver folder.

WHAT IS NEW IN THIS UPDATE

Slight changes in the UI (notice “System Volume”, and other small details)

According to this post:

  1. New technology and software algorithms to improve the accuracy of the signal to improve sound quality
  2. Improved compatibility with 64-bit systems, AMD chipset, systems with 4GB or less of memory, WDM and ASIO
  3. Minor tweaks to the user interface (as shown above)
  4. Support Windows 8 Preview
  5. New DMA playback mode, for improved high sampling rate playback (352.8kHz and 384kHz)
  6. Improved compatibility with a variety of playback software
  7. Reduction of system latency

(Update Oct 13 2011). Yet another update: MlCyMon_2.0.1.0_build20111013.exe in the  main driver folder. All of these releases are “out of the beta folder” but they are still called beta releases.

WHAT IS NEW IN THIS UPDATE

  • Better support for 64bit Windows, Windows 8 and AMD chipsets
  • Improved 352.8kHz and 384kHz playback in Monitor 03US
  • Utilization of undocumented 32-bit API for full 32 bit support across the entire Musiland Monitor series
  • New “DMA playback” mode for reduced latency, and better 32 bit support
  • “White” interface

You can download MlCyMon_2.0.1.0_build20111009.exe from main driver folder. You can find more information in the Musiland Tab.

NEW FEATURES

The main visual difference is the HDCD indicator which lights up when it detects an HDCD encoded track.

In order to enable the HDCD feature (and indicator) , you must change the “hdcd” value from 0 to 1 in the Config.ini file found in C: \ Program Files \ MUSILAND \ Monitor Series (USB). After you change it, close (exit) the Musiland control panel and restart it. [The installer installs the config file with only read permission. You need to add the write permission to the config file in order to edit the value]

FIXES:

- Fixes a noise problem when playing 352.8KHz material through the Musiland built-in DAC/Headphone amp. There used to be a hissing sound when playing at that higher sample frequency. This was supposed to be fixed previously, but previous version would not install in my system due to “invalid license” problems.

- The default sample rate setting is persistent across reboots. The old driver would reset to 48 KHz after a system reboot

In addition:

  • Support for Windows 8
  • Support for Chinese language (yes, they released English menus first)
  • Digital volume level can be saved

REMAINING PROBLEMS

  • At min or max setting, the volume will jump to max or min if you keep “turning it”
  • MMDI does not work
  • For Monitor Series 01 and 02: a second consecutive click on the sample rate generation mode will turn off the indicator like this:

STILL NEED SOME POLISHING

Installed for the Monitor 01 USD (no Analog output)

Note: there have been two earlier releases (one day apart) that are no longer available. If you downloaded MlCyMon_2.0.0.0_build20111007 or MlCyMon_2.0.1.0_build20111008, they have some minor problems (not compatible with Monitor 01 and 02 series, not announcing to the OS as 32 bit drivers and not being able to save the default bit rate in the sound control panel)

Arduino Leonardo

2011/09/30 Leave a comment

Arduino Leonardo is a lower cost Arduino, but with enhanced capability. The lower cost comes from the use of the ATmega32u4, which has a USB core built in (eliminating one chip out of the board).

Very likely it was inspired by Teensy

In addition, compared to the “regular” Arduino it has the following enhancements:

  • Extra .5K of RAM
  • Additional 4 pins
  • Can be programmed to emulate a USB HID (Human Interface Device -such as a mouse or keyboard)
  • Number of external interrupts?  The chip supports 4 external interrupts. I have not found out how many interrupts are supported by the Arduino s/w

One of the main attractions is the USB HID aspects of the chip. Since I use a computer (iTunes) as music server, you can do some navigation (of  iTunes) with a keyboard. Arduino Leonardo (and Teensy) can be programmed as a keyboard, sending keyboard strokes to the computer through USB.

Update (4/1/12): I got my own teensy

REMOTE “KEYBOARD CONTROL”

Readers might remember that the “left” and “right” buttons of the Apple remote have not yet been mapped to anything in my code. This is a great opportunity to map these buttons to keystrokes that would allow song navigation in iTunes with the remote control.

You can already do this with “Teensyduino”, the add-on s/w to enable the use of Arduino s/w on the Teensy board. This example shows how to program sending a CTRL-ALT-DELETE sequence to a computer attached to the board:

// press and hold CTRL
Keyboard.set_modifier(MODIFIERKEY_CTRL);
Keyboard.send_now();

// press ALT while still holding CTRL
Keyboard.set_modifier(MODIFIERKEY_CTRL | MODIFIERKEY_ALT);
Keyboard.send_now();

// press DELETE, while CLTR and ALT still held
Keyboard.set_key1(KEY_DELETE);
Keyboard.send_now();

// release all the keys at the same instant
Keyboard.set_modifier(0);
Keyboard.set_key1(0);
Keyboard.send_now();

ARDUINO vs TEENSYDUINO

There is some information here regarding the support for USB HID in Arduino:

The Arduino 1.0 RC1 (found here: http://code.google.com/p/arduino/wiki/Arduino1 ) includes the core and a single example so you can get a feel for it.  There are a few remaining issues to be fixed and a lot more examples to write and I’d love to hear your feedback.

The core files are in hardware/arduino/cores/arduino.  The relevant bits are:
* USBAPI.h
* USBCore.cpp and .h
* USBDesc.h
* CDC.cpp
* HID.cpp
* plus a few changes in HardwareSerial, main.cpp, Arduino.h, and pins_arduino.h (now located under the new variants/leonardo structure)

This is all subject to change, of course, but this should be pretty close to complete.

The example is in libraries/Mouse.

On the other hand, Teensyduino has bee supporting USB HID for quite some time and it already supports Arduino 1.0 RC1, and everything is documented. Teensy can emulate the following USB devices:

  • USB Mouse
  • USB Keyboard
  • USB Joystick
  • USB MIDI
  • USB Serial

The current support and documentation for USB HID in Arduino is pretty bare. Not enough to write some code [at least for the non-expert]. For the time being I think the only viable option is Teensy.  It is also good to see that the developer of Teensy is also involved in the development of Arduino, so we can expect that all the features of Teensy will be migrated to Arduino

TRYING LEONARDO WITHOUT LEONARDO

Adafruit board: (Now with Leonardo bootloader)

For now, the Arduino Leonardo board is not yet available for purchase but support for the ATmega32u4 chip is already included in Arduino 1.0 RC1. You can try the software with probably any ATmega32u4-based board. morecat_lab has done just that.

PROBLEMS WITH ROTARY ENCODERS?

2011/09/12 3 comments

Some users have reported problems when using rotary encoders with detents (“clicks”). The detents are typically specified as for example:

  • 15 pulses per revolution / 30 detents
  • 24 pulses per revolution / 24 detents

This effectively means ”two detents per pulse” in the first example and “one detent per pulse” in the second example.

The problems that have been reported is that there are two changes per click.

The rotary encoder routine used in the current version of the s/w is very simple: you generate an interrupt when there is a change in signal A and immediately compare the value of signal A with the value of signal B. The current version of the software specifies the interrupt handler like this:

  attachInterrupt(0, rotEncoder, CHANGE);

This means that for every pulse in the rotary encoder there are two interrupts: rising edge of the pulse (one change) and falling edge of the pulse (another change). If your rotary encoder has one detent per pulse (like the image below), then you will be processing two interrupts and therefore making two changes. See figure below.

In order to make a single change per detent, change the code to:

  attachInterrupt(0, rotEncoder, FALLING);

or

  attachInterrupt(0, rotEncoder, RISING);

The above change will cause the interrupt handler to generate an interrupt only with the rising or the falling edge of the pulse but not both.

The current code considers CCW (counter clock-wise) direction when signal A = signal B. CW direction is when signal A is not = signal B. This means that you could use either RISING or FALLING. But you can try them both.

If you have a rotary encoder with no detents, then making the change will cut the number of changes per revolution in half. If you feel your rotary encoder is “too sensitive”, then you can use the above change to make it
less “sensitive”.

If you continue to have problems, the only other option for attachInterrupt() is:

  attachInterrupt(0, rotEncoder, LOW);

For more info see the Arduino reference on attachInterrupt.

CHOICE OF ROTARY ENCODER

I have two rotary encoders that I have tested the code with: one with detents and one without detents. The One with detents is a discontinued (over 10 years ago!) Panasonic model (Panasonic EVQ-WTEF2515B) available in eBay for $6-$7 (Used to cost $1.50 at Electronics Goldmine, but sold out over there). I purchased this long time ago when I started to write code for the WM8741 and had forgotten how this rotary encoder behaves.

According to the datasheet, the Panasonic encoder has 15 pulses per revolution and 30 detents. This means two detents per pulse. That is why I had to use “CHANGE” as the condition for the interrupt handler.

I find ~30 clicks per revolution to be a good number for this application. Whether they are 1 or 2 clicks per pulse it probably doesn’t matter; you just have to make sure you use the interrupt routine properly as shown above

BOURNS has two suitable encoders: 24 detents/24 pulses and 24 detents/12 pulses (both with switch)]

ALPS also has suitable encoders: 30 detents/15 pulses (with switch). Notice the location of the detents with respect to the pulse.

Jitter: 100MHz Clock 10x Better Than 80MHz Clock?

2011/09/02 Leave a comment

I decided to compare the jitter value between the 100 MHz clock vs the 80 MHz clock based on the datasheet from Crystek. This is what I got:

80 MHz: 2.29 ps RMS

100 MHz: 0.24 ps RMS (almost 10x better!)

I used the online jitter calculator to determine the numerical value for the jitter based on the data points shown in the phase noise graph.

For the 80 MHz part: RMS jitter=2.2864 ps (keep in mind that most specifications start at 100 Hz whereas this measurement starts at 10 Hz)

For the 100 MHz part: RMS jitter=0.23586 ps! WOW. This is 10x lower than the 80 MHz part. (but whether you can hear a difference or not, that is another matter)

CLOSE-IN JITTER

Notice that most of the jitter in the RMS measurement comes from the close-in part of the frequency spectrum, in particular the region up to 100 Hz.

“Lower grade” clocks conveniently ignore this part of the measurements in their jitter specifications. For example, the specification for the Crystek C33XX, (the typical “small” clock found in many audio products) says:

Jitter RMS: 12kHz~80MHz: 0.5psec Typ., 1psec Max

DOES IT MATTER?

One authoritative paper is an AES paper titled Specifying the Jitter Performance of Audio Components. The concluding remark with respect to “useful” jitter measurement is the 100Hz value and the RMS jitter from 100 Hz to 40 KHz

Jitter spectra, when plotted properly, can be very useful.   They can be even more useful when accompanied by numbers for RMS wideband jitter (100Hz corner) and RMS baseband jitter (100Hz-40kHz).  The makers of audio clocking chips should consider providing this information in their product datasheets.

If we then compare both clocks starting from 100 Hz, then we get:

  • 80MHz clock: 0.00462 ps (100Hz ->)
  • 100MHz clock:  0.00123 ps (100 Hz ->)

Now we are talking about a difference of about 3 fs (femto-sec) or 340 atto-sec

Read more here and  here

Hifiduino-BII-Musiland in Japan…

2011/09/02 Leave a comment

Atsukita blog describes hacking a Musiland 03US for the I2S and feeding a BII controlled by an Arduino.

I like the use of a modular connector and using the aperture of the MULINK connector (which is not very useful for non Musiland DACs)

Here is the DAC playing 192K material over I2S:

Notice that the best DPLL setting for 192KHz is “medium”

BII 80MHz + 352.8KHz Audio + Silence = Noise

2011/08/29 5 comments

(NOTE: This behavior and the solutions have been documented by Bunpei over one year ago. Here I am reporting my own experiments which confirms his findings)

MASTER CLOCK SPECIFICATION

The data sheet for the Sabre32 DAC specifies the  system clock frequency requirement as follows:

Serial Normal Mode: fc>192fs. For fs=352.8Khz then the fc>67.7376 MHz. The system clock in the original Buffalo II DAC is 80 Mhz which meets the specification with ample margin. In fact it has a margin of about of about 18% higher. So it should work fine with 352.8Khz audio material.

PLAYING MUSIC

As reported in this post, the BII-8oMhz DAC can play 352.8Khz audio. It seems though to “struggle”, like being at the “edge” of its capability, occasionally emitting a “click”,  but with some adjustments it plays fine and almost noise free.

PROBLEM

However, there is a peculiar problem with 352.8Khz audio material: when the track is paused, stopped or during the gap between songs the DAC will emit a loud hissing sound (sort of like white noise). This noise responds to filter and volume settings in unexpected manners:

  • The level and tone changes with the DAC digital volume setting but not in relation to it. For example, one setting will give you low volume and lowering the volume one click will greatly increase it.
  • FIR sharp filter results in a louder noise than the slow filter
  • The quantizer bit depth also changes the amount of noise coming from the DAC, with 8bit giving the lowest amount and less than 9bit
  • The IIR filter and the notch delay don’t seem to have any effect
  • DPLL  bandwidth even by enabling the 128x DPLL bandwidth multiplier did not have any effect. I applied the maximum DPLL bandwidth and the noise did not go away

The white noise problem can also be replicated with the following:

  • Reduce the volume to zero using the volume control of the application, the OS or the device driver
  • Reduce the volume to near zero. The noise will start showing up in the form of “clicks” and “cracks”
  • Playing a silence track.
  • Fast forward/reverse the track (the application mutes the sound when doing this)

The problem has also been reported if using an ExaDevices EXAU21 USB interface and also using the SDTrans transport.

It seems that somehow there is a reversal and silence is interpreted as sound and because there is no real data, you get white noise. If it were erroneous low level data picked by the I2S wiring then it should respond to the lowering of the volume, but it doesn’t

SOLUTIONS

Software solution

I have not yet found a good software solution to this problem.

The only thing that mitigates this problem is enabling the “automute loopback” feature of the chip. The DAC can detect the “zero” level and mute itself (if so programmed). However, it cannot automute in zero time but it takes a fraction of a second as it ramps to mute after detecting the “zero” level.

The result is that the noise can be limited to a short burst of white noise whenever silence is encountered. It is still annoying but not as annoying as continuous white noise :-) .

Additionally, I tried different things to reduce or eliminate this burst of white noise but so far the following measures don’t seem to make any difference:

  • Detect the zero level sooner (shorten the time in zero level that constitute zero level)
  • Increase the value of zero level (I have changed it from the default value of -104db to -60db)

Hardware solution

Upgrade the clock to 100Mhz

The Buffalo II DAC was upgraded to 100 MHz clock. The Buffalo III also comes with a 100 Mhz clock. This is the “official solution”.

If you can do simple soldering, you can buy a 100 Mhz oscillator at Mouser for about $30. The mod is very simple and can be completely non-destructive by adding a second oscillator to the board.

  • First, cut off the power to the existing clock by removing L3 in the backside of the board.
  • You can use the existing low noise regulator to power the new clock. To do this you can leverage  the Trident connectors: VDD_XO and GND.
  • Then use proper bypass of the VDD_XO pin close to the clock. In order to further minimize noise, use a ferrite prior to connecting the power to the clock
  • Finally you take the output of the new clock and connect it to the pad next to the text R17

I haven’t decided to do this mod.  The only reason at this time is for “proof of concept” because there isn’t much material out there that is in 352.8KHz.

For those who are planning to do the mod, look at the comments section. There is a comment from Bunpei (http://www.zeph.com/lowmelt.htm) showing the “best” way to replace the clock.

More HIFIDUINO…in SERBIA

2011/08/26 20 comments

I found these photos while perusing the web (I think they are  from Serbia…)

The gray LCD is very good looking on the brushed aluminum case (superb workmanship I might say…)

I got more photos form the builder of this work of art… Better looking than most commercial implementations BRAVO!

HIFIDUINO for DUAL MONO

2011/08/24 2 comments

NEW (8/26/11) Update in the code section

My first version of the dual mono code did not conform to TPAs dual mono output phase (but works well), where in each mono board the phase of one (side) output is in anti-phase configuration with the other (side) output. My second attempt to be compatible with TPA dual mono configuration did not work either (this version did not work at all).

I think I have fixed the problem in the latest version (v B09g) which should be functionally equivalent to the TPA firmware

Version B09g supports (with simple code commenting/uncommenting):

  • 80MHz and 100 MHz clocks (require for accurate display of sample rate)
  • Stereo configuration
  • DUAL MONO -Official TPA
  • DUAL MONO -In-phase

The code has been tested in stereo configuration and MONO LEFT  (since I only have one BII :-) ) and 80 MHz oscillator. I tested both “in-phase” and TPA’s “anti-phase” configuration with a single MONO board. Let me know if there are any bugs since I cannot fully test all the supported configurations.

Why “DUAL MONO In-phase”?

Just as DUAL MONO one-side is in-phase and other-side is anti-phase( TPA configuration) facilitates hooking up two output stages in the official configuration, the DUAL MONO In-phase output configuration facilitates hooking up to “non official” implementations for example:

  • DUAL MONO Single IVY/Legato:  sum up (+ to + and – to -) the outputs of both sides of left MONO board and connect to left channel of output stage and do the same for the right MONO board
  • DUAL MONO Active two way: for each MONO channel board: connect normally with one IVY/Legato.  One channel of the output fees high frequency and the other channel feeds low frequency.

Enjoy!

New Tab: Sabre32

2011/08/21 2 comments

The Buffalo III DAC has been shipped and some diyers have already received it. Because of its flexibility, it almost begs for being controlled by something like HIFIDUINO :-) . For the benefit of those users (and all Buffalo DAC users), I am summarizing details on the chip in the Sabre32 tab.

Musiland 03 I2S to Buffalo II DAC: Playing 352.8Khz Music

2011/08/16 22 comments

Hurray! I can pass 352.8K Music to the Buffalo II DAC.  Even with the limitations of the older 80MHz Buffalo II, I was able to hear super clean music by optimizing some of the parameters in the DAC. Here is proof:

Downloaded a 24bit/352.8K file from 2L

(Photo of artists taken from: http://www.flickr.com/photos/arvola/5692730311/in/photostream)

Played the file with MusicBee (to allow automatic switching of sample rates through WASAPI exclusive mode). Notice that the sample rate is measured to be exactly 352,800 hertz.

CLICKS and NOISE with 352.8Khz FILES

There is absolutely no underlying noise when playing the track, except there is an occasional “click” sound. The clicks are very short, low volume, sort of like a static “click”. Reminds me of the clicks when playing analog LPs. This was somewhat due to the wiring configuration I used. When I twisted the LRCK and DATA lines together (in addition to having previously twisted the BCK and GND lines), the clicks were largely reduced. In the above track I couldn’t hear them. In another  solo piano track, the clicks were also gone.

The other factors in getting rid of the clicks are the settings for the DAC. I used the slow FIR filter and 8-bit true differential in the quantizer setting.

Strange noise: when the track is paused, stopped or during the gap between songs with the sample rate remaining at the high rate (352.8K), the DAC will emit a loud hissing sound. The level and tone of this hissing sound changes with the DAC digital volume setting with some setting giving more volume than other settings but not related to the amount of volume attenuation. In addition, FIR sharp filter results in a louder noise than the slow filter. The quantizer bit depth also changes the amount of noise coming from the DAC. The IIR filter and the notch delay don’t seem to have any effect.

The situation can be replicated if you digital reduce the volume to zero using the volume control of the application, the OS or the device driver. If the volume is reduced to near zero, clicks and cracks noise will emerge.

The situation can be further replicated if you play a silence track. The problem has also been reported if using an ExaDevices EXAU21 USB interface.

Because of some of these issues related to rendering  ultra high sample rate files, The Buffalo II DAC was upgraded to 100 MHz clock.

JITTER

Unfortunately I was not able to get drop-free play with the DPLL setting at “lowest”. The level of jitter (as determined by the DPLL setting) seems equal to the modded Musiland MINI.  Keep in mind that I disabled the power to the analog section and replaced the regulators with low noise types in the MINI. The Musiland 03 is in stock form with the analog power section intact. So overall, there could be some improvements with regards to jitter.

Although disappointing, this level of jitter is expected as the FPGA has an inherent minimum amount of jitter when processing the clocks. Similar levels (as indicated by DPLL setting) have been reported with different USB interfaces.

Personally, this “quest” for lowest DPLL setting is pretty much “academic diy” as I hear no differences in sound with the different DPLL settings. In addition, one of my goals is to keep the headphone amp so removing the power to the analog section is out of the question.

Note: for 352.8KHz material I set the DPLL to “BEST”

SAMPLE RATE PRECISION

As seen in the display above, the sample rate generated by the FPGA is pretty much exact. The Musiland MINI had a variation of 4-5 Hz for 44.1K material. This is probably due to the fact that  24Mhz oscillator is used instead of the 24Mhz crystal that was used in the older models.

WIRING

I paired BCK with GND and twisted the wires to provide some shielding. The Buffalo locks to BCK

The wires are probably much longer than they need to be in this first iteration. LRCK and DATA are just single wires with no shielding. Even with this “rudimentary” setup, I did not experience any noticeable problems such as noise or dropouts.

Update: I also twisted the LRCK and DATA lines together and the occasional “clicks” went away…

SUMMARY

Al in all I am very happy with this device. Just as the Buffalo II sets a price/performance benchmark for high-end DACs, so does the Musiland 03US set a price/performance benchmark for high-end USB audio interfaces. On top of that, you also get a good headphone amplifier and another DAC

Musiland 03US I2S Output MOD

2011/08/15 2 comments

The Musiland 03US can deliver 32bit, 384KHz sample rate material to its internal DAC. Getting this signal out through I2S would be of great benefit to an external DAC such as the Buffalo II DAC which natively supports 32bit/384KHz sample rates.

In addition, Musiland claims that the new implementation (larger FPGA) has been optimized to further reduce jitter. We can determine (in a qualitative manner) the amount of jitter reduction by looking at the minimum DPLL setting in the DAC which is an indication of incoming jitter in the signal.

NOTE: When using the Musiland MINI with the I2S output mod, the minimum DPLL setting is some where between “LOW” and “MED-LOW” which is one to two notches above the lowest setting. [The DPLL settings scale in the DAC are "LOWEST", "LOW", "MEDIUM-LOW", "MEDIUM"...]

Here are the connections for I2S:

Not being very good with soldering surface mount components, I had to practice and experiment and arrived at the following implementation:

  • Use 30 gauge wire
  • Wrap the thin wire around a thicker wire to allow some stiffness in order to hold the thin wire in place and prevent it from moving to adjacent pins when applying the soldering iron. I found this essential
  • Pre-tin the wire and then heat the wire on top of the pad, allowing the solder to flow
  • Use additional liquid flux
  • Use regular lead solder
  • For Bufflao II/III DAC, we don’t need MCK. We need LRCK, BCK, DATA and GND

Here is the result:

You can see that the above method is completely non-destructive. The 4 pins are glued with hot-glue.

After the mod, I tested the headphone output and works fine. At least 1/2 of the value of the Musiland 03 is the heaphone amplifier.

Musiland Monitor 03 US: A True 32bit/384KHz USB DAC/AMP

2011/08/01 26 comments

Musiland Monitor Driver v 2.0.0.x USER Guide in the Musiland USB Tab

-

Buying stuff from China seems getting more efficient:

  • Paid: 7/28
  • Shipped: 7/30
  • Received: 8/1
  • I purchased it from Tam Audio

Before I try to tap the I2S lines, I’m going to use as a headphone amp for a while…

PCM1798 at 384KHz?

Interesting information at the Musiland forums:

The DAC in the Musiland o3, the PCM1798 is capable of being fed 384Khz signal. Even though the specification does not mention support for this high sample rate, according to Musiland, the DAC is capable of accepting it. This also means that tapping the I2S lines will enable 384KHz support to an external DAC such as the Buffalo DAC. Tapping the lines would be pretty easy:

(Click for larger image)

384KHz SAMPLE RATE

I was planning on doing some measurements on the I2S lines, but this blog from Japan already did the testing.

Recall that LRCK gives you the sample rate

  • Looking at the 192K trace, you will notice that the LRCK cycle is approx 520 “ticks”. Taking the inverse gives you 0.001923. The result closely matches the 192KHz sample rate
  • Looking at the 352.8 KHz trace, you can see that the LRCK cycle is approximately 280 “ticks”. Again taking the inverse gives 0.003571 which closely matches the 352.8 KHz sample rate

Thus it has been proving the the device passes the native sample frequency up to at least 352.8KHz sample rate

32BIT BIT DEPTH

Musiland 03 announces itself to the operating system as a 32 bit device. You can see this in the sound control panel:

The PCM1798 DAC in the Musiland 03 device is a 24 bit device. In I2S mode it accepts 24 bits of data on a 32 bit data frame as shown in the datasheet:

If we look at the Musiland I2S data plot from the aforementioned blog entry (an excellent blog BTW), we see the following:

Notice that there is data beyond bit 24 on either the left frame or the right frame. This indicates that 32 bits of data is delivered all the way to the DAC. The DAC, being a 24 bit device, truncates the data from 32 bit to 24 bit.

This is good news especially if you are planning on tapping the I2S lines and feeding a true 32bit DAC such as Buffalo II/III.  But probably does not matter much (in terms of precision) as the Windows operating system audio engine uses 32bit floating point which translate to a precision of 24 bit

TAPPING THE I2S SIGNALS

Can use the via to tap the DATA signal

Sabre32 vs Sabre32

2011/07/31 Leave a comment

There is a report on DAC Shootout over at Stereo Mojo. The more interesting part is the round 2 competition between the Anedio DAC 1 and the Eastern Electric Minimax, both based on the top of the line Sabre32 DAC: ES9018 DAC.

I was able to find out the internal construction of both DACs [link1], [link2], [link3], [link4] and I’ve compared them here.

Appearance: Anedio vs Easter Electric

Volume control: Anedio: digital vs Easter Electric: analog

PCB: Anedio: 4-layer, surface mount components; Eastern Electric: 2-layer through hole

Transformer: Anedio vs Eastern Electric

Regulation: Anedio: looks like low noise regulators; Eastern Electric uses standard linear regulators

Clock: Anedio’s clock looks similar to Buffalo II’s clock (Crystek 950)

I/V conversion: Anedio: OPA1632; Eastern Electric: NE5532

SE conversion: ?? vs NE5534

Musiland releases 32bit/384KHz drivers

2011/07/28 6 comments

http://soomal.com/doc/10100002225.htm

Driver version 2.0.0.0 supports all Musiland Monitor devices up to 192KHz and on the new Monitor 03 up to 384KHz. It is a major BETA release. The company is encouraging trial and seeking feedback

Other enhancements:

  • MU-BASS (BASS equalizer/enhancer) upgraded to MU-DSP allowing the selection of the  center frequency for 5 bands from 20 Hz to 20 KHz. This feature is available for the entire Musiland Monitor family
  • “The objective of this new drive is to enhance the sound quality. The new algorithm reduces the jitter with optimized timing”
  • Sound card volume control is independent from system volume control

More in the USB tab

C D R O M i n g (I)

2011/07/27 1 comment

I discoverd this drive mechanism in a Memorex CDRW drive (model CDRW 4420). This was built by Ricoh during the time where good R&D money was spent in developing optical drives.

Not only does it show engineering sophistication, but it is also good looking. Of the many CDROM drives I’ve dismantled, this mechanism would be proud to be shown outside of the drive enclosure. The typical mechanism is designed to be hidden from sight (because it is ugly) and most of them look similar to the one depicted below:

There is even a technical write-up published by Ricoh [link]. The model number for this optical drive platform is: Ricoh MP7040A.

According to the report, the “pick up module” or PUM has been optimized for read/write speed and shorter seek time (good for data, but probably not important for audio). The picture below is from the technical paper.

POWER SECTION

The earlier optical drive mechanisms employ linear local regulation (as opposed to using switching regulators). Like most computer peripheral devices, it requires 5V/12V power. By tracing the power lines I found that the external 5V supplies the 2933 (3.3v) linear regulators and the external 12V supplies an 8V linear regulator.

According to the data sheet the 3.3 V regulator has a noise figure of 50 uVrms (10Hz- 100KHz). That is pretty good noise specification for a high current regulator. It is comparable to the LT1963 and way better than the common 78xx types. You can see here how regulators stack up in terms of noise figures.

Since this drive is over 10 years old, I changed the original electrolytic capacitors whenever possible. I added additional capacitors to the 5V and 12V input lines.

I made sure the drive continued to work after every mod and dis-assembly (I used a CDROM controller kit and listened through the headphone output).

EXTERNAL POWER

Since the local regulators are linear, there is benefit of also using linear regulation for the external power. I built a simple dual 5V/12V power supply with standard fixed voltage 780x regulators. The transformer was salvaged from a VHS player. Old VHS player use linear power supplies and the transformer is perfect for this application: The typical transformer will give you (at least) two ~8V secondaries and one ~15 V secondary. The second 8V secondary can be used to power the CDROM drive controller kit.

DIGITAL OUTPUT

The digital output comes from the Toshiba TC9450AF chip (I traced the spdif output pin to this chip). In addition I found the pin assignment [link] [link] and figured that the pin numbers for the audio digital outputs are:

  • Pin 1: Digital Gnd
  • Pin 2: BCK (Bit clock)
  • Pin 3: AOUT (Data)
  • Pin 4: DOUT (SPDIF)
  • Pin 8: CLCK
  • Pin 100: LRCK

TESTING I2S SIGNALS

Luckily all the interesting pins are connected to board traces that also have vias. I used 30 ga wire through the vias and affixed them with electrical tape on the back side (no need to solder).

I used my new DSO to check the signals and got the following results:

  • Pin 100: 44.4KHz (eye-balled) : confirmed LRCK
  • Pin 2: 1.42MHz (eye-balled): This is 32x the sample rate. Confirmed BCK.
  • Pin 3: Not a regular signal, meaning it is data modulated. Confirmed DATA

Trace for LRCK (Note, the scope has not been calibrated, or compensated, just updated with the latest firmware):

\

Trace for BCK:

Trace for DATA:

To be continued…

Musiland 03 US

2011/06/28 16 comments

Musiland has introduced a new version of their MONITOR series of USB audio interfaces. The Monitor 03 US will be available in July and incorporates a series of advancements as summarized in the table below.

You can see from the photo the I2S lines (they are on the same pins as before). Like before, easy to tap to feed a higher-end external DAC. Is it worth it to get the new 03 US for modding? Possibly if you also plan to use the DAC and headphone sections are the enhancement are mostly in those areas.

Enhancements in the USB/FPGA sections are small and perhaps not worthwhile to pay 3X the price of a Monitor MINI

Comparison with 02US

Feature 02US 03US Comparison
USB Interface CY7C68013A-56PVXC CY7C68013A- 56LTXC Same device, different packaging SSOP vs QFN. Still USB2 speeds since CY is just barely releasing the USB3 version of the device
Clock
24 Mhz Crystal 24 MHz CTS-CB3 Oscillator
Phase Jitter (12kHz-20MHz): < 1 ps RMS. Functionally it is the same as before, it provides the reference clock for the CY USB chip which then feeds the FPGA. Using an oscillator will likely result in lower overall jitter.The clock in my device is a 50ppm, 3.3V part
FPGA XC3A50A XC3S200A The larger FPGA has 4 DCMs that can be dedicated to generate the 44.1 and 48K family of sample rates. Rather than reloading the multipliers every time there is a change in sample frequency family, they can be loaded at all times enabling fast switching of sample frequency [How the clocks are generated]. Thus there is no “fast” and “precision” Sample Rate Control modes in the Musiland control panel
DAC PCM1793 PCM1798 Dynamic Range: 113 dB vs 123 dB
THD+N: 0.001% vs 0.0005%The PCM1798 is capable of supporting 384Khz sample rate even if not specified in the data sheet. Thus 384Khz SR is supported without resampling all the way up to the DAC
I/V OP275 MC33079
Noise: 6 nV/√Hz vs 4.5 nV/ Hz
Distortion: 0.0006% vs 0.002%
Slew Rate: 22 V/µs vs 7.0 V/µs
Bandwidth: 9 MHz vs 16 MHz
Perhaps the weak link of the entire design? MC33079 is not a well known “audio” device (say as compared to the OPA 4134). See section below for Musiland’s point of view
Head Amp None TPA6120 03 has a high performance headphone amp: SNR: 120 dB; THD+N: 0.00014%. This is also used in other “high-end” designs
Output Toslink, Coax Toslink, MULINK Mulink is a Musiland proprietary interface for 32 bit transfer and beyond. It is here to connect to their DACs and future technologies
USB Interface USB2 USB3 03 has a USB3 connector, leveraging the higher power of USB3 (900mA vs 500 mA). The interface speed is still USB2 because of the CY chip used.
Power Mains DC-DC supply USB DC-DC supply According to Musiland, “new technology” has been developed for DC-DC step-uo, step-down and regulation in order to all the electronics to >90% of their performance from USB power. The first implementation of this technology is the Musiland 03 US
Other - EEPROM There is an I2C EEPROM chip on the backside of the board
Street Price $125 $160 Already available at TaoBao for about 200 RMBs more than the Musiland 02US. Also available from Tam Audio
More Photos Soomal Soomal Overall, you can see an advancement of manufacturing technology with the use of finer-featured devices

About the choice of opamp

As shown  in the table, every component in this new device is “top notch” and well known in the audio circles, except of the opamp.

The new opamp used for I/V conversion has lower noise, but higher distortion as compared to the previous device and especially compared to popular opamps such as the OPA4134.

In addition, the slew rate is also lower: 7 V/us vs 20V/us. Should this be a “concern”? As explained here, even 7 V/us is an overkill for up to 20KHz audio content:

SLEW RATE: Despite what you may have heard or read you only need 0.2 V/uS slew rate per volt of RMS output to perfectly reproduce any signal you’ll ever find on a CD. That number has been verified by several well respected audio engineers like Douglas Self. And it’s conservative–It assumes a worst case full output at 20 Khz which pretty much never happens anywhere but on a test bench. The E7 has about 1.8 volts maximum output, so it needs 0.36 V/uS for the absolute worst case.

Here is another observation from the same blog:

…Any op amp with a slew rate of 3 V/uS or greater is fast enough for nearly any audio application on the planet. And op amps like the 5532 can easily have bandwidths out to 200+ Khz in most applications which results in negligible phase shift or “delays” in the audio band.

Update 7/1/11:

I asked the question of opmap choice at the Musiland forums. This is the answer I got:

Why not use OPA4134 instead of MC33079?
It seems every component is top class for audio except MC33 …
glt 发表于 2011-7-2 00:33

这是为了声音的细节,对于声卡来讲,小信号工作的时间更多。
MC33079小信号放大的性能远超OPA4134,其输入截止电压(OFFSET VOLTAGE)仅有0.15mv,对声音的细节刻画要远好于OPA4134和OPA4228。
乐之邦是一家崇尚技术和科学的厂家,会根据应用合理的使用元器件,而不是别人用什么,乐之邦就用什么。
这也是为什么乐之邦能经久不衰,把其他竞争对手相继甩开的主要原因。

Basically the MC33079 is a better fit to their system as compared to other “more popular” opamps such as the OPA4134. Key in their research is the “small signal” behavior and in particular the offset voltage. Looking at their data sheet, the OPA4134 has an offset voltage of 0.5mV  whereas the MC3309 has an offset voltage of 0.15 mV…

Input offset voltage translate into errors in an opamp circuit. According to this entry:

Another practical concern for op-amp performance is voltage offset. That is, effect of having the output voltage something other than zero volts when the two input terminals are shorted together. Remember that operational amplifiers are differential amplifiers above all: they’re supposed to amplify the difference in voltage between the two input connections and nothing more. When that input voltage difference is exactly zero volts, we would (ideally) expect to have exactly zero volts present on the output.

I suppose as a head amp, it is important to care about noise and offset voltage especially because the device is seldom used at full output (as in the case of a DAC alone) and the volume is controlled in the digital domain. In this two parameters, the MC opamp has better specifications than the OPA part. I believe the choice made by Musiland on the MC opamp makes good engineering sense.

Here is a photo of my own Musiland 03:

8/30/11: Becoming more available. You can purchase in Hong Kong for HK$1080 That is about US$ 140

Further ESS Sabre DPLL Tweaking

2011/06/25 Leave a comment

I don’t know if there is a well defined direct correlation, but this setting gave me a pretty stable lock with DPLL set at “LOW” with the Musiland USB -> I2S. I am pretty happy with the performance of this USB interface so far.

Seems ESS designed the DPLL with low enough bandwidth to be a good experimental gauge of jitter for even the big league USB interfaces.

I can probably do a more scientific experiment by wiring the lock LED to an arduino interrupt pin and count the unlocks within a period of hrs…

Inside FiiO D3

2011/06/23 13 comments

I was intrigued by this DAC based on the industry-leading Wolfson SPDIF receiver WM8805. According to the specifications it is capable of 24bit/192KHz operation and it only costs $30

Just like any good DIYer, the first thing I did was to take it apart…

Main Components

The famous Wolfson WM8805 SPDIF receiver. Even though it is capable of muxing up to 8 SPDIF sources, it is configured in hardware mode and therefore it is configured to have a single input into the receiver. The device has a coax and a toslink input and these are selected with a single pole  switch. Notice also the use of a seam-sealed crystal instead of the more traditional can (most likely for size).

The WM8805 interfaces a Cirrus Logic 4344 DAC (“344″ indicates fixed I2S configuration). This DAC has pretty decent specs at 105 db SNR and -90 db THD+N, a cut above the DACs found in this price range (in reality, you can’t find any DACs at this price range which is a new low). The CS4344 DAC is also found in the Apple Airport Express 802.11n version.

The analog output of the DAC connects to a TI LMV358 opamp

You can see the I2S lines (the 4 diagonal traces), ready to be tapped…

Power Section

The power is supplied by an external 5V DC switching  supply through a standard mini-USB connector. The 5V line (the uppermost trace from the USB connector) connects to a 6.8 (R37) ohm resistor and to the main PS capacitor. This provides a first stage RC filtering to the incoming power.

The 5V incoming is filtered through L5 and  further regulated with a simple discrete Zener diode circuit (basically a shunt regulator) to 3.3V which feeds the DVDD (pin 1, digital core suppy) of the WM8805. This is pretty good filtering and regulation. This line also feeds PVDD (Pin 11, PLL supply) filtered through L2, and feeds the Toslink module through L1. Good use of ferrites for noise filtering.

The zener regulated line also feeds the DAC, with a simple cap bypass.The 102 resistor you see in the photo powers the LED to show Power-on condition.  One of the advantages of the 4344 DAC is that it requires minimal external components. In the case of power, it only has a single power line.

BetterSound: New OSX iTunes Exclusive Mode Player/Plug-in

2011/06/22 Leave a comment

BetterSound is an alternative to Audionirvana, Pure Music, Amarra…

I use Windows 7 and iTunes. Although I cannot take advantage of this new player, I think this is a great development for the audio community

“At least as good as Audionirvana”

Discussion thread: Head-fi.org and here

…compared it against Amarra in playlist/cache mode and actually like BetterSound better. It has a more open sound than Amarra and Audirvana.  The soundstage is both wider and deeper with better instrument placement.  It also seemed to run as good as iTunes itself.  Don’t think you’d even realize this was playing in the background.  With Amarra, there was always some delay and it couldn’t do gapless with loading whole album into playlist.  Audirvana worked great but had to deal with separate player…

Download:

  • Version 0.20: [link]
  • Version 0.21: [link]

New versions will be announced in the thread until the author submits the application to the Apple App Store.

Notable features:

  • Exclusive mode
  • Do not apply sample rate conversion
  • The above two features enables automatic sample rate switching in iTunes, one of the most lacking features of iTunes
  • Two 128MB buffers for playback (good for 3 minutes of 32/96K content)
  • Focus on performance with highly optimized code (minimized thread locking overhead, manual memory management, others)
  • FLAC support (through “Fluke”)

In my opinion, the above features will match all the (bit-perfect) s/w players out there in terms of performance and transparency.

Follow

Get every new post delivered to your Inbox.

Join 27 other followers