![]() ![]() |
Computer Audio Asylum: RE: Question about DSP and Filtering by John Swenson Music servers and other computer based digital audio technologies. |
For Sale Ads |
192.19.218.100
In Reply to: Question about DSP and Filtering posted by Dynobot on July 14, 2012 at 09:42:38:
I have been thinking hard about how to reply to this, it's a complex subject.
I think I'm going to go with the abreviated version and try and keep it short. That means there is going to be a lot left out unfortunately, but hopefully it will cast some light on how I'm thinking about this.
It all goes back to a bunch of experiments I did many years ago with regards to digital filters in DAC chips and NOS DACs etc. I won't bore you with the details, but the conclusion was that done right NOS significantly improves the sound IN SOME WAYS, and makes it worse in others. The sound is richer, more alive, conveys more of the emotional impact from the performers, BUT it sounds "dirty" around the edges, particularly in the high frequencies. Some people think it's a good compromise, others do not. The dirtiness is obviously the results of the high frequency aliasing caused by the unfiltered output. But why does getting rid of aliasing get rid of the "richness, emotional impact etc"?
After a lot of experimentation I came to the conclusion it was the digital filters themselves. Every single one of the hardware filters I looked at in DAC chips (and external ones as well, such as the DF1704) were compromised in some way. My supposition is that in order to cut costs in the chips the designers cut corners in the implemention. They are required to meet certain numbers in the spec sheet, and they can't do it properly and still stay on budget, so they cheat and play tricks in order to get good numbers.
In this forum there have been a lot of statements along the lines of "Shannon says that the filter will accurately reproduce the original waveform", but many are saying it doesn't sound that way, and others keep on saying the theorum is correct, I think this is reason for the dichotomy, the actual hardware implementations in most cases are NOT properly implementing the filter.
I have tested this hypothesis in two ways: creating my own digital filter in an FPGA and using software to do the filtering on the file. In both cases I have used two different DACs that I have built myself. One uses 1704 DAC chips (which do not have a filter) and the other uses a 1794 which does have a digital filter, but it can be turned off. Both use very low jitter local clocks, very low noise power supplies etc. For the 1704 I can feed the data directly (NOS), from a FPGA digital filter, or through a DF1704. For the 1794 DAC I can use either its internal filter, or bypass the internal filter and send direct, or use the FPGA filter.
The results of all this was that with both DACs using either the internal filter or the DF1704 produced very clean sound but it was lacking richness, aliveness etc. Stright NOS in both cases gave the richness, aliveness, but dirty sound. Using either the FPGA filter or filtering in software gave the best of both worlds, it still had the richness and aliveness, but was clean. This sound difference is NOT subtle it is almost starteling. Everyone who has heard this invariabley says something along the lines of "now THIS is what it is supposed to sound like".
I tried several programs to do the filtering in software, and they all did similar things. I wan't using any special audiophile programs, just the normal resampling algorithms in programs such as SOX etc. Yes you can hear slight differences between them, but they all sounded way better than straight NOS or filtering in the DAC chip.
Now all that was the explanation for my comments about filtering and Tony's player. To get the best sound I don't want to use filtering in the DAC chip, that leaves implementing my own filter in an FPGA or resampling in software external to the player. Doing it in the FPGA takes a lot of hardware resources and fast clocks which flies in the face of the concept "absolutely as little going on as possible", so the best bet would be resampling in software and sending the higher sample rate files to the player. The higher sample rate files take more memory accesses, it will be interesting to see if that is any better than the extra stuff going on in the FPGA for a hardware filter. My guess is that the esternal software filtering will sound slightly better.
Whew, that was long winded, but that was about as concise as I could get and still cover the material.
John S.
This post is made possible by the generous support of people like you and our sponsors:
Topic - Tony's Player - John Swenson 00:15:47 07/13/12 ( 49)
- Is this dead? - GStew 13:01:38 09/2/12 ( 3)
- RE: Is this dead? - jrling 12:08:43 09/27/12 ( 2)
- Don't Hold Your Breath.... - Dynobot 14:03:41 09/27/12 ( 1)
- Tony's Player - Any Progress? - jrling 10:59:56 11/23/12 ( 0)
Interesting - how about MEASUREMENTS? - Archimago 17:30:02 07/22/12 ( 0)
John, I think it's called an iPod :) - Gordon Rankin 07:09:00 07/16/12 ( 6)
- RE: John, I think it's called an iPod :) - John Swenson 14:54:19 07/16/12 ( 4)
- RE: John, I think it's called an iPod :) - Gordon Rankin 09:47:13 07/17/12 ( 3)
- The Gods are talking - jrling 04:00:49 07/19/12 ( 2)
- RE: The Gods are talking - SBGK 04:33:38 07/19/12 ( 1)
- you just proved that the discussion is valid - bwb 06:51:45 07/19/12 ( 0)
John, I think it's called PlayGo - Roseval 12:55:01 07/16/12 ( 0)
Question about DSP and Filtering - Dynobot 09:42:38 07/14/12 ( 7)
- RE: Question about DSP and Filtering - John Swenson 07/20/12 15:54:49 07/20/12 ( 6)
- Theory vs. Practice - Tony Lauck 08:19:04 07/21/12 ( 1)
- Nyquist Shannon - play-mate 22:36:52 09/2/12 ( 0)
- RE: Question about DSP and Filtering - Bibo01 19:52:44 07/20/12 ( 2)
- HQPlayer - Tony Lauck 08:26:37 07/21/12 ( 0)
- RE: Question about DSP and Filtering - Ebit 01:04:56 07/21/12 ( 0)
RE: Question about DSP and Filtering - RioTubes 19:20:24 07/20/12 ( 0)
Disconnecting remote interface - Dynobot 07:13:24 07/14/12 ( 12)
- RE: Disconnecting remote interface - AbeCollins 16:15:06 07/15/12 ( 2)
- RE: Disconnecting remote interface - Dynobot 16:32:42 07/15/12 ( 1)
- RE: Disconnecting remote interface - AbeCollins 19:04:32 07/15/12 ( 0)
RE: Disconnecting remote interface - SBGK 08:13:48 07/14/12 ( 8)
- RE: Disconnecting remote interface - John Swenson 14:44:46 07/20/12 ( 2)
- DRAM or SRAM? - Tony Lauck 07:39:54 07/21/12 ( 1)
- RE: DRAM or SRAM? - John Swenson 16:18:49 07/22/12 ( 0)
RE: Disconnecting remote interface - John Swenson 15:04:01 07/14/12 ( 0)
RE: Disconnecting remote interface - Mercman 08:37:45 07/14/12 ( 3)
- perhaps my memory is faulty but - bwb 09:10:06 07/14/12 ( 2)
- RE: perhaps my memory is faulty but - Mercman 09:19:08 07/14/12 ( 1)
- RE: perhaps my memory is faulty but - Dynobot 09:23:57 07/14/12 ( 0)
I'd Like to see this Topic Continue to the Point of a Parts List - Dynobot 05:33:25 07/14/12 ( 1)
- Oh Well this thread is dead before it even started....Half baked Ideas go nowhere..nt - Dynobot 15:44:13 07/15/12 ( 0)
RE: Tony's Player - soundchekk 02:52:38 07/14/12 ( 4)
- RE: Tony's Player - John Swenson 16:55:44 07/15/12 ( 0)
RE: Tony's Player - Dynobot 05:26:55 07/14/12 ( 0)
Rasberry PI at 35$ - fmak 03:33:31 07/14/12 ( 1)
- RE: Rasberry PI at 35$ - soundchekk 04:07:51 07/14/12 ( 0)
RE: Tony's Player - audioengr 10:36:13 07/13/12 ( 5)
- RE: Tony's Player - John Swenson 15:37:22 07/13/12 ( 2)
- RE: Tony's Player - RioTubes 18:37:48 07/13/12 ( 0)
- one possible implementation - bwb 17:24:53 07/13/12 ( 0)
RE: Tony's Player - Tony Lauck 13:42:54 07/13/12 ( 1)
- Recurses! Foiled Again!!! (nt) - Skip Pack 08:16:32 07/14/12 ( 0)
PS Audio ? - AbeCollins 08:53:08 07/13/12 ( 0)
RE: Tony's Player - Tony Lauck 08:10:40 07/13/12 ( 0)
Are you suggesting a product that would be brought to market or just something for the hobbyist? - bwb 07:28:56 07/13/12 ( 0)