Hypothetical DSP

So for starters: yes I know there are some great products out there like MiniDSP or HifiBerry and the like, but this is DIY and I want to make it to MY spec.

The idea was to use 4 ESS 9038PRO DACs (https://www.esstech.com/wp-content/uploads/2022/09/ES9038PRO-Datasheet-v3.7.pdf). Two for each channel (stereo) for full differential. ADCs as well, but I still haven't reached a verdict yet (Delta vs SAR). The main deciding factor there is if I want to meet the spec of the corresponding DACs, or if I just want to use audio ADCs simpley because that's what they were designed for. An additional two ADCs for return lines from the speakers themselves (signal attenuated to usable levels etc). Optimally, this would be all hooked up to a Sharc DSP. I like Sharc because I think Sigmastudio+ is a great solution for me because I am not the most amazing coder (admitedly I still need to learn more about CCES). That's the skinny of it. Analog Devcies has a good project board I was thinking of maybe using as a starting point (https://www.analog.com/en/design-ce...ards-kits/sharc-audio-module.html#eb-overview) but I am not sure if there is enough I/O for an expansion card to use the other ICs. I do intend to have the board made, although if I need to solder on some components, so be it. I do have hand solder experience.

At the heart of it, where would the design process for that start and is it possible to do as a DIYer?

Disclaimer: I am not an engineer. Just someone who really likes audio and knows a thing or two about electronics. I understand that, yes, this would be a massive undertaking. I am certainly open to criticisms because I do not know everything. But please do not post here if all you want to do is berate me and tell me I don't know what I'm doing. I am posting this because I know I cannot do this alone, and could really use some advice. I really like this forum. I've learned an immense amount in my short time here. But I also see the tendency for some to just brush something like this off, or use it as a stage for a soap box rant about what a moron I am. That's not why this is here. I am here to learn and grow and am willing to put in the effort.

So where to start?
 
  • Like
Reactions: 1 users
Update: I did some looking around and found the AKM4191EQ/AKM4499EXEQ. Does anyone know much about these chips? Why is it a 2 chip solution as opposed to 1? Why would I use the other chip if it will drop the SNR and THD? Is there an alternative? Lastly, would the 64 bit achitecture be compatible with the Sharc DSP?
 
The story goes that AKM claims it's to completely avoid substrate crosstalk between the digital and the analogue/mixed-signal part. There are other advantages, though: the digital part can be made in any digital CMOS process (it doesn't need to be a process suitable for high-performance analogue), and anyone wanting to design their own digital filters and modulators can hook them up to the DAC part.

Do you know the basics of digital filtering, z domain transforms, FIR and IIR filters, nonsubtractive dithering and such? If not, reading a book or two about that would be a good start.

If you do know all that, I can't help you, because I have zero experience with DSPs. I've done some digital signal processing, but only with FPGAs (and some with very old microcontrollers).

I think it should all be feasible if you are in no hurry.
 
Last edited:
The story goes that AKM claims it's to completely avoid substrate crosstalk between the digital and the analogue/mixed-signal part. There are other advantages, though: the digital part can be made in any digital CMOS process (it doesn't need to be a process suitable for high-performance analogue), and anyone wanting to design their own digital filters and modulators can hook them up to the DAC part.
So for something like a Class D or similar?

I do have some knowledge of FIR and IIR filters. A lot of the initial design was going to be purely analog so I read up enough to make a state variable LR4. But with the stuff I wanted to do, like active signal analysis, servo control, etc the general consensus was to go digital.
I've done some digital signal processing, but only with FPGAs (and some with very old microcontrollers).
I looked into the open source ones. It seems like a good option, especially the ice ones with the visual programming suite.
Gotta walk before you can run.
Agreed. Gotta set a goal first :)
Why use DSP when the combo of current free DSP software and standard PC processors are as fast or faster then your typical FPGA and even dedicated DSPs...
I was actually considering that. Keeping the DACs and such, making a USB or ethernet interface, and just run the whole thing from software from my pc.

The main reason I chose the Sharc was because of sigmastudio. That and if I use DSP (or even FPGA), I'm not tied to a computer and can move it around if I wish.
 
So I've been reading up on Camilla from its github page. Seems like a very powerful piece of tech. I do however have a few quibbles:
1) very work intensive to get started. Would I need to tunnel and set it up every time I turn it on?
2) process/compute. If for shiz and gigs I wanted to run 2 channel 768khz/32bit (for arguments sake) how much compute would I need?
3) coding... coding is like bamboo splinters for me lol. I'll do a little if I need to, but I will say bad words the entire time :ROFLMAO:

I will admit though, theoretically this is far and away WAY more powerful than a DSP. Not only that, there's more than just the Pi for this sort of thing, so depending on how much compute would be necessary, I may know a board or two I would want to use.
 
So for something like a Class D or similar?

I don't understand the question.


I do have some knowledge of FIR and IIR filters. A lot of the initial design was going to be purely analog so I read up enough to make a state variable LR4. But with the stuff I wanted to do, like active signal analysis, servo control, etc the general consensus was to go digital.

If you want to make a motional feedback loudspeaker, you have to be careful with delays because of their effect on stability. It could be a reason to go for a SAR ADC or a sigma-delta ADC with some low-latency mode (or an analogue loop).
 

TNT

Member
Joined 2003
Paid Member
So I've been reading up on Camilla from its github page. Seems like a very powerful piece of tech. I do however have a few quibbles:
1) very work intensive to get started. Would I need to tunnel and set it up every time I turn it on?
2) process/compute. If for shiz and gigs I wanted to run 2 channel 768khz/32bit (for arguments sake) how much compute would I need?
3) coding... coding is like bamboo splinters for me lol. I'll do a little if I need to, but I will say bad words the entire time :ROFLMAO:

I will admit though, theoretically this is far and away WAY more powerful than a DSP. Not only that, there's more than just the Pi for this sort of thing, so depending on how much compute would be necessary, I may know a board or two I would want to use.
1. Yes it is not self configuring at power up. You'll need to script that if you want it... but why not a headless comp like a Pi or a Mac Mini (this I use) - its always there...

2. No problems. Not even on a Pi4. I'm currently running appr. 150ktaps and 15 PEQs with about 15% added load to a 10 year old Mac Mini.

3. No coding. But you need to be a able to get the topic and use GUI. Not even for installation.

You install CDSP once, start the environment (for every computer power on) and configure your source and sink, mixers (if needed), filters and pipeline and save that conf persistently (reuse at next power on) - now you can forget it.

There are ready made install files for a complete player incl. Camilla on Pi for free e.g. Volumio.

//
 
I don't understand the question.
Class D can take the modulus from a digital stream and modulate it to analog in a similar fashion to a DAC using high speed FETs. I was wondering if that was what you meant. I guess the better question would be why would both chips have different specs if they're supposed to be used in tandem with each other?
If you want to make a motional feedback loudspeaker, you have to be careful with delays because of their effect on stability. It could be a reason to go for a SAR ADC or a sigma-delta ADC with some low-latency mode (or an analogue loop).
For MFB I'm probably going to go analog on that one. Will probably integrate that into the amplifier circuit itself. The digital portion will be for the servo control on the back end.
1. Yes it is not self configuring at power up. You'll need to script that if you want it... but why not a headless comp like a Pi or a Mac Mini (this I use) - its always there...
So yeah this is more like making a music server, but without the need for storage (although that can be an option).
2. No problems. Not even on a Pi4. I'm currently running appr. 150ktaps and 15 PEQs with about 15% added load to a 10 year old Mac Mini.
Would that also include things like small signal analysis? If so I will probably shop around for a Pi 4 🤓
3. No coding. But you need to be a able to get the topic and use GUI. Not even for installation.

You install CDSP once, start the environment (for every computer power on) and configure your source and sink, mixers (if needed), filters and pipeline and save that conf persistently (reuse at next power on) - now you can forget it.

There are ready made install files for a complete player incl. Camilla on Pi for free e.g. Volumio.
Yay no coding! I suppose that takes care of the DSP portion.

As far as DAC/ADC go, I guess the next step would be to figure out implementation. The way I see it I have two options here:
1) Build the whole amplifier design in the same enclosure as the DSP. The issue there is I would probably have to have a bunch of connections on the back of the speaker (eight that I can think of: 2 for each section of the crossover making 6, and 2 more for the servo feedback)
2) A hybrid solution in which I build the DAC/ADC and amp in the speaker itself, thereby keeping everything local, and just making some sort of data transmission line to send the data back and forth from the server. The only way I could see that working is if I go with ethernet. My only concern there would be packet loss.
 
Class D can take the modulus from a digital stream and modulate it to analog in a similar fashion to a DAC using high speed FETs. I was wondering if that was what you meant. I guess the better question would be why would both chips have different specs if they're supposed to be used in tandem with each other?

What I meant is that the AK4499 is a seven-bit DAC that requires a heavily oversampled and noise shaped input signal to achieve good audio performance. You can use the AK4191 for the oversampling and noise shaping, but you could also do it yourself with an FPGA and tweak the algorithms as you please.

 
What I meant is that the AK4499 is a seven-bit DAC that requires a heavily oversampled and noise shaped input signal to achieve good audio performance. You can use the AK4191 for the oversampling and noise shaping, but you could also do it yourself with an FPGA and tweak the algorithms as you please.
So then if I just want to use the AK4191 (because let's face it the specs are nuts on it), what else could I use to modulate the signal?
 
You mean you are looking for a seven-bit DAC that, when driven with an oversampled and noise-shaped signal, has SINAD and other performance figures comparable or better than that of a high-performance purely digital chip?

I don't think you will find one. It's normal that the noise floor is determined by the analogue/mixed-signal part; making the noise floor of a purely digital circuit 6 dB lower just requires one extra bit, while making the analogue noise floor 6 dB lower usually requires quadrupled power and between 1 and 4 times the chip area.