• 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

When I mentioned that "the extra two input channels do not seem to be getting any audio", I was referring to the fact that the last two INPUT meters in the main console window do not register any signal. And this seems to be independent on how outputs are activated/routed. For example, in this screenshot we can see meters for USB 1&2 registering input, despite no output selected in the matrix (which is normal behavior in my book).

Again, this may be an user/source config issue. But I just wanted to make sure my initial point was clear / wanted to state that this behavior it's not an output selection issue (not as far as I can say at least).
I suspect there might two little issues at play here; the metering and mixer. Those are two things which I completely forgot to investigate prior to release and they are both functions which needed revisions for multichannel support.

I will push a hotfix within the next few hours.
 
When I mentioned that "the extra two input channels do not seem to be getting any audio", I was referring to the fact that the last two INPUT meters in the main console window do not register any signal. And this seems to be independent on how outputs are activated/routed. For example, in this screenshot we can see meters for USB 1&2 registering input, despite no output selected in the matrix (which is normal behavior in my book).

Again, this may be an user/source config issue. But I just wanted to make sure my initial point was clear / wanted to state that this behavior it's not an output selection issue (not as far as I can say at least).
During the speaker configuration wizard, the multichannel mode selection page includes a Test button. Could you click this and verify that the meters for all corresponding channels in Console move, one at a time? I have correct meter activity for each channel during the test, which suggests there may be an issue with your Foobar configuration.

1784336362968.png


The mixer issue has now been fixed and I have pushed a hotfix. The original release post has been updated with the new link.

Here are the other changes made:
  • Channel identification chirp added to the context menu for outputs.
  • New "Gain affects displayed response graph level" setting added under Graphing -> Styles.
  • Changing filter values with the scroll wheel now requires CTRL to be held, which prevents accidental changes while scrolling filter lists.
  • ADAT no longer appears in the source list when it is disabled

1784337358923.png
 
Last edited:
I'm truly moved by your latest release.
Now all I need to be completely happy is Windows input and remote control.
I saw that there's a UART setup: is there documentation?
Thanks
 
During the speaker configuration wizard, the multichannel mode selection page includes a Test button. Could you click this and verify that the meters for all corresponding channels in Console move, one at a time? I have correct meter activity for each channel during the test, which suggests there may be an issue with your Foobar configuration.
Thanks for the quick fix!

I confirm that when testing the channels via Windows embedded routine, audio is routed through the extra channels: all the meters are working and sound is produced on all active channels.

For the record, I think I figured out (at least to a certain extent) why Foobar testing was not successful before: I think (guess) Windows output channels set-up is quite specific and restrictive. Selecting 3.1 Surround in Windows settings and then simply having Foobar output 2+2 channels is not working (channel mapping limitation I assume). Using instead Channel Mixer in Foobar DSP chain and selecting a configuration that is exactly matching Windows set-up (I picked up 5.1 in both cases) does work.
 
The pace of the project is mind-blowing. Thank you, Troy, for the wonderful new features you are adding to the software.

Due to this pace, I try to keep up with the thread, but I may have missed some messages. It was mentioned at some point the possibility of having a total filter limit based on the total filters used on all channels, instead of being capped to 10 filters per channel. This is extremely convenient for room correction (my use case).

Is this feature still planned or is there some kind of technical limitation to it?
 
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.
is the filter budget exposed in the console? ‘m under the impression DSPictl has a hard-coded max of 10 based on the published data model…
 
Maybe someone can please thoroughly test the "External Mute Control" I get a loud pop at some point when activating/deactivating the settings.
Guessing maybe its simply a problem with one of my Adafruit Dacs
 
Huge thanks to Troy for releasing the massive DSPi update. It allowed me to move my rotary encoder off the Weeb-engine and replace the old RF remote with BLE remote support, all handled by an ESP32-S3 front panel connected over UART.


That frees up processing resources and GPIO pins, while adding a proper visual interface. Everything stays in sync with the DSPi Console, and it definitely beats my old blinking LED status indicator. :)

DSPi ESP32 Front Panel v1.0.0

Repository and downloads:
https://github.com/CrawlingKingSn8ke/DSPi-ESP32-Front-Panel


Ready-to-flash release:
https://github.com/CrawlingKingSn8ke/DSPi-ESP32-Front-Panel/releases/tag/v1.0.0


Video demo:


The video shows the panel in use and should answer most setup and usage questions. The Analog VU meter needs some work on the scaling.
 

Attachments

  • DSPi.JPG
    DSPi.JPG
    155.3 KB · Views: 74
Huge thanks to Troy for releasing the massive DSPi update. It allowed me to move my rotary encoder off the Weeb-engine and replace the old RF remote with BLE remote support, all handled by an ESP32-S3 front panel connected over UART.


That frees up processing resources and GPIO pins, while adding a proper visual interface. Everything stays in sync with the DSPi Console, and it definitely beats my old blinking LED status indicator. :)

DSPi ESP32 Front Panel v1.0.0

Repository and downloads:
https://github.com/CrawlingKingSn8ke/DSPi-ESP32-Front-Panel


Ready-to-flash release:
https://github.com/CrawlingKingSn8ke/DSPi-ESP32-Front-Panel/releases/tag/v1.0.0


Video demo:


The video shows the panel in use and should answer most setup and usage questions. The Analog VU meter needs some work on the scaling.
SIR, very impressive!
 
Huge thanks to Troy for releasing the massive DSPi update. It allowed me to move my rotary encoder off the Weeb-engine and replace the old RF remote with BLE remote support, all handled by an ESP32-S3 front panel connected over UART.


That frees up processing resources and GPIO pins, while adding a proper visual interface. Everything stays in sync with the DSPi Console, and it definitely beats my old blinking LED status indicator. :)

DSPi ESP32 Front Panel v1.0.0

Repository and downloads:
https://github.com/CrawlingKingSn8ke/DSPi-ESP32-Front-Panel


Ready-to-flash release:
https://github.com/CrawlingKingSn8ke/DSPi-ESP32-Front-Panel/releases/tag/v1.0.0


Video demo:


The video shows the panel in use and should answer most setup and usage questions. The Analog VU meter needs some work on the scaling.
Very cool!
Would this scale to a larger display like this?

AliExpress

or this

AliExpress 2
 
Very cool!
Would this scale to a larger display like this?

AliExpress

or this

AliExpress 2
Yes, it should scale to a larger ESP32-S3 display, but it would need a modified firmware build for that screen’s driver, pins and resolution. Most of the UART, BLE, encoder and DSPi logic could stay the same; the main work would be resizing the interface and replacing the 320 × 240 display setup. Of those two, the 3.5-inch 480 × 320 board looks like the easier option.
 
Yes, it should scale to a larger ESP32-S3 display, but it would need a modified firmware build for that screen’s driver, pins and resolution. Most of the UART, BLE, encoder and DSPi logic could stay the same; the main work would be resizing the interface and replacing the 320 × 240 display setup. Of those two, the 3.5-inch 480 × 320 board looks like the easier option.
So maybe if others are interested also, we could all agree on one model. If you're up for adapting your firmware to a bigger screen I'm willing to back that up with some $$.
 
I have just released both DSPi Firmware v1.1.5-beta5 and DSPi Console v1.1.5-beta5 for Windows. ...
  • RP2350: ADAT input support with master and slave clock modes (can now be looped through one of these)
This means that DSPi can now be used as both an ADAT -> I2S/SPDIF and I2S -> ADAT converter, for those previously interested the now-obsolete board that I designed for this purpose last year.

OH YES! The ADAT input was the missing piece and it means that DSPi can now add DSP to most audio interfaces and output to 4x Toslinks or any ADATs !!!!

Now I can plan projects that use the ADAT as I wanted for a long time, but there simply was no hardware to do it :)
My ideal plan is to build a system with:


1x [ADAT optical receiver / 8ch in] connected electrically to 2-4 units of [RP2350]:
  1. [RP2350 processing ADAT ch 1&2, 3&4] with output to 4x Toslinks or DACs or ADAT (4ch input with 8 outputs to implement crossovers for tweeter and mid-woofer)
  2. [RP2350 processing ADAT ch 5&6, 7&8] with output to 4x Toslinks or DACs or ADAT (4ch input with 8 outputs to implement crossovers for tweeter and mid-woofer)
  3. [possible extra RP2350 in case more PEQ resources are needed}


Thank you, and as soon as I get this piece together - this deserves a payment, not just a coffee.
 
OH YES! The ADAT input was the missing piece and it means that DSPi can now add DSP to most audio interfaces and output to 4x Toslinks or any ADATs !!!!

Now I can plan projects that use the ADAT as I wanted for a long time, but there simply was no hardware to do it :)
My ideal plan is to build a system with:


1x [ADAT optical receiver / 8ch in] connected electrically to 2-4 units of [RP2350]:
  1. [RP2350 processing ADAT ch 1&2, 3&4] with output to 4x Toslinks or DACs or ADAT (4ch input with 8 outputs to implement crossovers for tweeter and mid-woofer)
  2. [RP2350 processing ADAT ch 5&6, 7&8] with output to 4x Toslinks or DACs or ADAT (4ch input with 8 outputs to implement crossovers for tweeter and mid-woofer)
  3. [possible extra RP2350 in case more PEQ resources are needed}


Thank you, and as soon as I get this piece together - this deserves a payment, not just a coffee.
My pleasure! :)

The original plan was to implement just three-channel stereo upmixing but I was feeling a little ambitious, so what we actually have now is simply "Stereo Upmixer".

1784422051950.png

This function enables stereo inputs to be upmixed either to three-channel or five-channel surround. It is effectively a shameless clone of Dolby ProLogic II, with numerous customizable settings to tailor the output to your preference. CPU cost is effectively zero and it sounds quite good, to my ears.

I might also release this as a VST plugin. The logic is quite portable.
 
Last edited:
Wow, I'm speechless. There's so much to get to grips with in this latest version. Bravo!

Also, I'm not sure if it's a (very minor) bug, but while you can still use the mouse wheel to adjust "gain" and "delay" values, it no longer works for the PEQs or Crossover filter settings.
 
Wow, I'm speechless. There's so much to get to grips with in this latest version. Bravo!

Also, I'm not sure if it's a (very minor) bug, but while you can still use the mouse wheel to adjust "gain" and "delay" values, it no longer works for the PEQs or Crossover filter settings.
Thank you! That's a feature rather than a bug. In order to change filter parameters on the PEQ or XO pages with the mouse wheel, you'll need to hold CTRL. This was done to eliminate the issue of accidentally changing parameters while scrolling through the lists.
 
output to 4x Toslinks or any ADATs
You may be aware, but for others

ADAT is a completely different protocol from TOSlink, only the physical media in common.

Limited to 44.1/48Hz to get 8x channels, fewer channels allow higher rates via S/MUX - is that implemented here?

One lightpipe port for input, the other for output.

If there are converters that pass between 1x ADAT and 4x2 TOSlink in either direction (or S/PDIF Coax) at a reasonable price, (anyone please) post links

Preferably bidirectional, ideally concurrently.
 
This looks interesting


Someone put finished units of this onto Tindie / Etsy / eBay and TAKE OUR MONEY please.

RME Digiface USB is a great product, full USB interface, but crazy pricey for just doing this one specific job.
 
Last edited:
"Stereo Upmixer"
...
This function enables stereo inputs to be upmixed either to three-channel or five-channel surround. It is effectively a shameless clone of Dolby ProLogic II, with numerous customizable settings to tailor the output to your preference. CPU cost is effectively zero and it sounds quite good, to my ears.

I might also release this as a VST plugin. The logic is quite portable.
Not actually requesting

but I absolutely LOVE what Schiit did with their SYN DAC + all-analog upmixer / preamp + HPamp. Now discontinued, eBay they go for $600+ MSRP used to be half that.

Works great for film nights if you hate proprietary AVR / codecs, also gaming and music, 3.1 or 5.1

Easily revert to 2ch only via remote (for sources not conducive), both Width and Presence knobs.

I think rather than ProLogic, they did something more along the lines of David Hafler (RIP 1919-2003) "ambiance extraction" I also bought his Dynaco QD1 Series II to compare, like Schiit's version best of all.

All this to say, if in future you seek alternative algo's that's one to investigate cloning

unless Jason implements it in Forkbeard or something, then maybe not






 
Back
Top Bottom