Compressing DSD files with Wavpack 5

Last updated Nov. 2nd 2017

If you are reading this you already know that DSD files (DSF and/or DFF) have rather big sizes and large collections of these require plenty disk space. Although the cost of HDDs is relatively low, it can be a problem for some people like those who want to migrate to expensive in terms of GB/$ SSD disks, those who use laptops and don’t want to carry additional external drives or those who can’t afford additional or higher capacity HDDs.

Lossless compression of PCM files with FLAC, ALAC or WavPack has been abailable for quite long but until now, the only possible way to reduce the DSD files’ footprint was using Philips’ DST software to compress DFF files. The problem with this method is that the software is “Pro” focused and unavailable to most users, needs very powerful processors both for compressing and for playing back and also DFF files have very poor tagging capabilities compared to DSF or other formats like FLAC, MP3, etc.

The latest Wavpack version 5.x changes this situation making it now possible to losslessly compress (ie. the compression is reversible without any loss) DSF and DFF files for free by up to 60% depending on source file and compression rate used.  The resulting .wv file will play as  24/352 PCM in any Wavpack compliant media players and as “native” DSD in Foobar with SACD plugin 1.04 or later or MPD (Music Player Daemon.

Should you not want to output DSD from DSF and DFF, these can be easily compressed within Foobar using the latest encoder pack just like you would compress WAV to FLAC, ie right click on file/s and select convert then configure to taste. If you want your Wavpacked files to play back as DSD this doesn’t work as resulting files are not recognized by the SACD plugin. In this case a little extra work is necessary.

NEW: Version 5.1.0 available.

Changes from 5.0.0:

  • added: all new command-line tagging utility (wvtag)
  • added: option to import ID3v2.3 tags from Sony DSF files
  • fixed: fuzz test failures from AFL reported on SourceForge
  • improved: DSD decimation filter (less HF rolloff & CPU use)
  • fixed: non-byte audio depths (12-bit, 20-bit) not showing
  • fixed: rare case of noise-shaping triggering a lossy mute
  • fixed: recognize UTF-8 BOM when reading text files
  • fixed: a few portability issues

How to: 

First download the compressor zip from the Wavpack web:

http://www.wavpack.com/downloads.html

Select the packet that matches your Windows version (32 or 64bit – only one is needed):

WavPack Win32 Windows command-line programs and user manual Download 472kB 5.1.0
WavPack Win64 (for 64-bit Windows) Windows command-line programs and user manual Download 492kB 5.1.0

Extract the contents of downloaded zip to a folder.

Next download the free BatchEncoder tool from its developper site (https://github.com/wieslawsoltes/BatchEncoder):

You can either chose a conventional install or a portable installation to a folder you can move or delete when finsihed. If you plan on converting your DSD files all at once the portable installation is probably the best choice but if you think you will be using it again on more ocassions I would recommend the standard instalaltion.

Here are the links:

Platform Type Version Download
Windows 32-bit Installer 1.4 BatchEncoder-1.4-Win32.exe
Windows 64-bit Installer 1.4 BatchEncoder-1.4-x64.exe
Windows 32-bit Portable 1.4 BatchEncoder-1.4-Win32.zip
Windows 64-bit Portable 1.4 BatchEncoder-1.4-x64.zip

On the main window configure the “format”  as “WV (WavPack)”and “preset” as either “Lossless (Normal compression)” if you prefer higher processing speed but larger resulting files or “Lossless (Best compression)” (see below) if you don’t mind longer processing times to obtain the smallest possible files:Start BatchEncoder from the Windows menu (standard install) or double clicking on “BatchEncoder.exe” (portable installation).The following step is copying “wavpack.exe” from the folder the first download was extracted to to either the standard installation or portable folder of BatchEncoder.

be00_zpsfndfum5b

The program is now ready and you can add files through the menu (click on “Edit” and then select “Add files” or “Add directory”) or by drag&drop from Windows explorer the click “Convert”. If no output path is selected files will be output to the source folder which is very convenient if you are processing several folders at the same time.

Once finished you can check each folder and verify that all the original DSD files have a .wv with the same name and tags have been correctly imported (use SACD plugin 1.0.5) then proceed to delete the DSD files and obtain the benefit of compression: plenty aditional free space in your drive.

When you are confident with the process, you can easily automate the process of DSD file deletion by adding an additional parameter in the encoder configuration. Press the F7 key or on the menu click “Options” and then select “Configure presets”. On the window that opens click on “Lossless (Normal compression)” and/or “Lossless (Best compression)” and in the “Commmand-line” box below add a space plus a “-d” after the -h then click “OK”, when done your options should be like the ered rectangle in this picture (Fast compression doesn’t apply to DSD so you can skip it):

be03_zpsy7iz3qhb

The result:

Before

dsf_uncomp_zpszneva4mp

After

dsf_comp_zps1tltssvc

If you are not using Foobar, there is a command line utility (wvtag.exe) inside the wavpack zip file that can be used to import ID3V2 tags from DSF files to the compressed wv files. For instructions on how to use it read the included wavpack_doc.html.

Advertisements
Comments
  1. question1 says:

    When the file is played in jriver it is displayed as 24/352 PCM, not DSD.

  2. Players need to have wv DSD decoding implemented. I don’t use JRiver so I don’t know if they have done this yet or not. The developper of the SACD plugin is without a doubt the most active of them all when it comes to adding new features that is the reason it is possiblke to decode wv to DSD in Foobar.
    I guess you’ll need to ask JRiver developpers to add this function.

    • reply1 says:

      I posted a question on Jriver forum : https://yabb.jriver.com/interact/index.php?topic=110703.0
      David Bryant said that Foobar2000 can only handle PCM internally so it has to work this way, and it plays all DSD formats this way (in PCM). But maybe it was an older version.

      Concerning Jriver, they will implement native DSD inside wavpack in next version (23).

      • Indeed Foobar can only handle PCM that is the reason why the SACD plugin plus a special outmode need to be used to overcome that limitation. Once installed and properly setup Foobar can do DSD fine.
        DSD compressed with Wavpack are processed as PCM by standard Foobar but it is decoded to DSD once the correct SACD plugin is installed.

  3. Zoe Chi says:

    can I convert back the wv file to dsf?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s