With exately the same musik playing? I have not noticed influence of filters (however I did not chenagged them that frequently, as you), but a heavy dependence on what is actully played.
It's just general usage. I usually have to warn my partner when I do a filter change as the loud pops startle her otherwise. With the 171dB+ attenuation filters the pop is insignificant. Ristar has also made the observation the pops were much quieter with these filters. The shaped stop-band also seems to have a similar effect.
Hey spzzzzkt what do you use to generate your awesome graphs? Straight out of Matlab?
I've been using FVtool from the MATLAB Signal Processing Toolbox.
Open Filter Visualization Tool - MATLAB fvtool - MathWorks Australia
Yes, just filter info, ascii text with no formatting. Planning to be able to printout in uManager.
So really there is nothing constraining us to use the exiting information?
I was thinking it might be useful to have the filter designator rather than "Input FIR" so it's easy to see which filter is loaded, and possibly the -3dB or -6dB point instead of pass band frequency.
So really there is nothing constraining us to use the exiting information?
I was thinking it might be useful to have the filter designator rather than "Input FIR" so it's easy to see which filter is loaded, and possibly the -3dB or -6dB point instead of pass band frequency.
Yes, you can write anything you want to describe the filters, up to 80 chars.
With exately the same musik playing? I have not noticed influence of filters (however I did not chenagged them that frequently, as you), but a heavy dependence on what is actully played.
After some more listening I think you might be right about the music dependence and pops.
Yes, you can write anything you want to describe the filters, up to 80 chars.
OK, that's great. Thanks.
Last edited:
Hey Spzzzzkt are you able to post a coefficients file for your latest filter (importable via fdatool)? I'm trying to compare various filters based on resulting time domain waveforms - would love to use your filter as a benchmark if available 🙂
Edit: At the moment I'm using one of your previous fdatool screenshots as a reference.
Edit: At the moment I'm using one of your previous fdatool screenshots as a reference.
Is there a possibility to make a real non oversampling configuration…thus no Up or Oversampling at all ???Yes, you can write anything you want to describe the filters, up to 80 chars.
I don't think that you can.
Anyway, this was an experiment setting the interpolation to x1 for all FIR.
I'm surprised but the DAM actually makes sound, so...
interpolation coefficient = 1
Taps = 1
gain = 1
I suspect that there is still a sampling rate change between fir1 and fir2, and fir2 and output, and the interpolation setting doesn't actually alter this but I'm not really in a position to test any further today.
Anyway I think this is about as close as it possible to configure the DAM to non-oversampling. As far as I've understood it's not possible to completely eliminate upsampling with this DAC design, but I might be wrong...
Anyway, this was an experiment setting the interpolation to x1 for all FIR.
I'm surprised but the DAM actually makes sound, so...
interpolation coefficient = 1
Taps = 1
gain = 1
Code:
dam1021,44100,1,1,1,1
Input FIR, 44.1 Khz Samplerate, bypass
1.000
Code:
dam1021,352800,1,2,1,1
Final FIR, 352 Khz Samplerate Bypass
1.000
I suspect that there is still a sampling rate change between fir1 and fir2, and fir2 and output, and the interpolation setting doesn't actually alter this but I'm not really in a position to test any further today.
Anyway I think this is about as close as it possible to configure the DAM to non-oversampling. As far as I've understood it's not possible to completely eliminate upsampling with this DAC design, but I might be wrong...
Attachments
Last edited:
Actually on further consideration, I'll say no you can't avoid up sampling. Fir1 is always 352.8 or 384 kHz and fir2 is always 2.8224 or 3.072 MHz.
The interpolation coefficient is only setting the number of zeros to be inserted between samples not altering rate of up sampling. What I think is happening here is that by setting the coefficient to 1 the Dam repeats the last buffered input sample 8 times.
Anyway that's my hypothesis
The interpolation coefficient is only setting the number of zeros to be inserted between samples not altering rate of up sampling. What I think is happening here is that by setting the coefficient to 1 the Dam repeats the last buffered input sample 8 times.
Anyway that's my hypothesis
The previous NOS filter does what you require. Sure it's "up sampled" in that there are more samples but it's just filling the inserted zeros with the previous original sample (a hold function) - try it, convolution of [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] with an example vector of [2 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0].
Odd that your single tap filter of "1.0" worked - based on the previous NOS filter I always assumed zero insertion was done as separate step and the filter convolved with the new zero inserted vector to obtain your output as above..... Maybe soekris can confirm.
Odd that your single tap filter of "1.0" worked - based on the previous NOS filter I always assumed zero insertion was done as separate step and the filter convolved with the new zero inserted vector to obtain your output as above..... Maybe soekris can confirm.
Last edited:
The previous NOS filter does what you require. Sure it's "up sampled" in that there are more samples but it's just filling the inserted zeros with the previous original sample (a hold function) - try it, convolution of [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] with an example vector of [2 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0].
Odd that your single tap filter of "1.0" worked - based on the previous NOS filter I always assumed zero insertion was done as separate step and the filter convolved with the new zero inserted vector to obtain your output as above..... Maybe soekris can confirm.
I could be wrong, but this is what I think is happening..
If you specify x8 interpolation, the input buffer is read once, and the next seven samples have a zero value inserted (or perhaps more correctly, are replaced with zeros), as you show above.
By specifying x1 there is no zero insertion but the audio is still up sampled to 352.8kHz. My theory is that in this case the buffered input sample is read 8 times.
So instead of:
2 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
you end up with:
2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 1 1 1 1 1 1 1 1
And if this is correct a single filter coefficient of 1.0 would work, because it's not being convolved with inserted zero values.
It certainly would be a more elegant solution to simply use the buffered input samples from the start rather than replacing seven of them with zeros and then replace the zeros with the original value using a hold function as we are currently doing.
It should be easy enough to test if this is actually occurring.
Last edited:
I should add that there is no apparent loss of volume with the single tap filter configured as above. With the x8 interpolation and single tap filters loss of gain was very obvious.
So I ran a simulation comparing upsampling of an audio track (16/44.1) via FFT zero insertion and an FIR filter shown in one of your previous screen shots. Other than the start and the end (~1M samples) the interpolated results were near identical. What's the min PCM value of difference that is audible? Visually amplitude differences were really minimal in the middle section, 0.001 magnitudes of difference...
Last edited:
Currently putting together a blog to house future filter developments.
I'll post up a link once I have something that is worth looking at...
I'll post up a link once I have something that is worth looking at...
What if we mod the output filter Capacitor to 10nF to get the stop band at 32Khz for the current RC low pass time constant of the existing cap of 1200pF.
Wouldnt that be another level of mod? would like to use polystyrene cap?
Wouldnt that be another level of mod? would like to use polystyrene cap?
Would prefer to keep this thread focused on the filter work. I'm requesting we keep hardware mods on the other threads.
There are plenty of conversations taking place there already.
There are plenty of conversations taking place there already.
Would prefer to keep this thread focused on the filter work. I'm requesting we keep hardware mods on the other threads.
There are plenty of conversations taking place there already.
The hardware mod reflecting the filter though. It might be through hardware or software both doing the same work so this is the only mod that i think which can be done easily and does filtering though...
The hardware mod reflecting the filter though. It might be through hardware or software both doing the same work so this is the only mod that i think which can be done easily and does filtering though...
Wow... maybe you should take the time to read this whole thread then come back and share something on topic with 99% of the posts here.
I could be wrong, but this is what I think is happening..
If you specify x8 interpolation, the input buffer is read once, and the next seven samples have a zero value inserted (or perhaps more correctly, are replaced with zeros), as you show above.
By specifying x1 there is no zero insertion but the audio is still up sampled to 352.8kHz. My theory is that in this case the buffered input sample is read 8 times.
So instead of:
2 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
you end up with:
2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 1 1 1 1 1 1 1 1
And if this is correct a single filter coefficient of 1.0 would work, because it's not being convolved with inserted zero values.
It certainly would be a more elegant solution to simply use the buffered input samples from the start rather than replacing seven of them with zeros and then replace the zeros with the original value using a hold function as we are currently doing.
It should be easy enough to test if this is actually occurring.
As far as I can see this from some basic testing this filter does behave in the same way as the NewNOS.
The main difference is the noise floor is higher with the "trueNOS", which is what you'd expect. One of the advantages of upsampling is spreads the energy of the noise component across the up sampled bandwidth, which lowers the noise energy in the audio band.
- Home
- Source & Line
- Digital Line Level
- Filter brewing for the Soekris R2R