Return-to-zero shift register FIRDAC

RTZ DAC no2 with Ray's version of the filter board with the last stage removed:

IMG_20230714_171547.jpg


Also, LVDS receiver board mounted on my own daughter-board to hook up to the PCM2DSD below. This DAC is being fed from my Logitech Transporter via LDVS.
 
  • Like
Reactions: 2 users
During discussions with Hans Polak, it was found that it can sometimes be handy to have a DSD file with repetitive 101010... patterns. For a FIRDAC with a notch at half the sample rate, it eliminates ultrasonic quantization noise, folding effects due to ultrasonic quantization noise and non-linearities or crosstalk issues, and it largely suppresses the effect of far-off clock jitter, leaving only the plain old analogue circuit noise. Attached is a zipped dsf file with just over one minute of 101010... in DSD64. Mind you, the file becomes more than 1000 times larger when you unzip it.

There was a bug in the file: I miscalculated the number of samples by a factor of two. A DSD player can either ignore the stated number of samples and just play it properly or complain about a corrupt .dsf file. Hans's software just played it.

Anyway, attached is a corrected file and similar files for different DSD rates, all zipped. They all become about 1000 times as large when unzipped.

There are also two DSD128 files with periodic patterns representing large DC offsets, they are in plusmineenDSD128.zip. Whatever you do, don't play these at high volumes over completely DC coupled equipment! One of them has a periodic 11101110... pattern, that is, a positive offset of 0 dB DSD and the other a 00010001... pattern, corresponding to a 0 dB DSD negative offset.
 

Attachments

  • plusmineenDSD128.zip
    161.5 KB · Views: 47
  • stilte101010DSD64.zip
    40.5 KB · Views: 50
  • stilte101010DSD128DSD256.zip
    242 KB · Views: 52
  • stilte101010DSD512.zip
    322.2 KB · Views: 52
Just in case it is of use to anyone: attached is a Pascal program that generates DSD512 .dsf test files with silence, an offset, or a sum of an offset and a sine wave, depending on what values you give the constants offsetL, offsetR, freqL, freqR, amplL and ampR at the beginning of the program. Mind you, when the sigma-delta modulator input signals are too large, you get a runtime error. The program's file extension is supposed to be .pp, but I've changed it into .txt to please the forum software.

Unlike the attachments of the previous post, the files this program generates have irregular patterns with noise-shaped quantization noise. It uses the very same algorithm I used for the PWM8 mode of my valve DAC, except that the code to prevent misbehaviour when the sigma-delta is overdriven is missing. It is a quasi-multibit sigma-delta modulator with an embedded pulse width modulator with randomly rotated output patterns, as explained here: https://linearaudio.net/sites/linearaudio.net/files/03 Didden LA V13 mvdg.pdf sections 3.1 and 9.

The program runs under Free Pascal Compiler. Whether it actually produces a valid .dsf file may depend on the endianness of your computer.
 

Attachments

  • SDpbm8metdsfuitvoer.txt
    6.4 KB · Views: 61
Last edited:
  • Like
Reactions: 1 users
Hi Mark,
Good question, but since crosstalk between data and clock already seemed to play a role in this test, I was afraid of adding just another antenna and/or groundloop to the unshielded setup.
And since my goal was just testing and not listening, I didn’t use this option for which I’m sure that it may improve the listening experience.

But as you may have read in the review, I tried a double shielded very short USB interlink versus a very simple 1.5 meter USB cable and could not detect any difference.

Hans
 
Last edited:
Thx Bohrok,

Very interesting information on the archimago site.
In one of his reviews he compares several PCM to DSD options.
I was happy to see that JRiver came out as almost the best.

Also tried again to find out whether an official name exists for DSD after being split into Left, Right and Clock, but no succes.
In this world with so many acronyms this seems to be the one that's missing.
I'm sorry when using the term I2S DSD caused any confusion.

Hans