Home > DIY HiFi > R2R DAC Benchmark Filters (for now)

R2R DAC Benchmark Filters (for now)

After a 5 month long, 1200-post filter development odyssey [link], our friend Paul have arrived at a set of benchmark filters for the enjoyment of all owners of the Soekris DAC (BIG THANKS!). There is so much material and knowledge in the diyaudio forum thread that it was a challenge to keep up with. Fortunately, Paul will be moving to a blog format to share new filters, but likely after new firmware for the Soekris DAC is released.

I have summarized the latest “benchmark” filters here for convenience.

Filter File Name
1021filtNQ_C960_140 [link] Nyquist filter “approaching NOS” Further “tweaking” of the Nyquist filters, less coloured than the C128 series filters.
1021filtNQ_C960_140dp [link] Nyquist filter “approaching NOS” Same but quantized in mkrom.exe. (rather than in MATLAB) (sound far more open in the top end and less clouded)
1021filtNQ_C128_100bp [link] Nyquist filter “approaching NOS” The “benchmark” filter with correct “quantization”. Use this one instead.The .txt files here [link]Comparison 128 vs 960 here [link], [link]Response comparison with NOS [link]
1021filt_384_C130_MP [link] Minimum Phase Further experimentation with minimum phase. This filter is similar in length and roll-off to the stock 44.1 filter, but minimum phase. It is -0.1dB at around 19kHz. Trading “Nyquist” with minimum phase. Notation: 384 = number of taps; C = Chebyshev Window; 130dB = Window side lobe attenuation setting; MP = minimum phase or LP = linear phase.One of the key determining factors is impulse response [link]. Here is the impulse response for the latest favorite filters: [link]
1021filt_SoX_fixup_HiAtt [link], High Stop Band Attenuation

There seem to be a real smoothness that is lacking from the filters with lower stop band attenuation and I suspect I know why. While the stop band is well below audible levels even at 100dB I’ve been forgetting something essential. The DAM is using a 28bit ladder so is reproducing content in the signal down to -168dB whether we hear it or not.

This also minimizes activity in the R2R ladder during conversion by attempting to push activity in the stop band lower than the 28th bit or approx 168dB

1021filt_1015_Kb16_BW [link] High Stop Band Attenuation After a long road, this filter and the previous one are the current “best” filters.

My feeling is that the DAM filters are now getting close enough to what something like Audirvana+ does using Izotope SRC. I suspect if the filter characteristics were matched you’d be hard pressed to tell the difference. Where the DAM is currently at a disadvantage is on very steep brickwall filters.

1021filtNewNOS [link] NOS And for convenience sake, the NOS filter remains a favorite.Latest iteration of the NOS filter which includes POS’s improved de-emphasis filter.”The NOS filter does not actually filter at all – all the coefficients are set to 1 so the audio is passed unaltered and is only up-sampled. The side effect is none of the mirror images of the original signal that appear in the up sampled signal are removed…””Listened to NQtb65, NQtb70 (see Nyquist filters below) and NewNOS today. All three are pretty nice. But NewNOS feels distinctively more dynamic, direct and more full-bodied…”
1021filt_EQHQ_V2r1 [link] “Perfectionist”(Brick Wall) I call this “Perfectionist” because it is a “best specification” filter: minimum band pass ripple, high stop band attenuation, narrow transition band…- 0.0000003dB pass band ripple constraint – all filters

  • 168dB stop band attenuation – all filters
  • Transition band tightened from 5kHz to 3.69kHz, now -0.008dB @ 20kHz. (44.1kHz)
  • Pass band edge raised from 19kHz to 19.5kHz (44.1kHz)
  • New 48kHz filter which takes advantage of extra 2kHz before Nyquist cf 44.1kHz.
  • New equi-ripple filters with transition band from 20kHz to 90% of Nyquist for 88.2, 96, 176.4, 192kHz sample rates.
  • Tweaked FIR2 filter for 352.8kHz sample rates. This is currently used for 384kHz also.Paul calls this filter “Reference filter” you can read more here:



The new firmware will provide the following enhancements for filter development [link]:

2.30 format for FIR filters was chosen to have reserve, thinking there was plenty of bits, especially when compared to other DAC chips, and 1016 taps were also more than any DAC chips. But after following Paul’s fantastic filter work it seems like that improvements are needed to the filter blocks, even as they already are better than any DAC chip.

As the R-2R DAC should be state of the art, I will change format in next firmware rev, probably to 1.34, and instead have the mkrom tool check for overflow, maybe even look into auto scaling…

I’m also looking into double the number of coefficients, that would require to assign double the MAC blocks to the first FIR filter, should be possible as the last MAC block is just doing volume control, that can be done using a multiplier built with a lot of LUT’s instead, not an issue as that don’t need to be fast and there are plenty of LUT’s left in the FPGA, the FPGA was choosen more for number of MAC blocks than number of LUT’s…

This means

  • Increase in coefficient precision (4 additional bits)
  • Increase in the number of coefficients (up to 2032 coefficients). Basically anything possible with software resamplers (such as SOX) will be possible in the DAC.


Up to now, I have been using the factory filters. It is time to upload and try some of these filters. For convenience, I am repeating here information from other posts.

Connect the RS232 Interface to a PC

Connect the RS232 pins to the PC serial port as follows. This is basically a null-modem connection without h/w flow control. You may want to check this informative site on serial communications including RS232 [link]




Launch the Terminal Application (Tera Term) [link]

After launching Tera Term (the application is “ttermpro”), select “Serial” and select the Port you are using to communicate with the DAC.


Configure the serial communication parameters with:

  • Baud rate: 115,200 (This is pretty fast. Use a good, short cable)
  • Data bits: 8
  • Stop bits: 1
  • Parity: none
  • Flow control: none

Click on the “Setup” pull-down menu and select “Serial port”


Invoking “uManager” for Interactive Mode

Type “+++” and wait for the DAC to respond (~1 sec). You must enter “+++”, otherwise there will be no response. If you enter anything else, there will also be no response. “+++” invokes the “uManager” enabling interactive communication with the DAC through a terminal window. You will see the following prompt:


Uploading the filters

After invoking the uManager, type “download” in the terminal window. The DAC will acknowledge your command and wait for you to start the xmodem transfer


In the “File” pull down menu select “Transfer” -> “Xmodem” -> “Send”. You will see the XMODEM send dialog box (shown below). Select the filter file you wish to upload (in this example “1021filt_1015_Kb16_BW.skr” and click “Open”. Make sure the file is of type .skr.


After completion, power-cycle the DAC. Note: changing the input or changing a track with a different sample rate also triggers reloading of the filters


Soekris dam 1021 R-2R DAC ILLUSTRATED GUIDE Users Manual [link] Users manual for the Soekris DAC.
Soekris dam1021 Build Build Guide [link] Details of my initial build of the Soekris DAC.
dam1021 R-2R DAC MODs Mods [link] Mods I have performed on the DAC build.
dam1021 R2R More Mods Mods [link] Later mods on the DAC build.
Digital Filters for Soekris R2R DAC Digital Filters [link] Extensive list of DIY filters from the diyaudio filter brewing forum thread.
R2R Benchmark Filters (for now) Digital Filters [link] Latest set of filters developed and shared in the diyaudio filter brewing forum thread. The best filters of the bunch.
R-2R DAC For The REST of US Technical Details [link] Introductory post describing the innovations and capabilities implemented in this DAC.
The Soekris R-2R DAC: Technical Details Technical Details [link] Additional technical details of the Soekris DAC that were not covered in the post above and collected after I had the DAC on my hands.
  1. Anonymous
    June 28, 2015 at 05:25

    hi, it sounds wonderful, but is there a timetable for the new firmware?
    I guess it may come on next lots available on late August.

    • BlgGear
      June 28, 2015 at 21:11

      No idea…

  2. June 28, 2015 at 06:53

    Thanks for the summary of the recent filters. I’ve decided to take a step back, and have had the mods disable my account at DIYAudio so there won’t be any further filter posts from me on the forum. I’ve started a blog at http://www.moredamfilters.info but it is a bit hard to get enthused so the site is very bare bones at present…

    • BlgGear
      June 28, 2015 at 21:11

      Hi Paul, thanks to you for sharing your great work. Not only in mastering the tools and the theory but auditioning and comparing the resulting filters is a huge task for most of us. Checked your blog. I certainly agree that it would be a much better venue to organize the filters (than a forum thread).

    • Derek
      July 1, 2015 at 20:26

      Paul – just wish to add my thanks for all your effort on the DAM, it wouldn’t be the DAC it is today without you. Hope you get your spirit of adventure back when the new software is released…..

  3. Anonymous
    June 28, 2015 at 14:09

    thank you

  4. July 7, 2015 at 23:50

    Filter loading can simplified using Python dam1021 library. It is a matter of issuing one-liner, e.g.:

    $ python dam1021.py -s /dev/ttyAMA0 -d 1021filt_EQHQ_V2r1.skr

    PS. BlgGear, I hope you don’t treat this post as piggyback advertising. Thanks.

    • BlgGear
      July 8, 2015 at 03:30

      Thanks for sharing. It would be nice to program an RPI or BB to load different filters, say at the push of a button (but according to Soren, the next version of the firmware will have such capability)

      • Anonymous
        July 9, 2015 at 22:47

        Piece of cake, just use some gpio library. However I would rather consider integrating filter loading with mpd-like server, so that any given track could be paired with a preferred filter.

        btw. now you can control dam1021 right from your mobile phone. https://github.com/fortaa/mopidy-dam1021

  5. August 24, 2015 at 21:31

    If anyone is wondering… My web hosting provider has blocked access to moredamfilters as all the sites I maintain have been compromised with a Trojan. I had this happen a couple of months back and thought I’d removed all traces but obviously there is a back door still lurking. Unfortunately it’s coincided with a short holiday, so moredamfilters will be off the air until the weekend…

    If anyone has trouble loading filters with the 0.99 firmware the trick is toggle inputs AND filters. I3 (return), F7 (return), F4 (return) works if you are using Bank 1 for example…

  6. September 14, 2016 at 15:16

    descargar zune para nokia lumia 520

  7. September 14, 2016 at 15:58

    sausage cheese balls

  8. September 14, 2016 at 16:35


  1. No trackbacks yet.

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