• 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 controlled volume ( listening volume)
Encoder / RF remote / PC volume
Uh... no, that shows a complete lack of understanding of how a DSP works. Firstly, the more you reduce the volume upstream, the less headroom you have to apply "lossless" modifications (EQ, crossover, loudness, compression, etc.) to the signal. So no, the only controllable volume should be the one at the end of the circuit, that is: the master volume. This doesn't prevent you from controlling the volume upstream (PC, software, TV, CD, etc.), but you should prioritize volume control at the master volume level to ensure the integrity of the signal with any modifications made to it. There's some leeway in 32-bit... but even so, this concept is fundamental.

But on the other hand, and after what I just said, it's obvious, I totally agree with that:

For input gain/preamp, I personally would not touch it unless there is a specific reason. I see input gain as being mainly for headroom or source matching. For example, reducing level before input-side EQ or loudness boost, matching an unusually hot or quiet source, or dealing with analogue-style sources where level can vary more, such as a phono stage, turntable setup or ADC input.

For normal digital sources like USB, S/PDIF from a TV, CD player, DAP or streamer, I would generally leave input gain at 0 dB unless there is clipping or unless EQ is being applied on the input channels.

For speaker/sub integration, I think PEQ and crossovers usually make most sense on the outputs.
 
Out of curiosity, is support for LG Sound Sync already in the pipeline?

The feature was decoded and suggested by a fellow ASR member and would be killer for owners of LG TVs (shamelessly including myself :D)
Not only is it in the pipeline but I already have a working implementation and it will be popping up in one of the upcoming betas. :)
 
Not only is it in the pipeline but I already have a working implementation and it will be popping up in one of the upcoming betas. :)
Awesome!! I'm ordering a Pi Pico as I type :D

On that note, are there any use cases (currently or in the future) for the Pico 2 W's wireless module? Something like casting/streaming or configuration via web interface?

I'll gladly configure DSPi over USB, but thought I'd ask anyway.
 
Awesome!! I'm ordering a Pi Pico as I type :D

On that note, are there any use cases (currently or in the future) for the Pico 2 W's wireless module? Something like casting/streaming or configuration via web interface?

I'll gladly configure DSPi over USB, but thought I'd ask anyway.
The wireless module will likely be used for control via Bluetooth BLE. An ESP32 will be included on the official board to handle web UI, WiFi and similar functions, as network libraries occupy quite a lot of SRAM and we don't have very much to play with.

1778027138333.png


On another note, I received one of these I2S headphone amplifier boards today and have just had the opportunity to test it. This board is capable of driving my Sundaras cleanly firmly into "much too loud" territory with a +8dB low shelf. The price is €2.50 and while I haven't measured the output, I don't doubt the specification of 160mW into 32Ω. This is the perfect little addon for a DSPi board.
 
Last edited:
View attachment 530309

On another note, I received one of these I2S headphone amplifier boards today and have just had the opportunity to test it. This board is capable of driving my Sundaras cleanly firmly into "much too loud" territory with a +8dB low shelf. The price is €2.50 and while I haven't measured the output, I don't doubt the specification of 160mW into 32Ω. This is the perfect little addon for a DSPi board.
The same manufacturer also offers a module that can directly drive small speakers.

Bildschirmfoto 2026-05-06 um 05.27.51.png
 
Uh... no, that shows a complete lack of understanding of how a DSP works. Firstly, the more you reduce the volume upstream, the less headroom you have to apply "lossless" modifications (EQ, crossover, loudness, compression, etc.) to the signal. So no, the only controllable volume should be the one at the end of the circuit, that is: the master volume. This doesn't prevent you from controlling the volume upstream (PC, software, TV, CD, etc.), but you should prioritize volume control at the master volume level to ensure the integrity of the signal with any modifications made to it. There's some leeway in 32-bit... but even so, this concept is fundamental.

But on the other hand, and after what I just said, it's obvious, I totally agree with that:
Fair point, my earlier diagram made visual sense for explaining the idea, but it was too loose technically.

In my custom build I have ignored Windows volume/mute writes and put the encoder/RF remote on that same host/listening volume path instead (the volume control that was always intended to be used)

So the encoder is not acting as a random upstream attenuator before the DSP processing. It is replacing Windows as the user volume control for DSPi. Loudness follows that user volume value, and Master Volume remains the final ceiling/protection limit.

So the way I understand it is more like this:

Control path:
Encoder / RF remote

DSPi host/listening volume value

Loudness compensation uses this value as its listening-level reference

Then in the audio path, that same host/listening volume is also used as part of the final output scaling, together with Master Volume:

Audio path:
Input
USB / S/PDIF

Input gain / preamp, if needed

DSP processing
PEQ / crossover / routing / loudness

Output gain / channel matching

Final output scaling
Host/listening volume × Master Volume

Outputs
I2S / S/PDIF TX

So loudness compensation does not follow Master Volume. It follows the user/listening volume value. Master Volume is then multiplied in later as the overall ceiling.

That distinction is what I was trying to get at. I want the encoder/RF remote to be the normal day-to-day listening volume, while Master Volume remains a set-and-forget maximum limit.

This is also why the encoder makes sense to me for S/PDIF and standalone use. Windows volume is only really logical when Windows is the source. DSPi still needs its own volume reference for loudness, and the encoder/RF remote gives it that.
 
Regarding the gain structure of the DSPi, I was wondering if someone who understood could draw a quick diagram for me as I am a visual person and am struggling slightly with the various descriptions. I have used the Extron DMP series before professionally, and this is from their configurator software, but also shows the various processes available quite nicely:-

dmp44lc_dsp_ga-1793461287.jpg

Please note that I am NOT suggesting we change Troy's elegant GUI, just that it would be handy to have a visual guide to where gain and volume are available and where the various slots live in respect to them. If I was confident I understood it, I'd draw it up myself, so I apologise for trying to push this onto someone else.

Cheers, Ajay
 
Regarding the gain structure of the DSPi, I was wondering if someone who understood could draw a quick diagram for me as I am a visual person and am struggling slightly with the various descriptions. I have used the Extron DMP series before professionally, and this is from their configurator software, but also shows the various processes available quite nicely:-

View attachment 530344
Please note that I am NOT suggesting we change Troy's elegant GUI, just that it would be handy to have a visual guide to where gain and volume are available and where the various slots live in respect to them. If I was confident I understood it, I'd draw it up myself, so I apologise for trying to push this onto someone else.

Cheers, Ajay

1778048700171.png
 
Volume control is a complex and potentially dangerous topic, especially for our speakers and our hearing.
This is a really good point! If I ever get round to building a full-on 3-way crossover I plan to have trimmable analogue gain after each DAC, set at a maximum likely listening level that cannot be exceeded - digital clipping aside.... :eek: Obviously "maximum likely listening level" is a bit vague and dependent on source material, but it shouldn't take too long to reach a reasonable compromise. It might also be worth having a completely independent Mute function, just in case the worse happens.
 
About that gain, where does it enter 32bit float territory? Because with loudness turned on an even positive gain on the input preamp I do get lot of red clipping on the input meters but with no audible clipping whatsoever, so I take it it's in float here already? So I'm not sure if gain staging really matters anywhere since 32bit float is more than enough with it's 192dB of SNR to do whatever one wants, just make sure that the outputs doesn't clip.

And yeah, I still think it makes sense to have the input preamp and the master volume to affect the loudness compensation, but I'm not sure how other wants it so maybe have an option for that?
 
Another point on the volume discussion is that when connecting the DSPi to Windows, the Windows volume slider is automatically moved from its current position to 100%. That may be the desired position for DSPi use but it could have negative downstream impact. Why not leave that level alone and let the user move it to 100% manually once they have assured all other levels are correct so that once they hit "play" on Weather Report's Palladium the foundation of their house won't crumble?!
 
Another point on the volume discussion is that when connecting the DSPi to Windows, the Windows volume slider is automatically moved from its current position to 100%. That may be the desired position for DSPi use but it could have negative downstream impact. Why not leave that level alone and let the user move it to 100% manually once they have assured all other levels are correct so that once they hit "play" on Weather Report's Palladium the foundation of their house won't crumble?!

You cannot rely on Windows volume for system protection, especially when feeding power amps.
This also caught me off guard. I’d forgotten my DAC was in line mode, I turned the encoder without checking the screen and got a sudden blast of sound. Luckily, the master volume was set to -20.
In my custom code, I force the host/listening volume to -45 on new stream start, which has been working well. It applies to SPDIF input too, just enough level to confirm an active stream.

After first device boot or device connection, the volume is reduced on startup (similar to an AVR start-up volume). Once running, it does not reset after playback stops.
As an extra layer of protection I have disabled the Windows audio link entirely to prevent any apps from controlling the listening volume.

You can get an encoder, + remote with antenna for less than £10.
 
I believe it is always critically important where to control "master volume" and where to control "relative volume/gain" in digital level in multichannel DSP + even in analog level after DAC(s), for safety concerns as well as for convenience in daily music listening enjoyments.

Just for your possible reference and interest, I assume it would be worthwhile here on this thread sharing the total signal path of my PC-DSP-based multichannel multi-SP-driver multi-amplifier full-active audio setup (ref. #931 on my project thread); where the "Master Volume Control" is in the most-upstream digital music player JRiver MC.
Fig03_WS00007533 (4).JPG


One of the unique features of this setup is using HiFi "integrated amplifiers" each of them has volume/gain control in analog level; I wrote as follows under the below spoiler cover in my post #931;
In my post #9312, I wrote;
Here in this post, please let me emphasize again about the pros and merits of relative gain (i.e. tone) control not only in digital domain but also in analog domain using pre-amplifiers or integrated-amplifiers (in my setup). I recently wrote again in my post #56 on a remote thread like these;
Yes, as for safe and flexible tone controls (or I can say "relative gain controls among the multiple SP drivers"), my stance (policy) at least, is that we are encouraged to utilize the "best combination" of "DSP configuration in digital domain" and "analog domain tone controls using HiFi-grade preamplifiers and/or integrated amplifiers".

We need to note (and to respect for) that analog domain tone controls (relative gain controls among the multiple SP drivers) give no effect nor influence at all on the upstream DSP configuration (XO/EQ/Gain/Phase/Polarity/Group-Delay). I believe that this is a great merit of flexible tone controls in analog domain. We know well, on the other hand, in case if we would like to do the "tone/gain controls" only within DSP configurations, such DSP gain controls always affect more-or-less on "XO" "EQ" "phase" and "delay" of the DSP settings which will leads you to possible endless DSP tuning spirals every time; within DSP configurations, XO EQ Gain Phase and Delay are always not independent with each other, but they are always interdependent/on-interaction.

Just for your possible reference, my DSP-based multichannel multi-SP-driver multi-amplifier active system has flexible and safe analog level on-the-fly relative gain controls (in addition to upstream on-the-fly DSP gain controls) for L&R subwoofers, woofers, midrange-squawkers, tweeters, and super-tweeters, all independently and remotely.
My post here shows you a typical example case for such safe and flexible on-the-fly analog-level tone controls. This my post (as well as this post) would be also of your interest.

Of course, I know well that I (we) can also perform such relative gain control using DAC8PRO’s 8-channel output gain controllers. I do not like, however, to change the DAC8PRO’s output levels frequently on-the-fly (while listening to music) due to safety and inconvenience concerns; I like to keep DAC8PRO’s analog out gain level always at constant -4 dB which should remain to be usually “untouchable” in my case.

One of the very unique aspects/features of my multichannel audio rig is that I fully utilize four HiFi-grade “integrated amplifiers” plus L&R active subwoofers, each of them have its own gain (volume) controller for safe and flexible relative gain (tone) control in analog domain even on-the-fly i.e. while listening to music.

In this perspective, my posts #438 and #643 should also give you better understandings. Furthermore, my posts #317(remote thread), #313(remote thread) would be also of your reference and interest.

Furthermore, as end-users of DSP-based audio systems, we should recognize that "safety measures" are not the responsibility of the DSP, but our own. Of course, it would be better if some critical (minimum?) safety features are also built/configured in the DSP software/hardware.

We should be always careful enough, therefore, about our own daily "ignition/start-up sequences" and "shutdown sequences" in our audio setup, as I wrote/shared my such sequences at the end portion of my lengthy(!) post #931; you may easily understand that, at least I myself, do not like/trust "triggered" simultaneous start-up and shutdown of my audio gears. ;)
 
Last edited:
Wouldnt it make more sense if the windows volume slider controls the USB input gain/attennuation? I would not expect it to control the master volume
 
You cannot rely on Windows volume for system protection, especially when feeding power amps.
This also caught me off guard. I’d forgotten my DAC was in line mode, I turned the encoder without checking the screen and got a sudden blast of sound. Luckily, the master volume was set to -20.
In my custom code, I force the host/listening volume to -45 on new stream start, which has been working well. It applies to SPDIF input too, just enough level to confirm an active stream.

After first device boot or device connection, the volume is reduced on startup (similar to an AVR start-up volume). Once running, it does not reset after playback stops.
As an extra layer of protection I have disabled the Windows audio link entirely to prevent any apps from controlling the listening volume.

You can get an encoder, + remote with antenna for less than £10.
If Windows level is 0 then there is no risk, unless I'm missing something.

Thanks for the suggestion but not sure I want to add another device in the chain. My setup is rather simple:

laptop > DSPi > DAC > preamp w/remote > power amp

I have 3 points where I can safely turn levels down before the music starts (w/o getting out of my chair!), just need to remember to do so. Since my typical listening level is pretty low the risk is also. I have another DAC w/remote I could use but I like that one where it is.
 
I personally don't have an issue at all with any of the current volume setting implementations. It all seems pretty straight forward to me ¯\_(ツ)_/¯

Wouldnt it make more sense if the windows volume slider controls the USB input gain/attennuation? I would not expect it to control the master volume

No, that seems pretty backwards. Windows volume slider should really have the last say in everything.
 
Wouldnt it make more sense if the windows volume slider controls the USB input gain/attennuation? I would not expect it to control the master volume
Tbh I think that's exactly what I would like to have, so Windows volume controls the input gain, and if you have something like a rotary encoder connected (in the future when it's implemented that is) to the DSPi it could control the same input gain and therefor also Windows volume. This way I get the same volume output no matter what source I then pick. Don't know if this technically possible though, but for me that want to use DSPi as a preamp for my main system that would make a lot of sense.
I would still use the master volume occasionally though since I want to have that set quite low for everyday usage to not risk super loud music and to get a finer volume control for my Shield, but then every once in a while when I'm home alone and really want to blast I'd turn up the master volume as high as I need it to.
 
Back
Top Bottom