My no DAC project, FPGA and transistors

Yes sure, you just demodulate the output - very much like an FM radio - you can directly listen to the demodulated output - in fact we often do... sometimes its so bad your amazed how bad a design can be...

On the PN system this Demodulated output is sent to the FFT analyzers for "hard results", the hard part of a PN system is to have "calibrated results"...

Wow, I want one;-)

I'm not amazed that much because if you think about all the non ideal components, crosstalk, psu impedance irregularities, pcb traces working as an antenna, ground bounce,logic family varying edge rates, and signal oversampling rate variations etc etc there's bound to be left all sorts of problems that arise when playing music, especially when one has only measured and optimized for a few stimuli like e.g. 1KHz 0dB and the likes.
I'm really happy to hear it can be done, didn't know that so thanks for that.

Sadly, it did smash my idea of having found the answer to the discrepancy between measured and auditory results.

Sometimes the loss of sibilance and way better "foot tapping qualities" as well as intelligibility can be found when using less thick cables, conductors, connectors and not more than strictly needed ground planes etc. It's a lot easier to hear that than to measure and prove superiority. You're right: audio engineering is not about strictly making a device that measures excellent, it needs certain insights some claim to be pseudo science etc. It's a thin line and a slippery slope.

Btw what speakers do you guys use?
At work we always use a big horn system (jbl 18" alnico, 2" compression driver etc), at home I have a smaller version as well as a direct radiator just for fun.
I find that some speakers just don't have enough resolution (whatever that might be, be it lack of surface area, efficiency, you pick) to be able to hear the changes being done in a dac. The result of a change can that way also be perceived as non conclusive (doesn't matter, matter of opinion), while on bigger systems the difference does come out (change in depth/soundstage/bass articulation/rhythm/presentation/attack&decay etc).
 
Btw what speakers do you guys use?

Good old Yamaha NS10M speakers (preferably with subs) work fine for that providing amplification is good enough, for example the Benchmark AHB2 used here. An ultra-low distortion amp, low volume levels, and near field listening works for me. Distortion in speakers tends to be lower when diaphragms are not moving very far. Sturdy stands and Primacoustic Recoil Stabilizers help a lot with imaging too.

That said, there is a set of JBL M2 speakers here, for which active analog crossovers will be the next project :)
 
Last edited:
Member
Joined 2017
Paid Member
What ADC are you using to capture the output from your PCB? - I'm really amazed that you can get these results without Notch filter of some kind...

Maybe without a Notch your also looking at products from the ADC...

My ADC is AD7960. I'm sure it's one of the best SAR ADC, though a little bit expensive($60). Pic.2 and pic.3 of Post#28 are residual noise.
 
My ADC is AD7960. I'm sure it's one of the best SAR ADC, though a little bit expensive($60). Pic.2 and pic.3 of Post#28 are residual noise.

18 bits resolution it says, not bad at all (see picture).

Mouser has the evaluation board for a mere €84.- The chip itself is €44.- there.
Sadly it seems to need a sort of motherboard (platform) that costs almost €200.-

I use the pcm4222 which is around €150.-
 

Attachments

  • Screenshot_2019-08-14-19-34-29.jpg
    Screenshot_2019-08-14-19-34-29.jpg
    736.3 KB · Views: 373
Good old Yamaha NS10M speakers (preferably with subs) work fine for that providing amplification is good enough, for example the Benchmark AHB2 used here. An ultra-low distortion amp, low volume levels, and near field listening works for me. Distortion in speakers tends to be lower when diaphragms are not moving very far. Sturdy stands and Primacoustic Recoil Stabilizers help a lot with imaging too.

That said, there is a set of JBL M2 speakers here, for which active analog crossovers will be the next project :)

I have those Yamaha's but the 3-way version(don't know what exact model). It's a clean speaker and good for monitoring, when amp and source aren't well matched they don't "sing" easily though.

The M2 wouls reveal some more of the music played and since we're in a digital thread: why not go for a digital filter :)
 
18 bits resolution it says, not bad at all (see picture).

Theres a few things that I dont understand about the ADC results.

The FFT noise floor above is 20dB higher then xx3stksm results, although FFT Bin size and measurement B/W are not specified on the AD datasheet... but being an 18bit ADC I'd expect the noise floor to be closer to -140dB then 160dB.

Also, on xx3stksm results there is no sign of Mains hum components, now I've never seen an analogue FFT measurement with a 160dB NF with NO mains hum components. At 50Hz / 100Hz the H-field is magnetically induced and I would have thought practically impossible to screen from at such low levels... I'm really impressed if the results are correct... On a good day, the best result I can get is hum spuire around -145dB (Ref 2Vrms)...

The measurement level is 10Vrms which is much higher then the standard of 2VRms - this extra 8Vrms can results in extra measurement dynamic range - but this should still not impact the ADC own internal NF... Just struggling with a few of the details + the lack of AC mains spurie tends to suggest a 15dB to 20dB or so lower FFT noise floor then I'd expect...

Maybe its just the extra 8Vrms input level (also some mention of dual ADC)...?
 
Last edited:
Btw what speakers do you guys use

Historically I've used Martin Logan CLSIIz ESL's with Dipole sub-woofers, but now I'm in retirement I have a much smaller lab, we now use the smaller ML Electromotions and older Aeons... These smaller Hybrid ESLs'a work well, unlike ML larger hybrids where I find the Bass performance not well integrated, its like the Bass on the Larger Hybrids is playing its own tune in its own time...
 
Last edited:
As in the first page, and if I'm not mistaken the rest of the screendumps, 0dBFS is noted as 10 V peak to peak, which is about 3.57 volts RMS.
The datasheet states a Vref of 5 volt allows 10 v pp as well (but better to use 4.9 × 2=9.8/2sqrt2=3,47 RMS.

Yes it makes one curious. This adc is adviced to be used for sampling rates at around 4 MHz.

x3stksm, how do you get the data from that high rate back to AudioTester on the pc? (is that a soundblaster spdif input @ 96KHz?).

If that motherboard supports some form of downsampling from 4 MHz to 96 KHz it might win those dB's we're looking at.
 
As in the first page, and if I'm not mistaken the rest of the screendumps, 0dBFS is noted as 10 V peak to peak, which is about 3.57 volts RMS.
The datasheet states a Vref of 5 volt allows 10 v pp as well (but better to use 4.9 × 2=9.8/2sqrt2=3,47 RMS.

Yes it makes one curious. This adc is adviced to be used for sampling rates at around 4 MHz.

x3stksm, how do you get the data from that high rate back to AudioTester on the pc? (is that a soundblaster spdif input @ 96KHz?).

If that motherboard supports some form of downsampling from 4 MHz to 96 KHz it might win those dB's we're looking at.

Arh, my bad, I presumed the input was quoted as 10Vrms... not 10Vpp...

I'm kinda guessing an FPGA is used to downsample and interface to a modified Sound-blaster...

Still wonder how an extra 15-20dB is gained without seeing AC mains hum components on the NF?

On the AD graphs there is a noticeable hump at the base of the main component - even with decimation this hump should still remain. Maybe its the FFT Windowing function used on the AD graphs...? but if its a real ADC artifact (which is typical), where is it on the -160dB results?
 
Last edited:
Historically I've used Martin Logan CLSIIz ESL's with Dipole sub-woofers, but now I'm in retirement I have a much smaller lab, we now use the smaller ML Electromotions and older Aeons... These smaller Hybrid ESLs'a work well, unlike ML larger hybrids where I find the Bass performance not well integrated, its like the Bass on the Larger Hybrids is playing its own tune in its own time...

I don't know the full range esl's from ML but we do sell the ones you're using at the shop here. Yes you're right, hybrids can be problematic, but they deliver excellent midrange nonetheless, which is the most important part of music anyway.
Nothing beats the big ones though, if you have room for them.

Last year we traded in an old Acoustat model eight, beautiful. It's such a relief not having those typical electrodymanic cone, compression and filter errors mixing with and modulating the music. It needed not the old huge Cello that came with it, but an 600 watts bridged van Medevoort amp to really get going. The thing was sold easier than expected and rightfully so!
 
Last edited:
I'm kinda guessing an FPGA is used to downsample and interface to a modified Sound-blaster...

Still wonder how an extra 15-20dB is gained without seeing AC mains hum components on the NF?

On the AD graphs there is a noticeable hump at the base of the main component - even with decimation this hump should still remain. Maybe its the FFT Windowing function used on the AD graphs...? but if its a real ADC artifact (which is typical), where is it on the -160dB results?

I never use screens when working with prototypes. Too much to figure out and try to be bothered with that yet. It means that with 4v rms I can maybe get to -110, maybe some more.

Looking at the odB plots and the stuff between say 6 to 20 KHz, I wonder if the psu's are switching and not (all) linear. Together with using adapters, placed several foot/meters away, one might get way better figures than using linear transformers nearby and in the same enclosure. I dunno.

I reckon you're right: the mother/controllerboard has a blackfin and a spartan on board. Easy peasy, I suppose.
 
...why not go for a digital filter :)

Good question. Please let me explain the thinking: Right now the best dac sound quality I know of is with DSD512 produced by HQplayer Windows-only software. The highest sound quality is probably with the ADSM7-512+ DSD modulator and with the 40M-Closed Form filter. The processing cost for two channels of that uses up most or all a very fast i7 or i9 CPU. But it is the best SQ. Suggest downloading ver3 Trial and see what you think with the settings mentioned. It runs without restrictions for up to 30-minutes at a time, after which it closes (but it can be re-opened immediately).

Since it beats SQ of anything I know of in the way of PCM, IMHO, compatibility is a requirement for me.

Filter DSP only works with PCM, not DSD. One could in theory stick with PCM until all filtering is complete then convert to DSD, but HQplayer does not support more than 2-channels (that I know of), and even if it did I only have one barely-fast-enough computer for 2-channels at best sound quality.

The other reason is in case I decide to add phono. No justification in my view to taking it digital if I can avoid it.

A former JBL designer who designed a passive speaker system for JBL using the same drivers as M2, and an high end audio designer, who designed the very popular Pass Labs HPA-1 headphone amp, both concur that all crossovers and LF driver corrective EQ would be best performed in active line-level analog, and that HF corrective EQ would best be performed passively at the driver. My personal opinion is that they are exactly right. In fact, I am surprised at all the people wanting DSP crossover and corrective EQ for multi-amped speakers so bad they are willing to restrict themselves to PCM only, and forego the benefits of high
sample rate DSD.


EDIT: Also should perhaps mention that NS-10M sound very different from the 3-driver NS-1000. A few of the top mixing pro's still use NS-10M for making hit records, but NS-1000 was not found to be nearly so useful for that. With NS-10M it is possible to know when mix balances are perfect, don't know why, but they work. That said, they need a very high quality amp when used that way.
 
Last edited:
I'm trying to follow this thread - much of the technical discussion is over my head but it is great to see the innovation on display and to witness a constructive discussion between knowledgable people without any personal negativity creeping in.

xx3stksm, in terms of your design, where are you taking the project next and is there an intention to eventually enable others to build it?

Right now the best dac sound quality I know of is with DSD512 produced by HQplayer Windows-only software. The highest sound quality is probably with the ADSM7-512+ DSD modulator and with the 40M-Closed Form filter. The processing cost for two channels of that uses up most or all a very fast i7 or i9 CPU. But it is the best SQ.


Mark, I concur with your DSD sentiments and have been using HQP for a number of years as the foundation for exploring the possibilities DSD offers. Processing power demands are indeed heavy with HQP but two things I did that made things a little better in that department to consider (with apologies if you have already);
  • HQP isn't Windows only. I now run it on Audiolinux and that took down CPU loading a couple of notches compared with Windows 10.
  • I bought a suitable video card and utilised HQP's ability to use CUDA to offload some of the processing from the main PC CPU. I was conservative by buying a used video card, that is of middling performance, at a good price and it again made a positive difference to CPU loading with HQP.

These cost me a lot less than a PC upgrade and were sufficient to enable me to explore more of HQP's capabilities and I'm pretty sure more is on offer from a higher spec video card (there are some good bargains to be had as it seems PC gamers trade up their video cards a lot).

For my own DSD activities I'm currently just (finally!) completing a build of a DSD decoder using ppy's DSC2 boards and embarking on a build of Marcel's DSD-only Valve DAC. I'm watching this one with interest too.
 
Member
Joined 2017
Paid Member
18 bits resolution it says, not bad at all (see picture).

ADC's bit resolution defined by the datasheet and a real ENOB which you can have on a PCB is usually not the same. It strongly depends on the bandwidth you want to have. The wider the bandwidth, the smaller the ENOB. AD7960 is 18bit resolution with almost 100dB SNR at 5MHz sampling. ENOB of 100dB SNR is almost 16bit resolution. What you can have in 5MHz sampling is not 18bit but 16bit. In the audio application, your target bandwidth is typically 20kHz, where 50kHz sampling is enough. You can have the advantage of oversampling(5MHz), i.e., improved SNR. OSR by 100 times(5000/50) brings you 20dB increase in SNR, which is almost 120dB. That's why my FFT plot by two AD7960s in 20kHz bandwidth can have 124dB SNR. If 40kHz bandwidth, it has 121dB.

AD7768(24bit DSM ADC) has a comparison table between bandwidth and RMS noise, table 12 on page 44. If you double the sampling frequency, RMS noise becomes worse by almost 3dB.
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7768-7768-4.pdf
AD has some tutorials about the issue.
I have seen more good examples before but can't find the HP.
https://www.analog.com/media/en/training-seminars/tutorials/MT-001.pdf
https://www.analog.com/media/en/training-seminars/tutorials/MT-003.pdf
 
Member
Joined 2017
Paid Member
Also, on xx3stksm results there is no sign of Mains hum components, now I've never seen an analogue FFT measurement with a 160dB NF with NO mains hum components. At 50Hz / 100Hz the H-field is magnetically induced and I would have thought practically impossible to screen from at such low levels... I'm really impressed if the results are correct... On a good day, the best result I can get is hum spuire around -145dB (Ref 2Vrms)...

Yes, I agree with you. :)It's very difficult not to have mains hum. But what you need to do for the challenging target is simple. Make your PCB an isolated island. In other words, no conductor from your PCB is preferable as possible as you can. Power rail must be a battery for isolation from the earth ground. From battery to your PCB is a conductor but no current path to the earth ground keeps the principle, isolated island. Captured data from ADC board to PC is through an optical interface, where conductor entirely doesn't exist. Both isolations can guarantee no interference of mains hum.

You can find a slight footprint of mains hum at the 3rd pic. of post #1, which is the plot of made in china board(ES9038) powered by mains. 50Hz and 150Hz are visible in the blue plot. My DIYed PCBs are powered by batteries, where almost no mains hum exists.
 
Member
Joined 2017
Paid Member
Arh, my bad, I presumed the input was quoted as 10Vrms... not 10Vpp...

I'm kinda guessing an FPGA is used to downsample and interface to a modified Sound-blaster...

My ADC has four sampling frequencies, 1MHz,2.5MHz,4.1MHz, and 4.9MHz. They are downsampled to 96kHz by FPGA with proper FIR filters to eliminate unwanted artifacts. 4.9MHz(96*256/5) has a little bit of degradation in THD, though it's the best in SNR. I usually use moderate 4.1MHz(96*256/6) sampling for various measurement, excellent THD, and a small loss of SNR.

This is my 3rd ADC for vinyl ripping. The 2nd one was 1MHz sampling at max, which was insufficient for measurement purpose. I designed the 3rd one to be capable of measurement purpose three years ago. I employed a large scale FPGA, Xc7a100t because I needed enough internal memory to interface with SD card. Then I happened to think that it is convenient if it has low THD oscillator by DSM topology. I had enough FPGA resources for DSM. That's the beginning of my dive into DSM world.
 

Attachments

  • IMG_5497A.jpg
    IMG_5497A.jpg
    809.9 KB · Views: 378
I'm trying to follow this thread - much of the technical discussion is over my head but it is great to see the innovation on display and to witness a constructive discussion between knowledgable people without any personal negativity creeping in.

xx3stksm, in terms of your design, where are you taking the project next and is there an intention to eventually enable others to build it?



Mark, I concur with your DSD sentiments and have been using HQP for a number of years as the foundation for exploring the possibilities DSD offers. Processing power demands are indeed heavy with HQP but two things I did that made things a little better in that department to consider (with apologies if you have already);
  • HQP isn't Windows only. I now run it on Audiolinux and that took down CPU loading a couple of notches compared with Windows 10.
  • I bought a suitable video card and utilised HQP's ability to use CUDA to offload some of the processing from the main PC CPU. I was conservative by buying a used video card, that is of middling performance, at a good price and it again made a positive difference to CPU loading with HQP.

These cost me a lot less than a PC upgrade and were sufficient to enable me to explore more of HQP's capabilities and I'm pretty sure more is on offer from a higher spec video card (there are some good bargains to be had as it seems PC gamers trade up their video cards a lot).

For my own DSD activities I'm currently just (finally!) completing a build of a DSD decoder using ppy's DSC2 boards and embarking on a build of Marcel's DSD-only Valve DAC. I'm watching this one with interest too.

In addition to that, HQPlayer supports convolution (the digital filter itself, so where to put the files made with a digital filter creation tool), pipeline (support for up to 32 channels and various gain and eq settings) as well as 8 channel speaker setup settings (per channel volume as well as distances per channel).
These settings apply no matter the input or output format (pcm in, dsd out or a vice versa).

The other thingy is indeed where to send 4 channels of dsd512. Afaik there is no hardware that supports that. Beaglebone Botic can do 4 channels of dsd256, that's about as good quality and quantity wise as it gets.

Adding a gpu really helps the closed form filters and the amsdm7 is the choice when using simple NoDac dacs (no dreaded whistling tones and noise modulation, it's sadly the only one that does that).
I don't use the closed form ones, but sometimes switch between xtr-2s, poly-sinc-2s and poly-sinc-ext. HQPlayer usually uses just 2 cores per channel, so the modern multi core cpu's should be up to the task. 2 years ago I tested this with an i7 4790K and beaglebone Botic, convolution and speaker setup @ dsd256 and it worked fine!

The new, dreaded EC modulators are in version 4, apart from knowing it sounds more organic and with more "weight", when I tried the EC wasn't out yet, so don't know how they perform or if you like them, but lots of good reviews about them, many even claiming better sound @256 than other modulators @512, so this might be the one thing for a 4 channels convolution route.
The sad thing is: the filters are so heavy, there's even a separate thread on what hardware to use to get to dsd256, so we're back to the pc again, but that's a matter of saving a few hundred bucks and spend it on hardware: supposedly i7 9700x works like a charm.
Best news is that what couldn't be done years ago is now possible and all with your favorite Signalyst software.

P.S. sorry for going off topic.
 
Good question. Please let me explain the thinking: Right now the best dac sound quality I know of is with DSD512 produced by HQplayer Windows-only software. The highest sound quality is probably with the ADSM7-512+ DSD modulator and with the 40M-Closed Form filter. The processing cost for two channels of that uses up most or all a very fast i7 or i9 CPU. But it is the best SQ. Suggest downloading ver3 Trial and see what you think with the settings mentioned. It runs without restrictions for up to 30-minutes at a time, after which it closes (but it can be re-opened immediately).

Since it beats SQ of anything I know of in the way of PCM, IMHO, compatibility is a requirement for me.

Filter DSP only works with PCM, not DSD. One could in theory stick with PCM until all filtering is complete then convert to DSD, but HQplayer does not support more than 2-channels (that I know of), and even if it did I only have one barely-fast-enough computer for 2-channels at best sound quality.

The other reason is in case I decide to add phono. No justification in my view to taking it digital if I can avoid it.

A former JBL designer who designed a passive speaker system for JBL using the same drivers as M2, and an high end audio designer, who designed the very popular Pass Labs HPA-1 headphone amp, both concur that all crossovers and LF driver corrective EQ would be best performed in active line-level analog, and that HF corrective EQ would best be performed passively at the driver. My personal opinion is that they are exactly right. In fact, I am surprised at all the people wanting DSP crossover and corrective EQ for multi-amped speakers so bad they are willing to restrict themselves to PCM only, and forego the benefits of high
sample rate DSD.


EDIT: Also should perhaps mention that NS-10M sound very different from the 3-driver NS-1000. A few of the top mixing pro's still use NS-10M for making hit records, but NS-1000 was not found to be nearly so useful for that. With NS-10M it is possible to know when mix balances are perfect, don't know why, but they work. That said, they need a very high quality amp when used that way.

KISS is best! In other words: better not make it digital if the source is analog to begin with, or be ready to open a can of worms;-)

Regarding analog filtering: most of the times you need at least 2 opamps per driver to get any meaningfull analog filtering. It's easy to loose SQ with all those extra parts.

I'm leaning, if done properly, towards thinking that digital processing is ultimately less intrusive than all those extra line level analog parts, let alone high level passive filtering in front of a speaker driver.

The digital processing in your case is done anyway, with hardware and software you already have chosen to be outstanding.
Analog also doesn't allow for time alignment, phase control, linear filters etc etc.

But you're right: it's a no-go if you also want to play analog sources, even though HQPlayer 4 supports choosing any audio input as a source, not just music files anymore, but those inputs would need to be digitized first of course. I also wouldn't go for that.

NS1000, aha, and here i was assuming they should sound comparable looking at those white cones;-)
 
KISS is best! In other words: better not make it digital if the source is analog to begin with, or be ready to open a can of worms;-)

Regarding analog filtering: most of the times you need at least 2 opamps per driver to get any meaningfull analog filtering. It's easy to loose SQ with all those extra parts.

I'm leaning, if done properly, towards thinking that digital processing is ultimately less intrusive than all those extra line level analog parts, let alone high level passive filtering in front of a speaker driver.

The digital processing in your case is done anyway, with hardware and software you already have chosen to be outstanding.
Analog also doesn't allow for time alignment, phase control, linear filters etc etc.

But you're right: it's a no-go if you also want to play analog sources, even though HQPlayer 4 supports choosing any audio input as a source, not just music files anymore, but those inputs would need to be digitized first of course. I also wouldn't go for that.

NS1000, aha, and here i was assuming they should sound comparable looking at those white cones;-)

Yes, digital crossover is the best objectively. I find HQPlayer and the work put into it interesting, but ultimately I don't see the point of turning PCM into something else in an attempt to bypass parts of the DAC IC data path. There is nothing deficient about the 96 kHz or even 44.1 kHz PCM performance of modern DACs. I don't think these claims of audible superiority of ridiculous DSD rates would stand up to blind testing.
 
I did measurement of THD from -40dBFS to -60dBFS. I know that such amplitude in 1bitDSM has relatively poor numbers than 0dBFS. It locates at the 2nd or 3rd position in my to-do list, not the 1st one because the problem exists in the digital domain, which isn't fatal to revise a PCB. The top priority is an analog problem like oscillation, which must be fixed before designing a new PCB.

Attached pics are after temporary compensation. 1dB loss of the max gain luckily got a good result with moderate repeatability. Pic.1 to pic.4 is 128OSR. Pic.5 to pic.8 is 64OSR.

As JohnW mentioned: simple use Notch (best active one with low THD & noise contribution & level loss :))

The point is this: If you drive the DAC with large levels, you get the THD from both DAC & ADC :D

In other words, if your Notch lowers the 1kHz ADC level by -50dB, you will drive the ADC also on a more THD less range. So you would see the real THD pars of your DAC :D

Hp