• 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

DSPi Console for Linux is coming along nicely.

This is running under KDE Plasma 6.6 and uses native framework colors, so it should look pretty no matter the user's theme.

1774071077034.png


Many functions are still missing, of course.
 
Hello,just to start off,I really like this project.I wanted to build an amplifier with integrated dsp for a while,initally looking at the adau 1462,and modifying the freedsp to better adapt it to my needs,however this is simpler and cheaper.The downside is i'm not really good with code,i can understand some stuff by looking at it but not much more.My use case would really benefit from tdm input and output,and limiters would be very important,where could I " cut the traces" of the processing pipeline to implement some limiting?Also implement some sort of input switching,or am I in way over my head?
 

I have updated the project to support macOS 14 and later, which is the earliest revision with API support for the codebase. Here is a hotfix with that change in place. This should work well on your hackintosh.
Hi, thanks so much for your help. Unfortunately, it's not working yet, but that's due to my Hackintosh. I'll tinker with it a bit more, and until then, I'll just use the Windows version.

I wanted to create a subsonic filter with it. When I set the high-pass filter below 43 Hz, the graph looks very strange. I suspect there's a display error.

To reproduce the issue, a 42 Hz high-pass filter on an SPDIF channel is sufficient.
 
A minor glitch to address: It seems that when I use REW to generate filters and import them into the MacOS console, if I don't catch the fact that the number of filters exceeds 10, then importing the filter file causes the Console to crash. Clearly it's my bad for trying to import too many filters, but perhaps the import process could catch the problem before self-destructing?

I wish REW had a more elegant way to set the number of filters to use---maybe I'm just missing it. I went into the EQ filters panel and individually turned off all filters beyond number 10. I'd rather have the opportunity to just directly specify the number to use. Not a huge deal; just another little REW interface annoyance. If my approach isn't the best one available, please let me know!

Few
 
I wish REW had a more elegant way to set the number of filters to use---maybe I'm just missing it. I went into the EQ filters panel and individually turned off all filters beyond number 10. I'd rather have the opportunity to just directly specify the number to use. Not a huge deal; just another little REW interface annoyance. If my approach isn't the best one available, please let me know!
Instead of running the DSP as ‘Generic’ you can pick MiniDSP 2x4 HD to limit to 10 PEQs.

Maybe one day REW will have a preset for DSPi.
 
A minor glitch to address: It seems that when I use REW to generate filters and import them into the MacOS console, if I don't catch the fact that the number of filters exceeds 10, then importing the filter file causes the Console to crash. Clearly it's my bad for trying to import too many filters, but perhaps the import process could catch the problem before self-destructing?

I wish REW had a more elegant way to set the number of filters to use---maybe I'm just missing it. I went into the EQ filters panel and individually turned off all filters beyond number 10. I'd rather have the opportunity to just directly specify the number to use. Not a huge deal; just another little REW interface annoyance. If my approach isn't the best one available, please let me know!

Few
Thank you very much for the bug report. The filter import should definitely have a guard for that edge case. I will squash this bug shortly.

Filters per channel will soon become flexible and without an artificial limit, incidentally.
 
Thank you very much for the bug report. The filter import should definitely have a guard for that edge case. I will squash this bug shortly.

Filters per channel will soon become flexible and without an artificial limit, incidentally.
Glad the report is helpful. And I’m excited to have more PEQ filters to play with! I’ve been blending input and output filters to increase the number of filters I can deploy to flatten the response of my desktop system (inconsistent with the helpful flowchart, out of necessity). I’m about to improve the signal path so cheating won’t work as well going forward. But I’ll be saved if there are more knobs to tweak!

My improved setup requires another DAC/amp to handle the subwoofer separately, and I was surprised how hard it was to find an affordable desktop-friendly solution. I ended up ordering an obsolete S.M.S.L. DAC/amp, used, identical to the one I already own. I’ll use one above 150 Hz for the main DIY full-range driver speakers, and the other for the Phase Tech PC50 passive subwoofer I’ve had since my gradual school days in the 1980s :oops:. I thought there would be endless options with S/PDIF inputs but apparently I’m out of date.
 
DSPi Console v1.1.2b for Windows is now available! Both applications are now at feature parity once more. :)

1774159599285.png


Here is a summary of the changes:

  • Multi-device support
  • Filter response graph can be popped out to become an independent window
  • Main application menu icon moved to the left side of the titlebar as a hamburger menu
  • Shortcut icons for essential functions added
  • Master EQ bypass function moved to icon
  • Sidebar layout optimized
  • Filter responses are now calculated in 64-bit precision, which eliminates the low frequency oddities previously observed
As always, please don't hesitate to report any bugs that you encounter.

Next stop is I2S output.
 
Last edited:
Y'all are phenomenal!

Could you please give a thumbnail sketch on what that first bullet entails?

plus maybe added aspects likely to get implemented in future...
 
Y'all are phenomenal!

Could you please give a thumbnail sketch on what that first bullet entails?

plus maybe added aspects likely to get implemented in future...
If more than one device is connected, it can be selected from a dropdown. The most recently selected device is automatically chosen.

1774161785655.png


Future functionality is documented in the roadmap but some items not yet mentioned are a limiter, a clone of the "Magic Boost" function from SoundSource, user-defined bands per channel, crossfeed and loudness per channel pair.

Hi, thanks so much for your help. Unfortunately, it's not working yet, but that's due to my Hackintosh. I'll tinker with it a bit more, and until then, I'll just use the Windows version.

I wanted to create a subsonic filter with it. When I set the high-pass filter below 43 Hz, the graph looks very strange. I suspect there's a display error.

To reproduce the issue, a 42 Hz high-pass filter on an SPDIF channel is sufficient.
This has been corrected in the newest Windows release.
 
Hi, I managed to install the necessary update and the macOS console is working.

The graph looks good there.

I also tried the new Windows console.

Thanks for the quick fix.

I'm looking forward to the Linux version.
 
I'm using the latest console for windows and the decimal number problem on filter import doesn't seem to be solved.

1 Before.jpg
2 After.jpg
 
@Weeb Labs : Amazing project and impressive progress, congratulations and thank you for sharing!

I've encountered SPDIF bugs with v1.1.2b-hotfix and v1.1.2b-hotfix2 (RP2350, Win11). I have activated 2 separate SPDIF outputs (GPIO6 and GPIO7 respectively), to which I have connected Toslink connectors. All works as intended (both outputs working well and being able to transmit audio that is decoded by my DACs) with prior firmware versions, including up to v1.1.2b. The two more recent version do not output sound on the SPDIF connected to GPIO7 (no issue with GPIO6).

I have made sure that the second SPDIF output is activated via the matrix mixer, that the correct GPIO is selected in the hardware settings etc. No matter what I do, my DAC does not decode audio from GPIO7-connected SPDIF output. Reverting to v1.1.2b or before fixes this issue.
 
Awesome progress!
The only thing I would love to see more on the roadmap is - ADAT input :)

ADAT 8-channel input would allow connecting DSPi to many pro audio interfaces including using the volume control of the Audio Interface. Pretty much must-have for Windows to go over 8ch limit, where there are no aggregated devices like in MacOS.
 
I'm using the latest console for windows and the decimal number problem on filter import doesn't seem to be solved.

View attachment 519464 View attachment 519465
I'll push a fix for this shortly.

@Weeb Labs : Amazing project and impressive progress, congratulations and thank you for sharing!

I've encountered SPDIF bugs with v1.1.2b-hotfix and v1.1.2b-hotfix2 (RP2350, Win11). I have activated 2 separate SPDIF outputs (GPIO6 and GPIO7 respectively), to which I have connected Toslink connectors. All works as intended (both outputs working well and being able to transmit audio that is decoded by my DACs) with prior firmware versions, including up to v1.1.2b. The two more recent version do not output sound on the SPDIF connected to GPIO7 (no issue with GPIO6).

I have made sure that the second SPDIF output is activated via the matrix mixer, that the correct GPIO is selected in the hardware settings etc. No matter what I do, my DAC does not decode audio from GPIO7-connected SPDIF output. Reverting to v1.1.2b or before fixes this issue.
Could you please verify that you have enabled and routed audio to the SPDIF 2 outputs in the matrix mixer? I tested this a moment ago (1.1.2b-hotfix1/2) and all four SPDIF outputs are working for me.

Awesome progress!
The only thing I would love to see more on the roadmap is - ADAT input :)

ADAT 8-channel input would allow connecting DSPi to many pro audio interfaces including using the volume control of the Audio Interface. Pretty much must-have for Windows to go over 8ch limit, where there are no aggregated devices like in MacOS.
Thank you. ADAT IO is tricky but I will be looking into it. I can't make promises at this point but if it can be done, I will be doing it!

The latest console is fabulous!
Thank you! I'm glad you like it. :)
 
I've made an IED--Improvised Electronic Device--with DSPi. I doubt it will win any awards for design elegance but it works. I'm sending the output to main speakers and a subwoofer on my desktop system. The box is bigger than I hoped because I'm using a breakout board for the Pico and the board is about twice as wide as the Pico. It may be too blurry to read, but the cable on the lower side is from Radio Shack and says so on the orange band. On the upper edge is a Pi400.
 

Attachments

  • weeb.jpg
    weeb.jpg
    179.7 KB · Views: 122
I've made an IED--Improvised Electronic Device--with DSPi. I doubt it will win any awards for design elegance but it works. I'm sending the output to main speakers and a subwoofer on my desktop system. The box is bigger than I hoped because I'm using a breakout board for the Pico and the board is about twice as wide as the Pico. It may be too blurry to read, but the cable on the lower side is from Radio Shack and says so on the orange band. On the upper edge is a Pi400.
What are the R/C values you're using for the sub out? TIA.
 
Last edited:
Back
Top Bottom