• 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

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.

View attachment 510233
I would recommend to also provide an I2S output. The advantage is, that you can connect a small interface board with multiple connectors such as coax, optical and AES. You can find these boards on Aliexpress for less than 15$. There are also more expensive boards available with an additional I2S HDMI output. That pretty much all you need to connect your HiFi gear.
 

Attachments

  • IMG_1206.jpeg
    IMG_1206.jpeg
    183.1 KB · Views: 116
Last edited:
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.

View attachment 510233
So it sounds like i2s input is already supported? Is this exposed through the existing tooling at this time? I didn't see anything about it in the repo readme
 
I'm sure it's been covered in this thread somewhere, but I'm curious about the time alignment on the sub vs s/pdif output. Is this just close enough to not be an audible concern or is there a chance that these outputs desync?
 
I'm glad to hear it's working now. I'd love to know how things go tomorrow. :)

Not a lot of time available, but enough to solder some things and test a bit.
Used a 68ohm resistor and a 1uF capacitor (only ones I had immediately on hand that could fit) and a DLT1160 TX for Toslink output
TEST TOSLINK.jpg


A quick test and music is played (from Foobar in WASAPI exclusive mode), added a 500Hz HP filter on both SPDIF Outputs to test, and EQ worked
TEST Toslink - HP 500.PNG


More tests later.

P.S.
didn't test on audio, but just saw that with a 50Hz high pass, it looks OK, but with a 40Hz high pass, it looks like that:
TEST Toslink HP 40.PNG
 
Last edited:
I'm sure it's been covered in this thread somewhere, but I'm curious about the time alignment on the sub vs s/pdif output. Is this just close enough to not be an audible concern or is there a chance that these outputs desync?
At the moment, they exhibit a very small margin of latency variation (<2ms). That's less than one degree of phase rotation at 80Hz, which is negligible. In a future commit, PDM will be clocked to the SPDIF DMA IRQ or migrated to a double buffered array, which will perfectly phase lock both outputs.
 
Not a lot of time available, but enough to solder some things and test a bit.
Used a 68ohm resistor and a 1uF capacitor (only ones I had immediately on hand that could fit) and a DLT1160 TX for Toslink output
View attachment 510279

A quick test and music is played (from Foobar in WASAPI exclusive mode), added a 500Hz HP filter on both SPDIF Outputs to test, and it's OK
View attachment 510275

More tests later.

P.S.
didn't test on audio, but just saw that with a 50Hz high pass, it looks OK, but with a 40Hz high pass, it looks like that:
View attachment 510276
Ah, I had forgotten about that! Thanks for the bug report. It's just a slight visual bug that arises from the fact that we're using a fixed point algorithm to generate the curve. This will be sorted out shortly.
 
Would this project be an option for SPDIF input? It’s also based on a pico mcu, and the list of needed components is small.
Yes. Adding SPDIF input is quite straightforward. The boards that I posted include an ASRC, which is specifically required if one wishes to mix SPDIF with the USB input.
 
silly question incoming as i am new to this but does this only work for headphones or applies to speakers as well?
 
silly question incoming as i am new to this but does this only work for headphones or applies to speakers as well?
It works for speakers, headphones and anything else that can receive an audio signal.
 
Will this be able to take a 5.1 audio stream from toslink input, process it and output 3 sets of stereo channels on SPDIF/toslink?
1 for front speakers, 1 for surrounds, & 1 for sub & center channel? This would let me use 3, inexpensive 2 channel amps to drive the system.
 
Will this be able to take a 5.1 audio stream from toslink input, process it and output 3 sets of stereo channels on SPDIF/toslink?
1 for front speakers, 1 for surrounds, & 1 for sub & center channel? This would let me use 3, inexpensive 2 channel amps to drive the system.
I'm afraid the RP2040/RP2350 does not have the resources to decode an AC-3 stream. 5.1 or 7.1 are possible via USB and I intend to support both once all of the fundamentals are in a very robust state.
 
5.1 or 7.1 are possible via USB and I intend to support both once all of the fundamentals are in a very robust state.
Other than PC's, what consumer audio devices output via USB, the 5.2 & 7.1 formats that you are planning on? Just trying to understand. I'm not really up on all this, though I find it very interesting. I'm very impressed by what you have accomplished in such a short time.
 
I am delighted to announce the release of DSPi Console v1.0.8 for macOS and DSPi Firmware v1.0.8. This is quite a major update and introduces several important new functions.

First, let's take a look at the main application window.

console2.png


The channel naming scheme has now been revised for consistency and the sidebar can now display up to eight output channels. The dashboard continues to display tables for all channels, with stereo cards for SPDIF channels and mono cards for individual ones such as PDM. The Master Bypass button has also been revised.

All selection functionality works exactly as it did before; we simply have more channels to work with. Meters currently display output activity only for the first SPDIF pair but this will soon be revised.

Next, we have the brand new Matrix Mixer, accessible via the Tools menu.

1770799371287.png

Screenshot 2026-02-11 at 08.00.08.png

This is a powerful tool with many useful functions and I have spent quite a number of hours agonizing over the UI design. I am quite pleased with the current iteration, though some later revisions may eventually be made.

The Routing section enables one to route any input channel(s) to any output channel(s). Each route has an individual gain control, along with the ability to invert the routed signal.

In the Output section, we have quick access to the same gain, delay and mute controls as those found in the main application window, with all states properly synchronized. Crucially, we also have the ability to fully enable or disable any desired channel(s). Disabled channels are not shown in the main application window's sidebar and they do not consume any system resources. The dashboard view will also hide their cards.

1770797469273.png
1770797491384.png


By default, only Input L and Input R are enabled and routed to Out 1 and Out 2 respectively. This helps to keep the main application window free of unused channels, hopefully renders it less intimidating for new users and conserves system sources.

1770797957622.png


The final row on the right side of the Matrix Mixer is the original PDM subwoofer output. You may have noticed the amber color of the routing and enable buttons. This brings us to the most significant enhancement present within today's update: dual core optimization.

Previously, Core 0 alone was responsible for all PEQ filter computations, while Core 1 simply handled the software DAC for our analog subwoofer output. This architecture was adequate for five channels but certainly not for eight. The solution was to move the processing for all but two output channels to Core 1, leaving Core 0 free with more resources for handling time sensitive tasks.


Core 1 operates in two modes; EQ Worker and PDM:

1770798757262.png


If output channels 3-8 are disabled (leaving 1 and 2 available on Core 0), the system behaves as it did prior to this update. We have a stereo SPDIF output and the PDM channel is no longer amber (can be enabled).

1770798777313.png


If any of channels 3-8 are enabled, the system disables PDM (amber and we have 8 fully digital SPDIF output channels.

This architecture delivers the best of both worlds; stereo SPDIF and PDM with 50 PEQ filters available or 8-channel SPDIF with 100 PEQ filters available. You decide!

That's all for today. I hope you enjoy the software and please do advise me of any bugs. :)

Links:
- DSPi Console v1.0.8 for macOS
- DSPi Firmware v1.0.8.

PS: DSPi Console v1.0.8 for Windows is on the way.
 

Attachments

  • 1770794821880.png
    1770794821880.png
    447 KB · Views: 43
  • 1770799402396.png
    1770799402396.png
    56.3 KB · Views: 41
Last edited:
Back
Top Bottom