• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Introducing DSPi | A powerful, user friendly and open source DSP for less than a cup of coffee

Its utility goes far beyond just extending bass response (and that doesn't preclude the use of room EQ anyway...). I've found it quite useful for crossovers as one often has a 2nd-order highpass response that would ideally be a different Q or corner frequency (either higher or lower). A Linkwitz transform accomplishes exactly that. It can even be applied to lowpass responses (see above) and to higher-order systems that can be represented as cascaded 2nd-order sections.
Fair enough, that seems like a valid use case. My argument was more towards the use of LT as a magical bass extension tool at the bottom end. Here, the room dominates, so fixing the dominant issue will gain you a lot more. You can think your woofer now has a nice 0.7 Q after LT all you like, but as soon as you put it in a room, the whole system will no longer have this nice Q.
 
Hey this is cool! I've played around with doing this on a Raspberry as well back when I still had my studio.
 
Hey this is cool! I've played around with doing this on a Raspberry as well back when I still had my studio.
Thank you!

The next release is going to be a major one.

1770715829807.png


What you are seeing here is 102 PEQ filters running simultaneously and reliably, with 8 active output channels and both cores around 50% utilization. I must get some sleep for now but I expect this will be ready for release very soon.

There is a great deal of customization that isn't visible here. ;)
 
Great project, is it possible to expand the number of PEQ filters to more than 10 per channel in the future? Thanks
 
Fantastic developments! Thanks!

I ordered version 2 of Pico:)
I will use LT with anechoic(outdoor free field) design and I achieve an amazingly flat in-room response with acoustic treatment and freedom of placement
Loudness Compensation should be interesting

---"With this new architecture, we leave core 0 with an absolute maximum utilization of just 35%. This frees a plethora of resources for Bluetooth LDAC, SPDIF/I2S input, displays, integrations and other fancy things."--
All of this is amazing - Thinking about my first configuration and I can easily design and 3d print an enclosure- The printing file(s) can be open source
I do prefer quality metal enclosures but 3d prototype(s) will suffice and maybe later metal with faceplate and rear panel etching with my cnc laser or Modushop can handle it so more people have access if they so choose.
 
Last edited:
Great project, is it possible to expand the number of PEQ filters to more than 10 per channel in the future? Thanks
Just in case you didn’t know, since this has input and output filter, you can put 10 filters on the input and 10 on the output to effectively get 20 filters on a 2.0 or 2.1 signal (but this is less effective if you are doing a fully active 4-way x-over).
 
Is there an API version (rest or whatever) of the control interface?
 
Since there is a Pico with wifi, would it be possible to add some kind of web interface as well?
 
You can use two USB outputs from your PC to the same DAC/headphone amp, with channel/source switching on the DAC:

USB output 1 → DAC: drives headphones directly.
USB output 2 → DSPi → TOSLINK → DAC RCA out to speaker amp → DSPi sub RCA → subwoofer.
On the DAC, you switch the input between USB 1 (headphones) and TOSLINK (speakers + sub) as needed. This lets you keep one DAC but choose between headphone-only or full system output.

You will need to also choose on your PC your desired sound device to use. DSPI usb or USB dac.
Your solution assumes that he doesn't want to use the DSPi on the headphones, but I think he does(for headphone EQ). Troy mentions that he has some coding to do to allow for multiple DSPi's ("once I have implemented device selection in DSPi Console and randomized PID identifier ranges for the boards."). He also mentions that the 4xSPDIF would likely solve the problem, since you could program one or more SPDIF pairs for Speakers/Sub and another pair for for headphone EQ. Of course, that would still require multiple DACs downstream(one for speakers and one for headphones).
 
Great project, is it possible to expand the number of PEQ filters to more than 10 per channel in the future? Thanks
Yes. The number of filters per channel has a SET/GET command. Any number of filters can be placed on any channel, so long as they fit within the total budget of 100.

Since there is a Pico with wifi, would it be possible to add some kind of web interface as well?
Absolutely. I have plans to do this, along with Home Assistant integration. :)
 
Since there is a Pico with wifi, would it be possible to add some kind of web interface as well?
That would also require that the console code (currently running on a PC/Mac) would also need to exist a part of the firmware, and may require more resources than the Pico has available.
 
Your solution assumes that he doesn't want to use the DSPi on the headphones, but I think he does(for headphone EQ). Troy mentions that he has some coding to do to allow for multiple DSPi's ("once I have implemented device selection in DSPi Console and randomized PID identifier ranges for the boards."). He also mentions that the 4xSPDIF would likely solve the problem, since you could program one or more SPDIF pairs for Speakers/Sub and another pair for for headphone EQ. Of course, that would still require multiple DACs downstream(one for speakers and one for headphones).
Yeah but if he is using PC he could just simply assign a Peace EQ apo to the headphone usb out only. And when he switch to the Pico usb out he could use the DSPi eq with Sub for speaker amp.

For me my DX5 ii holds my PEQ's. speaker EQ for rca out and headphone EQ for balanced 4.4 out. Introducing the DSPi will mean I will need to switch between usb outputs or use the dspi and remember to disable the sub crossover every time i switch tp headphones.
 
This is great. I see another audio project in my future.
 
Am I right in thinking that eventually that analogue inputs could be added and I could use multiple Picos and DSPi instead of something like a Minidsp Flex HTx?
 
Am I right in thinking that eventually that analogue inputs could be added and I could use multiple Picos and DSPi instead of something like a Minidsp Flex HTx?
You could but no ADC is always better than any ADC. Why not just use direct digital input? Or is your actual source some sort of analog thing (vinyl or reel to reel)?
 
You could but no ADC is always better than any ADC. Why not just use direct digital input? Or is your actual source some sort of analog thing (vinyl or reel to reel)?
I'm thinking of a dsp for av receivers.

Or at least a much cheaper alternative to a Minidsp 2x4 HD.
 
Am I right in thinking that eventually that analogue inputs could be added and I could use multiple Picos and DSPi instead of something like a Minidsp Flex HTx?
Analog inputs are entirely possible but that's more of a peripheral matter, as the firmware can support any input type via I2S. When the project is more mature (which will not take long), I will be making available one or more hat-style addons that provide a combination of codecs, TOSLINK IO or DACs best suited to particular use cases.

I believe the most effective approach for inputs in general when designing the hats would be to make use of an inexpensive ASRC. This would enable inputs to be mixed without having to deal with fractional PLLs and other shenanigans.

For those who desire immediate SPDIF input to mix with USB, these modules look quite interesting.

1770751079292.png
 
Last edited:
Stored firmware profiles, maybe just as files saved to an SD card

would allow for user switching from "music speaker mode" to "theatre mode" to "music headphone mode" to "news/podcast headphone mode" etc
 
Stored firmware profiles, maybe just as files saved to an SD card

would allow for user switching from "music speaker mode" to "theatre mode" to "music headphone mode" to "news/podcast headphone mode" etc
The foundation for this is actually already implemented. The Pico and Pico 2 include 2MB and 4MB of flash respectively, which is plenty for a few user profiles. There's a feature request open for this and it will be implemented soon. :)
 
Last edited:
Maybe is the same thing?

but also backup/restore including moving to new hardware, or when you go too far "just messing around"

timestamp + descriptor string for filenames.
 
Last edited:
Back
Top Bottom