I think that the 44,1 filter is the most important task and when a good solution is found, it will be "copied" to the other frequencies.
//
//
Is there the way to add anti-sin(x)/x to compensate 'pass-band frequency response dropping' as SAA7220/B+TDA1541A did earlier, and people can then use slightly ease the digital or analog filter? For manual of sox I did't find any relevant wordings.If you zoom in on the frequency response with those parameters you'll see the response starts to drop at 16050z (22050-6000hz) , hits -6dB at 22050, and reaches -120dB at 28050z.
So with a bit of tweaking you can tune the filters to meet very specific criteria. Even Team Dogmatix should make brick wall filters with lots of passband ripple.
I think that the 44,1 filter is the most important task and when a good solution is found, it will be "copied" to the other frequencies.
//
I suspect FIR2 requires more urgent attention than 44.1 etc.
Søren may well have loaded the wrong filter coefficients because performance is not even close to what it should be.
This is the result of upsample x8 with default 44.1 filter then upsample x8 with FIR2:
You need to measure relative to the passband, so FIR2 is providing at most 85dB attenuation of images reflecting around 352800Hz FS.
This is made with a very slow roll-off filter that is -0.00002dB at 30kHz, and -140dB around 352kHz. (384kHz Fs)
The idea is that FIR1 takes care of imaging for initial x8 so there shouldn't be any significant content over 30kHz. This means in the worst case mirrored audio will not extend below 384-30 = 354kHz. If FIR2 reaches maximum attenuation prior to 354kHz there should be little mirrored content.
I've attached Minimum and Linear Phase versions of the filter coefficients. Intermediate phase blows out the tap count so isn't feasible when you only have 95 taps available.
Code:
sox --plot octave -r 3072k -n output.wav synth 1 noise sinc -a150 -L -190k -t340k
Attachments
Last edited:
Not able to test this for a day or two...
Default FIR1 filters, FIR2 replaced with minimum phase slow roll-off described above.
88.2/96 and 176.4/192 have much more relaxed requirements in terms of transition band. The consensus was that Søren's filters at these rates sounded pretty good whereas 44.1 was reported by various people as sounding harsh.
Personally, my collection is almost entirely 44.1/16 and I'm not going buy hi-res reissues of bad 70's AOR or tedious MOR vocalists - no matter how well recorded. My only excursion into that realm is So What by Miles Davis, and I'm happy to make an exception for that recording. 😉
So 44.1 is the squeaky wheel...
Default FIR1 filters, FIR2 replaced with minimum phase slow roll-off described above.
88.2/96 and 176.4/192 have much more relaxed requirements in terms of transition band. The consensus was that Søren's filters at these rates sounded pretty good whereas 44.1 was reported by various people as sounding harsh.
Personally, my collection is almost entirely 44.1/16 and I'm not going buy hi-res reissues of bad 70's AOR or tedious MOR vocalists - no matter how well recorded. My only excursion into that realm is So What by Miles Davis, and I'm happy to make an exception for that recording. 😉
So 44.1 is the squeaky wheel...
Attachments
I still find Soren's default filters really upfront even with the new FIR2 filter. CRaP Magic has been most enjoyable for me in terms of staging so far.
Well, the week is almost over... looking forward to more CRaPtacular updates from Paul 😀
Well, the week is almost over... looking forward to more CRaPtacular updates from Paul 😀
Nice fidings spzzzzkt. Keep it up!
I havent had time or motivation to test your latest designs. I just acquired both so I will listen to this hopefully today.
//
I havent had time or motivation to test your latest designs. I just acquired both so I will listen to this hopefully today.
//
Nice find indeed. But it seems you apply the filters to some noise to produce the graphs???
The frequency response of a filter is its fft.
upsample(8) FIR1 upsample(8) FIR2 is the same as
upsample(64) FIR3, with FIR3 the filter you obtain by convoluting the upsampled FIR1 by FIR2. So we only need the fft of FIR3.
I made a little Octave code to demonstrate that, you see the graph is the same.
(I am not familiar with Octave, you surely can format the plot nicer).

The frequency response of a filter is its fft.
upsample(8) FIR1 upsample(8) FIR2 is the same as
upsample(64) FIR3, with FIR3 the filter you obtain by convoluting the upsampled FIR1 by FIR2. So we only need the fft of FIR3.
I made a little Octave code to demonstrate that, you see the graph is the same.
(I am not familiar with Octave, you surely can format the plot nicer).
Code:
pkg load signal;
fs=4410; up1=8; fr=fs*up1*8;
# the missing 0 in fs is intentional for computation time
fir1= dlmread("/path/fir1.txt"); # the file should only contain the filter coefficients
ufir1 = upsample (fir1, up1);
fir2= dlmread("/path/fir2.txt"); # see fir1
gfir = conv(ufir1, fir2, "full");
semilogx(20*log10(abs(fft(gfir,fr))));
# Things to observe
# frequencies up to "fr" and not to Nyqvist fr/2 are displayed
# the frequency on the x axis has to be multiplied by 10 due fs setting

Last edited:
I've attached Minimum and Linear Phase versions of the filter coefficients. Intermediate phase blows out the tap count so isn't feasible when you only have 95 taps available.
You can use a few tabs more:
The dam1021 FIR1 is operating at 352.8K/384K and each filter can have up to:
1016 tabs at 44.1K/48K input sample rate
508 tabs at 88.2K/96K input sample rate
252 tabs at 176.4K/192K input sample rate
124 tabs at 352.8K/384K input sample rate, but normally bypassed
FIR2 is operating at 2.822M/3.072M and can have up to 120 tabs, with input sample rates 352.8K/383K.
Not able to test this for a day or two...
Default FIR1 filters, FIR2 replaced with minimum phase slow roll-off described above.
88.2/96 and 176.4/192 have much more relaxed requirements in terms of transition band. The consensus was that Søren's filters at these rates sounded pretty good whereas 44.1 was reported by various people as sounding harsh.
Personally, my collection is almost entirely 44.1/16 and I'm not going buy hi-res reissues of bad 70's AOR or tedious MOR vocalists - no matter how well recorded. My only excursion into that realm is So What by Miles Davis, and I'm happy to make an exception for that recording. 😉
So 44.1 is the squeaky wheel...
I am listening to these filters and I feel that the bass is more well defined and that the stage has gained a bit height. Is it just me?
Quick question.
Is it necessary to "powercycle"(turn off/on) the dam after "downloading" a new filter?
I thought that it was not the case but I have to do it sometimes.
Been testing A-B with a couple of filters with very different gain and it's therefore easy to tell which filter is loaded.
Or is it a way to powercycle the dam1021 via umanager?
EDIT: Seems as I have to write "exit" in umanager to make the new filter load after it has been uploaded. If I get no response from the umanager then I have to change to a song with different samplerate to make the new filter work.
Is it necessary to "powercycle"(turn off/on) the dam after "downloading" a new filter?
I thought that it was not the case but I have to do it sometimes.
Filters get loaded as needed, like a change in sample rate....
Been testing A-B with a couple of filters with very different gain and it's therefore easy to tell which filter is loaded.
Or is it a way to powercycle the dam1021 via umanager?
EDIT: Seems as I have to write "exit" in umanager to make the new filter load after it has been uploaded. If I get no response from the umanager then I have to change to a song with different samplerate to make the new filter work.
Last edited:
Quick question.
Is it necessary to "powercycle"(turn off/on) the dam after "downloading" a new filter?
I thought that it was not the case but I have to do it sometimes.
Been testing A-B with a couple of filters with very different gain and it's therefore easy to tell which filter is loaded.
Or is it a way to powercycle the dam1021 via umanager?
EDIT: Seems as I have to write "exit" in umanager to make the new filter load after it has been uploaded
Soren said somewhere that a sample rate change (blinking led) is sufficient to load the new filter.
I usually toggle inputs to force a change. I've got macros setup in my terminal app for all the commands I use when loading filters. It makes the task far quicker.
I am listening to these filters and I feel that the bass is more well defined and that the stage has gained a bit height. Is it just me?
It's possible. There is a load of low level junk around 44.1kHz when using 44.1kHz sampling rate and one possibility is this is intermodulation distortion related to the images the stock FIR2 filter passes. I want to check before saying this is definitely so.
If it is IMD related removing the images could help remove low level hash from the audio band.
But I need to test this theory 😉
I am listening to these filters and I feel that the bass is more well defined and that the stage has gained a bit height. Is it just me?
I agree about height and bass is good, although I think original filter maybe had best bass , maybe not as tight as this filter.
Not able to test this for a day or two...
Default FIR1 filters, FIR2 replaced with minimum phase slow roll-off described above.
88.2/96 and 176.4/192 have much more relaxed requirements in terms of transition band. The consensus was that Søren's filters at these rates sounded pretty good whereas 44.1 was reported by various people as sounding harsh.
Personally, my collection is almost entirely 44.1/16 and I'm not going buy hi-res reissues of bad 70's AOR or tedious MOR vocalists - no matter how well recorded. My only excursion into that realm is So What by Miles Davis, and I'm happy to make an exception for that recording. 😉
So 44.1 is the squeaky wheel...
Is totalCRaP_rev2 the same but with FIR2 in linear phase?
Sorry for my dead end question. Got some info from FilterShop's app manaul.Is there the way to add anti-sin(x)/x to compensate 'pass-band frequency response dropping' as SAA7220/B+TDA1541A did earlier, and people can then use slightly ease the digital or analog filter? For manual of sox I did't find any relevant wordings.
p15 & p16:
Attachments
Is totalCRaP_rev2 the same but with FIR2 in linear phase?
No, the last one is just the default 1021filt.skr with FIR2 replaced. No other changes made to any other aspect. The FIR2 were done using SoX rather than Octave which was used for the majority of previous versions. I'd fallen back to using kaiser windowing with Octave, so the Kaiser Windowed Sinc method used by SoX is roughly equivalent. Not sure if I can get the filters close enough to compare SQ differences between the two programs.
Anyway just got back home, so really need to readjust to the DAM after listening to audiobooks on car stereo for the past 8 days.
I'd left the DAM playing a equipment burn in track on loop so it's had around 190 hours of continuous burn-in. Can't say if it's helped but doesn't seem to have hurt.
No, the last one is just the default 1021filt.skr with FIR2 replaced. No other changes made to any other aspect. ...
Hello Paul,
Thanks for sharing all the filter work you are doing. I've just started to catch up with all the this new stuff.
I guess the real questions is how are the totalcrap (TC) filters different from the original drivers from Soren.
From the description of the totalcrap filters, they are all linear with sharp roll-off (same as original filters?) but have different FIR2. TCv1 has 3.8 attenuation in Fir2, TCv2 has a Fir2 with slow roll off.
Please correct my understanding.
Hello Paul,
Thanks for sharing all the filter work you are doing. I've just started to catch up with all the this new stuff.
I guess the real questions is how are the totalcrap (TC) filters different from the original drivers from Soren.
From the description of the totalcrap filters, they are all linear with sharp roll-off (same as original filters?) but have different FIR2. TCv1 has 3.8 attenuation in Fir2, TCv2 has a Fir2 with slow roll off.
Please correct my understanding.
Sorry, you'll have to cut me some slack. I'm just back from 8 day driving holiday in outback NSW, so it's going to take me a bit time to get back up to speed on details of individual filters and comparative differences between default and the TC filters.
TBH I never sat down and looked at the TC filters and thought "Hmmm, now how exactly do these differ from Søren's?". They were done to meet specific criteria I thought were worth exploring at the time I made them. It was often about finding a balance of algorithm, window type and window parameters to get something that worked.
Attached is a comparison of the impulses of the TotalCrapRev2, LP FIR2 posted a couple of days ago and the SK factory filter.
The TotalCrapRev2 has less rejection than the factory filter, so suffers from the same imaging issues. You can see that the base of the TCr2 impulse is wider than stock so this may contribute to time smearing.
The stock FIR2 has the greatest amount of pre/post ringing.
LP Fir2 has the narrowest impulse and least pre/post ringing of the three. I suspect this contributes to the improved focus that has been reported.
44.1kHz filters...
TotalCrapRev2 44.1 filter is as advertised and features lots of pre/post ringing.
Stock filter has a fair bit of ringing but is short....
The stock filter isn't really as steep as people seem to assume. It is around -17dB down at 22kHz, and doesn't fully attenuate until 24kHz.
Total Crap rev2 44.1 is far steeper and is rolled off to -85dB at 22.05kHz although response continues to drop in the stop band. Although attenuation appears worse than stock, this is only true between 24 and 25kHz.
The TotalCrapRev2 has less rejection than the factory filter, so suffers from the same imaging issues. You can see that the base of the TCr2 impulse is wider than stock so this may contribute to time smearing.
The stock FIR2 has the greatest amount of pre/post ringing.
LP Fir2 has the narrowest impulse and least pre/post ringing of the three. I suspect this contributes to the improved focus that has been reported.
44.1kHz filters...
TotalCrapRev2 44.1 filter is as advertised and features lots of pre/post ringing.
Stock filter has a fair bit of ringing but is short....
The stock filter isn't really as steep as people seem to assume. It is around -17dB down at 22kHz, and doesn't fully attenuate until 24kHz.
Total Crap rev2 44.1 is far steeper and is rolled off to -85dB at 22.05kHz although response continues to drop in the stop band. Although attenuation appears worse than stock, this is only true between 24 and 25kHz.
Attachments
- Home
- Source & Line
- Digital Line Level
- Filter brewing for the Soekris R2R