Amanero – Buffalo II DSD with Foobar
FIRST TIME, HURRAY!
Got DSD working with the Amanero to Buffalo II:
- Works with the re-clocking of the bit-clock mod (can’t take it out now :-))
- No need to change any wiring to the Buffalo II DAC. Supports PCM and DSD with the same connections (This likely only works with the Sabre32 DAC because the designer decided to support both PCM and DSD with the same connections). There is also an issue with channels being “swapped”. See update at the end of post.
- Used foobar with asio4all and foo_dsd_asio (kludgy but works)
- DSD file from 2L (DSD64 which is 2.8MHz)
How do I know it is playing DSD?
foobar says so:
And of course, the display says so🙂 :
I coded “DSD” long, long ago but this is the first time it shows up🙂🙂. The code reads the status register in the DAC and reports whether the stream is SPDIF, PCM or DSD. So according to the Sabre32 DAC it is receiving a DSD stream. If I measure the DSD pin in the Amanero board, it should read 3.3v.
The sample rate says “44,099 Hz” (44.1KHz) because this is the frequency of the DSD stream divided by 64, which is the same as the bit clock for 44.1KHz PCM. I think I should revise the code and show 2.8224 MHz instead.
Well, there is no going back now… Many thanks for posters at the Amanero thread in diyaudio for getting foobar to work with the Amanero board which does not yet support ASIO. And also Javier over at rockgrotto. The kludgy part is having asio4all output to the Amanero board and having foo_dsd_asio output to asio4all.
There is an excellent and detailed guide at rockgrotto. Here I just give the outline on how to set up foobar.
After installing foobar2000,
From the foobar2000 website, download:
- WASAPI output support 3.0 or newer (optional)
- ASIO support 2.1.2 or newer
From the Super Audio CD Decoder website, download:
- foo_input_sacd-0.6.1.zip or newer. Gives you “foo_input_sacd” (SACD decoding plug-in) and “ASIOProxyInstall-0.6.0.exe” which gives you “foo_dsd_asio” (DSD asio output plug-in)
From the ASIO4ALL website, downloadg
- ASIO4ALL 2.10 or newer
Note: there is a DSDIFF Decoder 1.4 plug-in in the foobar website which is not used in this configuration.
In foobar -> preferences you will see the following (I also downloaded the HDCD decoder, but it is not necessary for DSD):
Double click on ASIO4ALL to launch the control panel. If you don’t see the control panel it is minimized on your task bar. Configure ASIO4ALL by selecting the Amanero board. ASIO4All will work with all the output devices in Windows 7 since they all conform to the WDM driver architecture. Click on the little icon to highlight it.
Now configure foo_dsd_asio by selecting ASIO4ALL as the ASIO driver (if the Amanero board supported ASIO, it would show up here). This is the kludgy part: output to Asio4All which outputs to the actual device.
Note the DSD Playback Method settings: DoP Marker 0x05/0xFA. “DoP” means DSD over PCM. Marker 0x05/0xFA means use the marker (for DSD) as specified in the proposed “USB Link for DSD Audio via PCM Frames” open standard [link][link]
Note also that the SACD plug-in can also convert from PCM to DSD. There is a discussion here about that feature: [link] and also at the code repository [link]. You can convert PCM material to DSD64 or DSD128 on the fly. In my aging ThinkPad T60, the conversion on the fly takes 20% or processor load. Below it is set for no PCM to DSD conversion.
Select the output device for DSD:
Configure the SACD plug-in for DSD. If you configure for PCM it will convert DSD to PCM:
Here it is converingt DSD to PCM. Here is setting for PCM conversion at 88.2 KHz:
And in this setting, the DAC would be receiving PCM (“I32” means PCM input set for 32-bit I2S)
The DPLL is alive and well when using DSD. It must lock to the incoming clock. The unlocks are there but they don’t “sound” the same: rather than a “skip” of the music, they sound like a “hiss”, like a burst of white noise, when the DPLL looses lock.
For DSD-64 files (2.8224Mbit/s) settings “Lowest” and “Low” do not work. Once in a while you will get a burst of “hiss”. Had to use “Lowest-Medium”.
After having stable play of DSD with “Low-Medium”, I then played a 192K track and it experienced unlock. Switching back to the DSD, it also experienced unlocks (hiss). After upsetting the DPLL, it seems to take some time to stabilize again. This means that for multi-format, multi-sample-rate, the only practical setting for the DPLL is “BEST”
Input connections in BII
The reason why both I2S and DSD works is due to the way the inputs to the Sabre32 chip are configured in BII. For this to work on BIII, they inputs need to be configured the same way as in BII and the switch to input remapping enabled. In addition, the output of the USB interface board must corresponds to the BII input arrangement both in I2S and DSD mode.
The Amanero board pin assignment is compatible with the way BII assigns its inputs in I2S and DSD as such:
- I2S DATA becomes DSD1 in DSD mode
- I2S CLK becomes DSD clock in DSD mode
- I2S FSCLK becomes DSD2 in DSD mode
Seems to be a “standard” way of configuring I2S and DSD outputs. The EXA device also has similar configuration [link]
Here is the input configuration of BII with DSD input (click for larger)
Here is the input configuration of BII with I2S input
The DSD channels are swapped with respect to the PCM channels [link] and both channel arrangements are “standard”. This means that this “automatic” switching works, but the DSD channels (or PCM channels) need to be swapped. The wiring can obviously be swapped with a relay, but then it is not “automatic” anymore, and you now have a relay in the signal path.
The solution is to swap the DSD channels in the foobar player. I’ve documented the procedure here: [link]