One path is to have the sigma delta modulator look further into the future so that it can generate bit streams that more closely track the input signal. Similarly doing multiple SDM’s in parallel and picking the “best” bit stream (with the stream we have so far.) These can both be done at the same time, but that’s a lot of resources.
I can do approx. 5 x as much SDM work with no additional resources and the last few releases have freed up more resources in the FPGA that could be used for the above.
There’s another kind of improvement where we generate a bitstream and then try to incrementally make it better: a very simple example is to flip random bits and see if that happens to work better (similar to dither), a more complicated example is to look at errors in the output and to modify the input a little to lower those errors (this can be similar to the above look ahead, but it is more targeted.)
As always, I’m revisiting code to redistribute the resources in space and time to lower the FPGA’s self generated noise and jitter.
I have a few ideas that from the above that I’ve started to develop that I need to finish and either integrate or abandon.
One class of things that can improve the sound quality are refining previous releases again, perhaps pushing things a little farther (more bits, faster clock, moving filter parameters a little further out…) or perhaps using results of new releases to revisit older releases, say with more resources or better tuning of any parameters.
Snowmass was the result of doing work towards the TSS software, as the TSS software evolves I’ll back port improvements that I implement for the TSS into the DS and DS Jr where their hardware permits.
As always, without infinite time, I have to choose a few of these that I think will get the biggest improvement in sound quality.