foobar Configuration for DSD (With Amanero Interface & Buffalo DAC)
See updated information here: https://hifiduino.wordpress.com/2013/04/06/amanero-pcm-and-dsd-update/
(Update 11/21/12) DRIVER 1.0.56
- Driver identification to ASUI4ALL is correct. Testing shows that there is no “resampling” to 48KHz.
- Channel mapping is correct for Direct Sound output, WASAPI output and foo_dso_asio for both PCM and DSD
- Use the setup instructions here but skip the custom channel mapping step
Note: previously I thought with this version of the driver the DSD channels were still inverted, but they are not.
(Update 11/19/12) WHICH DRIVER FOR AMANERO?
For now, stick to driver 1.0.5 and use the procedure outlined here. The latest drivers (1.0.54 and 1.0.55) resample 44.1K to 48K if using foo_dso_asio in order to support DSD. If you don’t use foo_dso_asio as output and use for example WASAPI, then there is no resample.
The reason is because the latest driver identifies the Amanero board (at least to ASIO4ALL) as not supporting 44.1K. Below the comparison between the 1.0.5 driver and the 1.0.55 driver:
In the meantime, the 1.0.5 driver works well for both PCM and DSD. I will update this post once a more stable driver is released.
PCM AND DSD CHANNEL ORDER
foobar is able to play both PCM and DSD files through a USB interface such as Amanero or ExaDevices. When connected with a Buffalo DAC, the same wiring can be used (for both PCM and DSD), resulting in a seamless operation without requiring source switching.
However the channel order for PCM and DSD is swapped. When playing DSD with the same wiring as PCM, the right channel will appear on the left and the left channel on the right. This can be fixed by swapping the wiring manually or by using a relay, but defeats the seamless mode of operation that could be achieved. Further, adding a switching mechanism may introduce unwanted noise or other disturbances to the signal, and takes away the “straight wire” configuration that audiophiles long for :-).
CONFIGURING FOOBAR FOR PCM AND DSD PLAYBACK
Fortunately, there is a solution which is based on swapping the channels in the SACD plug-in for foobar. Summarized here are the steps in configuring foobar for correct playback of both PCM files and DSD files.
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.
DSD Channel Swap
(Only needed if your DSD channels are swapped. This happens if you use driver 1.0.5 or earlier)
Now you need to create a custom channel map for f00_dsd_asio. This is done in order to swap the channel. Click “Add New” in the Custom channel mappings interface
Configure the new channel mapping as shown:
- Choose the foo_dsd_asio driver from the select list
- Assign “Technology Streaming 1” to Right and “Technology Streaming 2” to Left. (The default is 1 to Left and 2 to Right)
- Give it a proper name (e.g.: “foo_dsd_asio – RL”)
Click OK and you will see the new custom channel map in the list
Select the output device for DSD (the custom channel map that you just created). Note that If you select “foo_dsd_asio”, then you will have the channels swaped:
Note: with driver 1.0.56 or later which fixes the channel swap, just use foo_dsd_asio
Configure the SACD plug-in for DSD. If you configure for PCM it will convert DSD to PCM:
In order to test your configuration, you can download any Stereo test file from the internet. I downloaded 3 simple mp3 files that would test “Left Channel”, “Right Channel” and “Both Channels” [link]. I then converted the files into DSD files by using the free AudioGate application.
Put all the six files into foobar and play them one by one…