Ask Sawal

Discussion Forum
Notification Icon1
Write Answer Icon
Add Question Icon

can foobar play dsd?

4 Answer(s) Available
Answer # 1 #

This process is not for the faint of heart, necessarily, but with these instructions and some diligence, it is certainly possible and valuable once setup.

The page describing the project:

http://sourceforge.net/projects/sacddecoder

The latest release of the sacd decoder project at sourceforge:

http://sourceforge.net/projects/sacddecoder/files/latest/download?source=files

Note that it’s a file with a read me and three components. The first two components are still in the latest release .zip and the third is in the older releases or here:

http://sourceforge.net/projects/sacddecoder/files/sacd_metabase/sacd_metabase.7z/download

The readme is fairly opaque but to a first approximation it says:

Run ASIOProxyInstall-0.6.5.exe to install the foo_dsd_asio proxy. It’s an ASIO driver available to any program on your system that supports ASIO – it receives audio over ASIO and redirects it to another ASIO driver (PS Audio USB Driver in our case), but as it redirects the audio it provides some optional processing functions. For us we want it to wrap DSD in DoP. To set it up you need to go to foobar2000 options, Playback, Ouput and select foo_dsd_asio as your output device. Then in foobar2000 options, Playback, Ouput, ASIO, double click on foo_dsd_asio to open the foo_dsd_asio control panel. There you need to use Device: PS Audio USB Device, DSD Playback Method: DoP Marker 0x05/0xFA, PCM to DSD method: none, Fs: DSD128, DSD/PCM Transition: 0ms.

foo_input_sacd.fb2k-component is an input processing add in for foobar2000, install it like other foobar2000 addins (drag and drop it to the foobar2000 components option page, or if you have a standard foobar2000 installation just double click it and it will install.) This component decodes DSD related input files for foobar2000. It adds a new SACD option page under the tools page in the options. The critical values for us are to use ASIO mode: DSD, Preferable Area: Stereo, Editable tags, and probably Store Tags with ISO.

The sacd_metabase is a directory of user contributed metadata for common SACDs. It’s installation is optional but it might save time if you have many SACD .ISOs. To install it extract sacd_metabase.7z to your foobar2000 configuration folder. To get to your foobar2000 configuration folder, press the shift key as you click on foobar2000’s File menu, then click on Browse configuration folder. The sacd_metabase.7z file can be extracted by WinZip, WinRAR or similar compression programs. At this point you should have a new sacd_metabase directory in your configuration folder. There’s a !!!readme!!!.txt in that folder with a little more info.

http://www.audiostream.com/content/how-play-dsd-file-using-foobar2000 has a set of slightly different recommendations for configuring this stuff.

Here’s exesound’s take

http://www.exasound.com/Blog/tabid/74/articleType/ArticleView/articleId/61/Configuring-Foobar2000-for-ASIO-DSD-DXD-Playback-with-exaSound-DACs.aspx

[4]
Edit
Query
Report
Answer # 2 #
  • Download and install the BluOS Controller app (Desktop version) on a Windows or Mac.
  • Launch the BluOS Controller app and select Settings > Playback.
  • Toggle Enable DSD Playback to On position (highlighted blue)
[3]
Edit
Query
Report
Veluswamy Mallick
INSPECTOR
Answer # 3 #

For a guide on how to losslessly compress DSD file size by 50% very easily with Wavpack 5.x, BatchEncoder and SACD plugin 1.04 (or later) click –> HERE <–

This tutorial is divided in two sections, the first one is intended for those who have DACs that support DSD and want to configure Foobar to play and output DSD. The second section (scroll down) is  for those who either have PCM only DACs or for some reason want their DSD files to be converted to PCM.

Since version 0.9.8 the SACD plugin outputs DSD only in DoP format either through WASAPI or through ASIO. There are still some people who are confused by how DoP works and probably because “PCM” is involved they think there is some sort of intermediate format conversion involved but there is not. DSD stays DSD all the time. Let me try to explain as simply as I can the difference between native DSD and DoP.

Imagine you want to send a pair of shoes to some one. There are two courrier companies available, one will take them “as is”, the other requires them to be in a box in order to accept them. The former is clearly more efficient at managing space in the transport van and can transport more goods in each trip than  the latter which is not as efficient as the boxes takes more space. When the shoes arive at their destination, if the efficient courrier was used they can be used straight away as delivered, if the less efficient courrier was used it will be necessary to remove teh shoes from the box before they can be used but in both cases the shoes would be exactly the same pair. In this example DoP would be the shoe box, it is just a “wrapper” to trick non native DSD compatible USB chips into delivering DSD by making them believe they are transporting PCM. Another chip inside the DAC will strip this wraper and send the native DSD to the decoding chip. This process is less efficient as it requires much more USB bandwidth (van space in the example) thus lowering the maximum supported DSD sample rate. Most DoP only DACs tend to be limited to 384K PCM which means DSD128 will be the maximum DSD rate. DACs supporting native DSD  can easily achieve DSD256 or even DSD512. Thankfuly it is possible to output native DSD should one want to thanks to either through the old foo_asio_dsd proxy or through the newer DSDTranscoder which is easier to setup and performs just as well.

I will consider three different configuration objectives in the following sections ordered from simplest to most complex:

For the time being I will keep the two old foo_dsd_asio  modes (now renamed to mode 4 and 5) in case some one has trouble with the DSDTranscoder component but they will be eventually removed as they are now redundant.

last 10 SACD Plugin 1.x releases log:

02/07/23: Version 1.5.4 – DSD512, DSD1024 playback fixed.

02/02/23: Version 1.5.3 – Excessive trace fixed.

11/01/23: Version 1.5.2 – DSD/PCM transition delay added.

09/05/22: Version 1.5.1 – Dark mode support added.

09/01/22: Version 1.5.0 – Experimental: foobar2000 v2.0 support.

06/20/22: Version 1.4.13 – SACD ISO last area sector reading fixed.

06/14/22: Version 1.4.12 – DSD to PCM converter fixed.

06/07/22: Version 1.4.11 – Experimental: Seamless DSD to PCM for multiple converter threads.

04/29/22: Version 1.4.10 – ReplayGain scan at 0 dB gain again.

04/27/22: Version 1.4.9 – ReplayGain handling is reverted back to 1.3.1 version.

Using this configuration, all PCM and DSD formats will be sent “as is” (ie. unprocessed) to the DAC.

Once the SACD plugin zip file is dowloaded from his Sourceforge site (https://sourceforge.net/projects/sacddecoder/files/foo_input_sacd/) the contents need to be extracted to a folder and installed (see Part 1 of the tutorial). For Bitperfect mode only “foo_input_sacd.fb2k-component” needs to be installed.

Important note:  Remember the plugin only supports standard DoP format for DSD. Some older DACs may no support this mode.

First step  would be configuring the plugin to use “DSD output” or “DSD+PCM” modes. Go to the menu “File” and click “Preferences”, in the left pane of the window that pops up look for Tools and, if closed, click the “+” sign to the left of the word to expand it and then click on SACD:

The difference between “DSD” and “DSD+PCM” is that the latter will send a converted to PCM stream to Foobar so graphic add-ons like VU-meters, spectrographs and so on will work as they do when playing regular PCM files

Other available items are:

Second step would be selecting to our preference or our DAC’s driver options in my case “ASIO: iFi USB Audio Device” as Foobar’s output device:

If your DAC has ASIO drivers compatible with native DSD it is possible to strip the DoP output from the SACD plugin of its PCM wrapper using the DSDTranscoder component and send native DSD instead.

To enable this, run the installer from the DSDTranscoder folder of the extracted SACD plugin location or download the component  from https://sourceforge.net/projects/sacddecoder/files/dsd_transcoder/ , extract the content from the zip and run  the DSDTranscode executable file, accept all default options until installation is complete.

Last 5 DSDTranscoder releases:

01/15/21: Version 1.1.5 – Driver reinitialization when switching between DSD and PCM modes.

01/04/21: Version 1.1.4 – Async mode option added.

12/01/20: Version 1.1.3 – Negative values for “Transition (ms)” option supported.

11/22/20: Version 1.1.2 – Control panel shows for detached devices.

11/13/20: Version 1.1.1 – Start/Stop reentrance fixed again.

Open Foobar, go to “File” in the menu and select “Preferences” then look for “Output” and select the component as the output device as shown here:

Next, to configure the DSDTranscoder double click it in the ASIO devices:

The following pop up window will appear:

At this point you can set the desired output mode individually for each DSD input rate and sample rate family (44.1K or 48K) so it can accomodate every DAC’s supported formats.

My iFi iDSD micro supports native DSD through ASIO up to DSD512 but only for 44.1K based sample rates like SACD rips or upsampled CDs, for 48K based sample rates like those generated by upsampling 16/48, 24/96 or 24/192KHz to DSD it only supports up to DSD256 through DoP. With this component it takes very little time and effort to configure all 44.1K family to output native DSD and leave all 48K family in bypass (leaving the default dash, “-“).

Version 1.0.0 of the plugin introduced an component named “DSD Processor” which provides a very simple way to upsample PCM and/or DSD to DSD (though purists be warned, DSD to DSD upsampling involves an intermediate PCM conversion step). As with the plugin by itself, “standard” DoP is the only available output so it may limit sample rate choice options for those using DACs that perform better with “native DSD” e.g.  Amanero adapter based DACs or the iFi iDSD micro (See Mode 2 for native or mixed DoP/native output).

Version 1.1.1 introduces two new user configurable fields (Window Length and Window Type) plus the possibility of performing sample rate conversion in the upsampling process, more on these a few paragraghs down.

In order to enable the DSD Processor it needs to be selected in the SACD plugin configuration pane:

Then proceed to the “DSD Processor” pane and check the “Use DSD Processor” box:

Now you can configure the output you want for each input indepedently. In the capture above all PCM input formats are upsampled to DSD256 using “SDM type D” without resampling their fundamental frequency and with no “Sample & Hold” but all incomming DSD is left unprocessed.

a) The “Output” column sets the output sample rate and should not be configured to output rates beyond the maximum soported DoP rate of your DAC.

When upsampling DSD Processor allows the user to choose whether to upsample using the same fundamental as the source or change to the alternative one.  If one doesn’t want resampling, output should be set to any of the rates that don’t have the “/48” at the end for 44.1KHz based sources (44.1, 88.2, 176.4 and 352.8KHz) and with it for 48KHz based music (48,96,192 and 384KHz). This can be a very useful option for those who own DACs that do not support 48KHz based DSD or those who want to experiment with the the different combinations de processor engine offers.

b) Windows Length: refers to Sample Rate Converter (Low frequency FIR, Fc is set to 0.5 Fs) Lentgh measured in samples. Value can range from 8 to 8,192 samples with the default being 27 (which is the recommended value). Increasing the lentgh value makes the filter steeper narrowing transition area (between passband and stopband), flatter passband and ading more suppression in stopband but it has the downside of increasing “ringing” (because of more fluctuation in transition area) and a heavier CPU load for longer windows.

c) Window Type:

The following values can be chosen:

The dafult value is Hann (v. 1.1.2, in v. 1.1.1 default value is Rectangular and not recommended). For in depth information please  see here:  Window Function

d) The “Converter” coulmn sets the algorithm to be used for upsampling. Four different algorithms to convert PCM to DSD based on Philips ProTech tools are provided.:

There are no details as to how each of them works and Philips only provides the following table:

It is up to you to test and decide which one you like best or works best in your system though types “B” and “D”are good starting points

c) The “Sample & Hold” column provides an alternative upsampling version for power limited computer processors. Turning on “Sample & Hold” just propagates one PCM sample several times in SDM. It is a “cheap” way of up-sampling “at no cost” to get 2.8 or 5.6 MHz PCM. It’s for PCM->DSD and DSD->DSD. Only suited to low performance systems. Available options are:

The number defines the times each sample is held. Default value is 8X which is recommended for the least powerful CPUs, if your computer can handle it NONE the prefered option

d) The “Precission” field refers to the type of number used to perform all upsampling calculations. Options are 32 bit floating point (32fp), 64 bit floating point (64fp) and integer (Int). Default value is 32fp.

Note: In order to use this mode requires your DAC needs to have ASIO drivers

Since the plugin is not included any longer in the plugin zip file, it needs to be downloaded separately from here ( version 0.9.4 is strongly recommended), decompressed to a folder and installed separately as a any other program.

The advantages of using this Mode 3 over Mode 2 are:

Proxy releases:

11/03/16: Version 0.9.4 – DoP to native DSD path fixed.

11/01/16: Version 0.9.3 – DoP256/DoP512 samplerates added. (Broken functionality. Do not use)

08/09/16: Version 0.9.2 – DSD256/DSD512 converter samplerates fixed.

08/05/16: Version 0.9.1 – DoP input handled.

09/04/15: Version 0.8.3 – Stereo playback for mono DSD sources added.

08/31/15: Version 0.8.2 – More detailed tracing, reset button added.

08/25/15: Version 0.8.1 – Floating point SDMs.

05/29/15: Version 0.7.3 – ASIO API tracing for downstream driver added.

04/06/15: Version 0.7.2 – Bypass for unsupported samplerates in PCM to DSD converter.

05/12/14: Version 0.7.1.2 – DSD/PCM switching fixed.

05/08/14: Version 0.7.1.1 – Experimental: PCM upsampler is removed from DSD to DSD converter.

05/05/14: Version 0.7.1 – Experimental: DSD to DSD converter, DSD path redesigned.

07/29/13: Version 0.6.5 – Optional delay when switching between DSD and PCM modes.

05/06/13: Version 0.6.4 – PCM to DSD multithreading, floating point SDMs.

04/24/13: Version 0.6.3 – PCM to DSD converter fixed.

04/22/13: Version 0.6.2 – Incompatibility with foo_input_sacd 0.6.4 fixed.

03/26/13: Version 0.6.1 – Experimental: PCM to DSD for x48000 samplerates (requires comatible DSD DAC).

10/31/12: Version 0.6.0 – Experimental: PCM to DSD converter added.

Once the plugin has been installed, the first step will be selecting it as Foobar’s output device:

Then go to ASIO and double click foo_dsd_asio:

A new independent window appears where the component can be configured to preference (make sure you select your DAC ASIO driver under “ASIO Device)”:

As you can see this is almost identical to the “DSD Processor” configuration pane though it has an additional column for “DSD Mode” selection and the mentioned additional options for format to format transition “Transition (s)” and “Debug Output”.

Please see Mode #2 for details on how to configure columns a,b & c.

d) The “Output mode” column has the following options:

Note: Since the SACD plugin outputs DSD in DoP format,  foo_asio_proxy will process incoming DSD as per the configuration set for the incomming PCM sample rate:

So should you want to leave DSD unprocessed make sure you have all these PCM  rates with no up/downsampling configured like in the shown screen capture. This may be a little of a nuisance if you have plenty 176.4 or 352.8K PCM music you want to convert to DSD but  presently there is no alternative solution other than resampling these files with SOX to a 48KHz base, e.g. 176.4K->192K and 352.8->384K.

Note: In order to use this mode requires your DAC needs to have ASIO drivers

For the most demanding users Mode 4 provides a little extra tweaking possibilies the previous 3 modes can’t. On the other hand, tough the combination of both components provides the highest degree of flexibility though it may in some cases be less stable.

One example of what can be done with this mode is upsampling 176.4 or 352.8 KHz PM to DSD while being able to output true DSD without intermediate conversions. This cannot be done in any of the previous modes as this sample rates are shared by PCM and DSD64/128 in DoP mode output by the plugin.

Depending on the maximum DSD rate your DAC supports this means upsampling 176.4 and/or 352.8KHz PCM to DoP DSD256 or DSD512 in the DSD Processor component leaving those sample rates free in the foo_dsd_asio proxy for stripping DSD64/128 coming in 176.4/352.8 DoP from their PCM wrapper.

This is how the above would look like aiming to upsample all PCM to the maximum DSD rate supported by my iFi iDSD micro (native DSD512 for 44.1 based PCM and DSD256 DoP for 48K based PCM) while leaving DSD unmolested:

DSD Processor configuration:

Foo_dsd_asio configuration:

….and the missing DSD512 line (Proxy window is not resizeable):

In the table below you can see in red where PCM is upsampled to DSD and in blue where DoP to converted to native DSD.

Using this configuration, all DSD formats will be sent as PCM to the DAC.

Once the SACD plugin zip file is dowloaded from his Sourceforge site (https://sourceforge.net/projects/sacddecoder/files/foo_input_sacd/) the contents need to be extracted to a folder and installed (see Part 1 of the tutorial). Only  the “foo_input_sacd.fb2k-component” needs to be installed.

First step  would be configuring the plugin to use “PCM” as output mode.

Go to the menu “File” and click “Preferences”, in the left pane of the window that pops up look for Tools and, if closed, click the “+” sign to the left of the word to expand it and then click on SACD:

Since Version 1.0.6 a LFE configuration option has been added:

Once PCM is selected from the drop down list it will be possible to configure the desired PCM options such as:

Included filter files in the plugin zip file are:

Other available items are:

[1]
Edit
Query
Report
Messier Anshita
ARCH SUPPORT TECHNICIAN
Answer # 4 #

Yes. Foobar2000 can play DSD files (DSF, DFF, SACD ISO). Read the manual...

[0]
Edit
Query
Report
Partyk McGlashan
School Nursing