In my system the 3d effect it's producing is astounding... To me it's better than the 384 which was my favorite so far.
Astounding is not wrong. Popped on a track by Academy of Ancient Music and for the first time I had a palpable sense of an ensemble laid out in front of me in a auditorium. With the LEDR test the up signal distinctly reached the ceiling for the first time with any of the filters.
The other thing is that I'm not hearing any harshness at all.
The high attenuation approach is definitely a winner, and the 1016_K180 is the current SOTA DAM filter imo.
Astounding is not wrong. Popped on a track by Academy of Ancient Music and for the first time I had a palpable sense of an ensemble laid out in front of me in a auditorium. With the LEDR test the up signal distinctly reached the ceiling for the first time with any of the filters.
The other thing is that I'm not hearing any harshness at all.
The high attenuation approach is definitely a winner, and the 1016_K180 is the current SOTA DAM filter imo.
Since I think that there are instrinsic features in the Minimum phase filters that I am fond of, and somehow I have come to the conclusion that less taps mean more precise imaging and open sound stage, do you think that it is possible to have an MP version of 256 or 384 taps with stop band attenuation around -170db, with a lot of post ringing? P.S. I feel the latest BW filters (although I have not spend enough time listening to them) sound a bit unatural compared to the 384.
Did you turn the fixed point preview on? From what I have seen, with the 30 fractional bits +3 extra from the multiplier, -170-180dB should be pretty close to the limit what is doable with that precision.Attached filter has -180dB attenuation in both FIR1 and FIR2, which may be a bit of overkill.
My first listening impressions (on headphones, so 3D is not that apparent) is that it is very clean, I hear nuances that I am not aware with the NQ_C960_140.
At high frequencies this cleanness and details causes sometimes a strange impression in the sense "is that really what it should be and just never heard before, or is there something wrong".
I listened to Anne Sophie Mutter, Carmen Fantasies (track 7,8). Especially at the high volume parts, the vilolon at the very high frequencies have "some new aspect" and some metallic-percussion-thing gets very metallic.
Last edited:
do you think that it is possible to have an MP version of 256 or 384 taps with stop band attenuation around -170db, with a lot of post ringing?
You can pick only two properties from this list:
- Steep Roll-off (lots ringing)
- Deep stop band attenuation
- Short Filter
MP/LP doesn't change the length. Intermediate makes the filters far longer than MP/LP.
Did you turn the fixed point preview on? From what I have seen, with the 30 fractional bits +3 extra from the multiplier, -170-180dB should be pretty close to the limit what is doable with that precision.
My first listening impressions (on headphones, so 3D is not that apparent) is that it is very clean, I hear nuances that I am not aware with the NQ_C960_140.
At high frequencies this cleanness and details causes sometimes a strange impression in the sense "is that really what it should be and just never heard before, or is there something wrong".
I listened to Anne Sophie Mutter, Carmen Fantasies (track 7,8). Especially at the high volume parts, the vilolon at the very high frequencies have "some new aspect" and some metallic-percussion-thing gets very metallic.
I had vaguely noticed the filter was a bit louder vs others so it may well be clipping. I usually run with volume at -30ish so I don't pick up problems at 0dB.
170-175dB is around the limit.
I'll redo with MATLAB rather than Slifer as I'm a bit more confident the levels will be ok. It might be a couple of days I'm afraid...
@spzzzzkt:
The current filters scratch at the limit of the number coefficients of the DAM (and also of that of their resolution). Apart from now being meaningful to use the full native resolution of 35 bits, in Mono-mode half of the FPGA would not be used anymore, this would allow to increase the filter lengths (if Soren is willing to implement this).
What is your opinion how the "gained" resources should be distributed?
As far as I see it, the range would go from
- fife-times the max FIR1 length, keep current FIR2 length. To
- keep the max FIR1 length, fife-times current FIR2 length.
Also, if I see it correctly, in the current stereo mode, two full high resolution MAC seem to be kept as backup for something and could be used to increase the filter length (see this post).
The current filters scratch at the limit of the number coefficients of the DAM (and also of that of their resolution). Apart from now being meaningful to use the full native resolution of 35 bits, in Mono-mode half of the FPGA would not be used anymore, this would allow to increase the filter lengths (if Soren is willing to implement this).
What is your opinion how the "gained" resources should be distributed?
As far as I see it, the range would go from
- fife-times the max FIR1 length, keep current FIR2 length. To
- keep the max FIR1 length, fife-times current FIR2 length.
Also, if I see it correctly, in the current stereo mode, two full high resolution MAC seem to be kept as backup for something and could be used to increase the filter length (see this post).
@Soren:
I see here no meaningful use of FIR filter coefficients of magnitude greater than 1. Using the 2.30-fixed format, just to be able to store the 1, is a waste of one bit. I would suggest to 1.31 fixed (or better 1.34-fixed) and scale the coefficients so that 1 will become 1-2^(31) (resp. 1-2^(34)).
It would also be nice if we could distribute free resources in the FPGA (if any) to FIR length limits, as setings with the mu-manager.
I see here no meaningful use of FIR filter coefficients of magnitude greater than 1. Using the 2.30-fixed format, just to be able to store the 1, is a waste of one bit. I would suggest to 1.31 fixed (or better 1.34-fixed) and scale the coefficients so that 1 will become 1-2^(31) (resp. 1-2^(34)).
It would also be nice if we could distribute free resources in the FPGA (if any) to FIR length limits, as setings with the mu-manager.
Last edited:
Well, I had a more concentrated listening to the 1016_K180. It is very impressive. The most holographic filter Paul has created. You feel sound is coming from every corner of the room, speakers are hidden, etc. I also hear things that I have never heard before. Small details that make you feel that your are closer to the real event. But somehow I feel it has too much sparkle that makes me feel uneasy with what I hear. If Paul can make it more natural, then I think that's it.
Btw it might be related to my speakers' tweeters though. I will try to toe-in and out and check.
Btw it might be related to my speakers' tweeters though. I will try to toe-in and out and check.
Last edited:
@Soren:
I see here no meaningful use of FIR filter coefficients of magnitude greater than 1. Using the 2.30-fixed format, just to be able to store the 1, is a waste of one bit. I would suggest to 1.31 fixed (or better 1.34-fixed) and scale the coefficients so that 1 will become 1-2^(31) (resp. 1-2^(34)).
First, remember I didn't know much about filters before starting this project, in fact it's the first digital filters I have ever implemented, so some design choice were done to be safe....
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...
It would also be nice if we could distribute free resources in the FPGA (if any) to FIR length limits, as setings with the mu-manager.
I don't see that as practical, as it would most likely introduce multiplexer and routing delays, reducing filter speed.
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...
Hi soekris. When do you expect to release the new firmware? There are a lot of people eagerly waiting for this update.
Well, I had a more concentrated listening to the 1016_K180. It is very impressive. The most holographic filter Paul has created. You feel sound is coming from every corner of the room, speakers are hidden, etc. I also hear things that I have never heard before. Small details that make you feel that your are closer to the real event. But somehow I feel it has too much sparkle that makes me feel uneasy with what I hear. If Paul can make it more natural, then I think that's it.
Btw it might be related to my speakers' tweeters though. I will try to toe-in and out and check.
The sparkle you hear could well be related the clipping, so I'll need to identify what I'm doing in Slifer that is causing that to happen before I try tweaking.
The main change to the filters is the level of attenuation so they can be done with SoX, although it's a bit slow and painful adjusting the parameters that way.
I've had a quick play to get something that works in terms of filter length, fc, and attenuation.
Remember that fc is -6dB point, so the FIR1 is -6dB at 20.9k, -t specifies transition band width centred on fc (20.9k), so the stop band theoretically starts at 20.9k + (3980/2), or 22890Hz. I'm basically juggling the fc and transition band until I get a compromise that is short enough to use and looks ok in terms of how far the roll off goes into the 0-20Khz band.
FIR1
Code:
sox --plot octave -r 352.8k -n output.wav synth 1 noise sinc -a168 -L -20.9k -t3980 > Documents/filterDM_Linear.m
For FIR 2 the goal is flat response out to a very least 30kHz and preferably 60kHz. I target the start of stop band to prevent imaging around Nyquist of the 352.8kHz/384kHz up sampled audio. Using 176400 as an example, I look at the highest audio band response I'm planning to accept - say 50kHz. Because the upsample images mirror around 176400 this means the first image will potentially occur at 352800 - 50000 - 302800Hz if there is any 50kHz content in the audio. I'm accounting for hi-res recordings at high sample rates here. 170 + (285/2) = 312.5K which is a little high but more than adequate for 44.1 research purposes as it will eliminate images of audio data above 40.3kHz.
FIR2
Code:
sox --plot octave -r 2822.4k -n output.wav synth 1 noise sinc -a168 -L -170k -t285000 > Documents/filterDM_Linear.m
I've attached a zip of the txt and skr, it's a quick fix up so name reflects that...
I haven't listened to this but it shouldn't clip.
Add: Having a quick listen this seems much better, piano - Budd and Eno's "Plateaux of Mirrors" for e.g. - was sounding a bit odd on the K180, and this fixes that.
Attachments
Last edited:
Listening to the latest batch of filters I still found myself favouring 384_C130_MP, until hearing SoX_fixup. I feel it has the air and transparancy of 384 and the improved focus the latest batch. Tried some classical with piano - pleased to hear the piano sounding like a percussion instrument. Then put on 'something different', for me at least, happened to be the next track, E Lucevan Le Stelle from Tosca. Immediately I was struck by the depth back-to-front. The tennor was some way infront of the orchestra. Seems to me the soundstaging is coming on leaps and bounds... Thanks Paul & everyone else too!!
Just had my 5 minutes with music and the latest filter. Really nice 🙂
Have also implemented IR remote control volume for the dam also. Works like a charm 🙂
Have also implemented IR remote control volume for the dam also. Works like a charm 🙂
Just had my 5 minutes with music and the latest filter. Really nice 🙂
Have also implemented IR remote control volume for the dam also. Works like a charm 🙂
Please share the details of that IR remote volume control.....🙂
Quite easy but I will share some details not in this thread. This belongs to filter brewing. Soekris dac implementations thread I guess.
I feel it has the air and transparancy of 384 and the improved focus the latest batch. ... Seems to me the soundstaging is coming on leaps and bounds... Thanks Paul & everyone else too!!
Thanks for the comments Andrew.
It looks like the filters I did with Slifer are adding some distortion spikes at higher frequencies - it's most obvious around 60kHz.
The advantage of the high stopband attenuation filters is that they seem to reduce the level of hash between the harmonics in the audio band when testing with a 997Hz sine test tone.
A filter I did prior to the SoX "fixup" but didn't have a chance to listen to tests slightly better that SoX filter in terms of noise floor and "hash". It's cleaner to 17kHz in this regard. This is attached as 1014_Kb18 not sure if it clips at 0dB but it's clean to -6dB at least.
The other attached filter is a revisit of the Nyquist filters. This one has steep high attenuation FIR1 and FIR2 filters. I'm was curious to see if added imaging above nyquist from these filters outweighed the apparent benefits of the Nyquist filters retaining the original sample data. Jury is out on that until I have a better listen.
cheers
Paul
Attachments
Another day, another filter.
This is still scratching the BW deep attenuation itch, but moving the fc back to 19.75kHz in an attempt to get decent attenuation at 22.05kHz. The result is -5dB at 20kHz and -110dB at 22.05kHz.
The other thing here is that I've found Slifer creates two peak co-efficents of the same value if I use an even number of taps. This is possibly causing the clipping, so I've switched to odd number of taps - which is what MATLAB's design tools uses.
I did a really quick comparison with Audirvana+'s Izotope SRC "best" setting and my feeling is the DAM is close with this filter - not identical but close.
With Søren's proposed changes to filter length it should be straight forward to do brick wall filters that are -0.01dB at 20kHz and -180dB at 22.05kHz. Izotope goes steeper than this but for our purposes I think flat to 20kHz and full attenuation at 22.05kHz is going to more than adequate.
This is still scratching the BW deep attenuation itch, but moving the fc back to 19.75kHz in an attempt to get decent attenuation at 22.05kHz. The result is -5dB at 20kHz and -110dB at 22.05kHz.
The other thing here is that I've found Slifer creates two peak co-efficents of the same value if I use an even number of taps. This is possibly causing the clipping, so I've switched to odd number of taps - which is what MATLAB's design tools uses.
I did a really quick comparison with Audirvana+'s Izotope SRC "best" setting and my feeling is the DAM is close with this filter - not identical but close.
With Søren's proposed changes to filter length it should be straight forward to do brick wall filters that are -0.01dB at 20kHz and -180dB at 22.05kHz. Izotope goes steeper than this but for our purposes I think flat to 20kHz and full attenuation at 22.05kHz is going to more than adequate.
Attachments
Did another critical filter listening today.
Listened to NQ 1008, 1013 c180 and as a reference to 384 c130.
Well, as I hear it, the 1013 c180 is really clean sounding, somehow mellower than the NQ1008, I am pretty sure it will give less fatigue during longer listening sessions.
NQ1008 has some brightness (sibilance) in it, which might be attractive first but compared to the steeper filters sounds somehow wrong. Are these imaging artefacts?
384 c130 is clean as well, but the bass sounds somehow a little bloated and not precise, on the other hand I like how percussive sounds are rendered with that filter.
I think I get a feeling for the different sounds of MP and LP filters, subjectively liking the impact of MP, but I assume that 1013 c180 is closer to the recorded reality, it will be my listening filter for now.
Thanks for all that work Paul!
Listened to NQ 1008, 1013 c180 and as a reference to 384 c130.
Well, as I hear it, the 1013 c180 is really clean sounding, somehow mellower than the NQ1008, I am pretty sure it will give less fatigue during longer listening sessions.
NQ1008 has some brightness (sibilance) in it, which might be attractive first but compared to the steeper filters sounds somehow wrong. Are these imaging artefacts?
384 c130 is clean as well, but the bass sounds somehow a little bloated and not precise, on the other hand I like how percussive sounds are rendered with that filter.
I think I get a feeling for the different sounds of MP and LP filters, subjectively liking the impact of MP, but I assume that 1013 c180 is closer to the recorded reality, it will be my listening filter for now.
Thanks for all that work Paul!
Last edited:
- Home
- Source & Line
- Digital Line Level
- Filter brewing for the Soekris R2R