Skip to content

Instantly share code, notes, and snippets.

@milnak
Last active March 4, 2025 05:20
Show Gist options
  • Save milnak/c3b4148e574fa7828cc7d24e46d6dbe9 to your computer and use it in GitHub Desktop.
Save milnak/c3b4148e574fa7828cc7d24e46d6dbe9 to your computer and use it in GitHub Desktop.
Foobar 2000 DSD and SACD support: Guide to setting up Foobar2000 player for hi-res audio (DSF, DFF, SACD, ISO)

Foobar2000 DSD and SACD support

I've successfully followed these steps to get DSD (.dsf filetype) and SACD (.iso filetype) playing at high bit rate using foobar2000 on my S.M.S.L M500 DAC.

This has been adapted from "SECTION II" of this page, thanks to "sirblew" for the tip!

Introduction

DSD stands for Direct Stream Digital and it is a high-definition lossless audio format with a twist. PCM signal solutions (like FLAC, TTA or APE) measure a set of bits multiple times per second to capture the audio data, hence the 16/24-bit parameter. On the other hand, DSD uses only one bit but samples it 2.8 million times a second to capture the audio signal.

ASIO Output (Required)

Download and extract foo_out_asio - ASIO Output

Install the asio component:

  • File > Preferences > Components
  • Click Install.
  • Select "foo_out_asio.fb2k-component".
  • Click OK, then OK again to restart Foobar2000.

Set the asio component as the output device:

  • File > Preferences > Playback > Output
  • Device: "ASIO : USB DAC ASIO" (or name of your device)

Optionally, disable all other devices:

  • File > Preferences > Playback > Output > Devices
  • (uncheck all but "ASIO : USB DAC ASIO", for example)

SACD (ISO) Playback

Download and extract foo_input_sacd - Super Audio CD Decoder. This decoder is capable of playing back Super Audio CD ISO images, DSDIFF, DSF and DSD WavPack files.

Install DSD SACD component:

  • File > Preferences > Components
  • Click Install.
  • Select only "foo_input_sacd.fb2k-component".
  • Click OK, then OK again to restart Foobar2000.

Set plugin for "PCM" as output mode:

  • File > Preferences >Tools > SACD
  • Output (per device)
    • Type: "DSD+PCM" (was PCM). Note: DSD+PCM 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.
    • Samplerate: 384000 (was 44100)
  • Converter
    • DSD2PCM Mode: "Direct (64fp, 30kHz lowpass)" (was "Multistage (32fp)"). 30KHz low pass filtered means all DSD noise above that frequency is removed and does not reach the amp.
  • Input
    • Preferable Area: "Stereo" (was "None"). Only stereo tracks are displayed.
    • Editable Tags (was unchecked).
    • Store Tags With ISO (was unchecked). Stores tag info in the plugin folder.
    • Linked 2CH/MCH Tags (was unchecked). Tags added to a SACD ISO will be shared between stereo and multichannel tracks.
  • Click OK

DSF Extraction (optional)

This can be useful if you open an ISO file and want to extract the contained files to DSF.

Download and extract foo_dsd_converter.

Install DSD Converter component:

  • File > Preferences > Components
  • Click Install.
  • Select only "foo_dsd_converter.fb2k-component".
  • Click OK, then OK again to restart Foobar2000.

Ensure "Convert" menu item is enabled:

  • File > Preferences > Display > Context Menu
  • Ensure "Convert" (and child items) are checked.

Now right click a file in the playlist an choose "Convert > DSD Convert".

  • Output format: DSF
  • Path:
  • Output style: "..." then choose file name: "nn. title" and close dialog.
  • Click "Convert".
@gabriels1963
Copy link

Hi there, since many DACs - as SMSL M500 - supports native DSD, why don't use foo_out_asio+dsd component ?

Wasn't familiar with it. I'll check it out, thanks.

Edit: I tried it, and it doesn't support DSF. My approach does.

It does support DSF.
I've converted all my ISO to DSF and on my Denon PMA-A110 I see DSD2.8 for DSF and PCM for FLAC.

@gabriels1963
Copy link

I personally prefer the Mode 2 (Bitperfect outputting native DSD through DSDTranscoder) for my Topping E50 instead.

foo_out_asio+dsd is BitPerfect without the need for DSDTranscoder which has a horrible backgroung humm.

@MarcoRavich
Copy link

MarcoRavich commented Aug 29, 2024

foo_out_asio+dsd is BitPerfect without the need for DSDTranscoder which has a horrible backgroung humm.

Well, it don't seems that simple...

Source: https://audiosciencereview.com/forum/index.php?threads/topping-e50-review-balanced-dac.26219/post-2060706

@gabriels1963
Copy link

gabriels1963 commented Aug 30, 2024

foo_out_asio+dsd is BitPerfect without the need for DSDTranscoder which has a horrible backgroung humm.

Well, it don't seems that simple... Source: https://audiosciencereview.com/forum/index.php?threads/topping-e50-review-balanced-dac.26219/post-2060706

Actually it is simple.
Just skip the DSDTranscoder and install foo_out_asio+dsd
That's it.

Here is how I've set it (just don't select "Digital Audio Interface ....")
Capture1

Capture2

Capture4

Capture3

This is how my Denon PMA-A110 decodes it BitPerfect:

44.1KHz FLAC
IMG_4678

352.8KHz FLAC
IMG_4680

DSD256
IMG_4679

@MarcoRavich
Copy link

Given that I used to exploit DSDtranscoder too, someone seems to except - with some technically-good reasons - that it's not the most effective approach to obtain the best quality results...
...anyway keep in mind that I'm referring to the operating mode of specific DACs based on ESS chips.

@gabriels1963
Copy link

gabriels1963 commented Aug 30, 2024

Given that I used to exploit DSDtranscoder too, someone seems to except - with some technically-good reasons - that it's not the most effective approach to obtain the best quality results... ...anyway keep in mind that I'm referring to the operating mode of specific DACs based on ESS chips.

If you output via USB then modern DACs (from the last 5 years at least) do know how to support and switch between formats.
Some can up-sample PCM to DSD but I found it useless IMHO.
I merely think DSDTranscoder is just another layer in the sound path and I found that for me it works best without it.
I could not play 192KHz PCM and above with DSDTranscoder in place and I didn't want to start digging into it.
Now, one can also use ASIO Output but it will send DSD as DoP (DSD over PCM) and not all DACs know how to remove the P from the DoP to play DSD.
Just my 2 cents on the topcic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment