Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Digital Line Level DACs, Digital Crossovers, Equalizers, etc.

Filter brewing for the Soekris R2R
Filter brewing for the Soekris R2R
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 19th June 2015, 02:05 AM   #1221
aive is offline aive  Australia
diyAudio Member
 
Join Date: Sep 2013
Hey Spzzzzkt, not sure if this is useful or interesting to you but just in case...

Attached is an initial Matlab script that performs and compares (in the time-domain) upsampling of an "Audio.wav" file via FFT zero insertion and FIR interpolation. Presently only channel 1 is calculated.

At the moment, the comparison is only a presentation of waveforms of 'n' samples at the start, end, and middle. Could modify it to calculate a difference between samples to determine 'error' value or %... Presuming 14 bit ENOB, you'd expect any PCM value difference of >= 0.000122 to be audible right?

Presuming comparison may be useful to assess FIR filter performance since FFT zero insertion upsampling is meant to be an 'exact' method (in the middle anyways, not at the start or end of vectors).
Attached Files
File Type: zip Matlab Scripts.zip (1.8 KB, 15 views)
  Reply With Quote
Old 19th June 2015, 06:59 AM   #1222
spzzzzkt is offline spzzzzkt  Australia
diyAudio Member
 
Join Date: May 2005
Location: Melbourne
thanks aive... I'll have a look at them.

I still think the zero insertion is more to do with the way the incoming data passes between clock domains, than specific processing. I'll try to do a diagram of what I mean...

Just been having a listen to a few filters, the TrueNOS, NewNOS, EQHQv2r1 and a few other things I've been messing around with like Nyquist filters done with an Ultra-spherical window.

I don't usually bother with the NOS filters, beyond a quick half a track listen every now and then. Anyway I think there is very little to pick between the "True"NOS and NewNOS in sound quality - they sound pretty well identical to my ears.

What I did notice that I hadn't really picked up on previously - possibly due the test tracks I had on when I was comparing - was that the NOS frequency roll-off manifests as a artifical sense of added depth to the soundstage. Female vocals very obviously move back in the sound stage relative to bass and drums which I guess is to be expected. I'd bet that if you built a brick wall filter that incorporated a sinc roll-off through the audio band you'd get the same kind of "improved" depth of sound stage. But ultimately it's faux-depth.
  Reply With Quote
Old 19th June 2015, 07:46 AM   #1223
spzzzzkt is offline spzzzzkt  Australia
diyAudio Member
 
Join Date: May 2005
Location: Melbourne
I hope this will illustrate what I think is happening with the TrueNOS (and upsampling in general) a bit more clearly...

Filter brewing for the Soekris R2R-clocks-png

You have incoming data received by the DAM, and processed at the native sampling rate. 44.1, 88.2, 176.4, 352.8 and so on. The last received piece of data will sit in a buffer until the buffer has new data loaded at the next clock cycle at the incoming clock rate.

The next stage of processing is always running at the x8 rates - 352.8 or 384kHz. Based on what's happening with the TrueNOS filter, I'm fairly certain that the buffer from the input stage is read on every clock cycle which means with a 44.1kHz input data rate the buffered data will be read 8 times before it is updated.

The zero insert coefficient is basically setting how many zeros are inserted after the initial sample is read. If it's set for "1" there is no replacement/insertion done, so the second stage will end up with 8 copies of the original sample, assuming a 44.1/48 clock rate.

So for 44.1/48 you end up with:
x1 - 1 1 1 1 1 1 1 1
x2 - 1 0 1 0 1 0 1 0
x4 - 1 0 0 0 1 0 0 0
x8 - 1 0 0 0 0 0 0 0

So by setting zero insert coefficient to 1 the second stage of the DAC reads the input buffer every clock cycle, and there is no need to convolve with an 8 x 1.000 value "filter" to reconstruct the original samples because the samples data is already there...
Attached Images
File Type: png Clocks.png (21.3 KB, 1223 views)

Last edited by spzzzzkt; 19th June 2015 at 08:03 AM.
  Reply With Quote
Old 19th June 2015, 11:03 AM   #1224
soundcheck is offline soundcheck  Germany
diyAudio Member
 
Join Date: Mar 2005
Location: DUS
Quote:
Originally Posted by spzzzzkt View Post
...was that the NOS frequency roll-off manifests as a artifical sense of added depth to the soundstage. Female vocals very obviously move back in the sound stage relative to bass and drums which I guess is to be expected. I'd bet that if you built a brick wall filter that incorporated a sinc roll-off through the audio band you'd get the same kind of "improved" depth of sound stage. But ultimately it's faux-depth.
IMO you loose yourself into wild speculations and guesses. Finally you "ultimately" set this questionable stuff into stone. Scientific?? No. That's audiophile hocus pocus.

Pretty much everything on a mix/recording is artificially made up by an engineer. All filter cause this or that loss. Further every audio system adds its own signature.
The main issue is to figure out what is right or what is wrong. What is 100%? What is the ultimate target?

You'll have a hard time to get all this nailed or explained.

I'd stay with showing fllter responses and let the crowd decide what "tastes" best.

PS:
I do think you do a great job on the filter brewing part.
  Reply With Quote
Old 19th June 2015, 11:13 AM   #1225
aive is offline aive  Australia
diyAudio Member
 
Join Date: Sep 2013
Quote:
Originally Posted by spzzzzkt View Post
I hope this will illustrate what I think is happening with the TrueNOS (and upsampling in general) a bit more clearly...

Filter brewing for the Soekris R2R-clocks-png

You have incoming data received by the DAM, and processed at the native sampling rate. 44.1, 88.2, 176.4, 352.8 and so on. The last received piece of data will sit in a buffer until the buffer has new data loaded at the next clock cycle at the incoming clock rate.

The next stage of processing is always running at the x8 rates - 352.8 or 384kHz. Based on what's happening with the TrueNOS filter, I'm fairly certain that the buffer from the input stage is read on every clock cycle which means with a 44.1kHz input data rate the buffered data will be read 8 times before it is updated.

The zero insert coefficient is basically setting how many zeros are inserted after the initial sample is read. If it's set for "1" there is no replacement/insertion done, so the second stage will end up with 8 copies of the original sample, assuming a 44.1/48 clock rate.

So for 44.1/48 you end up with:
x1 - 1 1 1 1 1 1 1 1
x2 - 1 0 1 0 1 0 1 0
x4 - 1 0 0 0 1 0 0 0
x8 - 1 0 0 0 0 0 0 0

So by setting zero insert coefficient to 1 the second stage of the DAC reads the input buffer every clock cycle, and there is no need to convolve with an 8 x 1.000 value "filter" to reconstruct the original samples because the samples data is already there...
Does dithering play a role in the convolution upsampling?
  Reply With Quote
Old 19th June 2015, 11:58 AM   #1226
spzzzzkt is offline spzzzzkt  Australia
diyAudio Member
 
Join Date: May 2005
Location: Melbourne
Quote:
Originally Posted by soundcheck View Post
I do think you do a great job on the filter brewing part.
There's the rub. The speculation and attempts to work out what is influencing the sound are part and parcel of building the filters. If you have one filter that is -1dB at 10kHz and another that is 0dB at 10kHz and there is an audible difference in behaviour under reasonably well controlled conditions it would be audiophile hocus pocus to ignore it...
  Reply With Quote
Old 19th June 2015, 12:03 PM   #1227
spzzzzkt is offline spzzzzkt  Australia
diyAudio Member
 
Join Date: May 2005
Location: Melbourne
Quote:
Originally Posted by aive View Post
Does dithering play a role in the convolution upsampling?
I believe not.
  Reply With Quote
Old 19th June 2015, 12:33 PM   #1228
Priidik is offline Priidik  Estonia
diyAudio Member
 
Join Date: Nov 2014
Location: Estonia
Quote:
Originally Posted by spzzzzkt View Post
thanks aive... I'll have a look at them.
Just been having a listen to a few filters, the TrueNOS, NewNOS, EQHQv2r1 and a few other things I've been messing around with like Nyquist filters done with an Ultra-spherical window.
Did the same thing just now. First time hearing my dac again after 2x Reflektor-D and BiB upgrade. The gap between NewNOS and EQHQ has widened for me for the EQHQ favor. Really, they are not similar at all anymore.

Also I find the EQHQv2r1 adresses the slight grit and edge in upper registers that bothered me before.
Thx Spzzzkt. Keep up the good work.
  Reply With Quote
Old 19th June 2015, 12:49 PM   #1229
spzzzzkt is offline spzzzzkt  Australia
diyAudio Member
 
Join Date: May 2005
Location: Melbourne
Quote:
Originally Posted by Priidik View Post
Did the same thing just now. First time hearing my dac again after 2x Reflektor-D and BiB upgrade. The gap between NewNOS and EQHQ has widened for me for the EQHQ favor. Really, they are not similar at all anymore.

Also I find the EQHQv2r1 adresses the slight grit and edge in upper registers that bothered me before.
Thx Spzzzkt. Keep up the good work.
Thnx Priidik...
  Reply With Quote
Old 19th June 2015, 02:53 PM   #1230
zfe is offline zfe
diyAudio Member
 
Join Date: Dec 2014
Quote:
Originally Posted by spzzzzkt View Post
I hope this will illustrate what I think is happening with the TrueNOS (and upsampling in general)
I think with "TrueNOS" you are just somehow lucky with uninitialized values

Quote:
Originally Posted by soekris View Post
As I said, there isn't much error checking on filter tools, parameters have to match or consequences varies between subtle differences, to strange sound to no sound....
Quote:
Originally Posted by spzzzzkt View Post
The zero insert coefficient is basically setting how many zeros are inserted after the initial sample is read. If it's set for "1" there is no replacement/insertion done ...
I am next to sure that there is no special handling for the coefficients 1. It will just be the usual convolution code in the special case of filter length 1.

Moreover in real no zeros are inserted and no convolution with that signal and the filter is done at the 352.8 or 384kHz level.
The theoretically pattern s_i,0,0...0,s_{i+1},0,0... is used to implement the convolution more efficient, as 8 different (changing with every clock cycle) convolutions with filters of 1/8 of the original length (with 8x oversampling). This is standard textbook stuff and is the reason why you are allowed the double maximal numbers of filter taps for 44.1 compared with 88.2 etc.

Last edited by zfe; 19th June 2015 at 02:56 PM.
  Reply With Quote

Reply


Filter brewing for the Soekris R2RHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Soekris' DAC implementations Eldam Digital Line Level 1098 3rd November 2018 06:26 PM
Sold: Soekris DAM1021 R2R DAC Eldam Swap Meet 6 6th February 2015 08:23 AM
24-bit R2R DAC using miltiple 16/18/20-bit R2R chips Marek Digital Source 21 1st April 2011 10:05 PM
project brewing in my head, challenging, but seem like a good way to try new concepts lemans23 Multi-Way 26 11th October 2005 01:29 PM


New To Site? Need Help?

All times are GMT. The time now is 11:32 AM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 14.29%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Copyright ©1999-2018 diyAudio
Wiki