• 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

Is it based on CamillaDSP?
Not at all! DSPi is a firmware for microcontrollers, while CamillaDSP is software that runs on various operating systems. They have very different working principles separate codebases.

Why isn’t there a low latency bit perfect system out there for WiFi connections?

What would it take to make that for a system like this? Basically just a virtual audio card driver for the OS and a UDP receiving app on the pi?

Something in the range of 200ms latency would be incredible.
I have been looking into this and I believe that 10-15 ms should be achievable, provided both sender and receiver are connected to wired ethernet.
 
Why isn’t there a low latency bit perfect system out there for WiFi connections?

What would it take to make that for a system like this? Basically just a virtual audio card driver for the OS and a UDP receiving app on the pi?

Something in the range of 200ms latency would be incredible.
Because wifi is a packeted format and isn’t designed real-time operation.
 
I have been looking into this and I believe that 10-15 ms should be achievable, provided both sender and receiver are connected to wired ethernet.
So a bit better than AES67 and Dante, and worse than AVB. The first two need some reasonably common QoS support in the router(s) while AVB needs hardware timestamping and guaranteed latency support which are somewhat rare.
 
Why isn’t there a low latency bit perfect system out there for WiFi connections?
Because WiFi doesn't have protocols to offer the sort of QoS or latency that wired connections can, particularly the guaranteed latency that AVB uses to keep its latency so low. So you get a trade-off between making the buffer small to keep latency down and making the buffer large to avoid dropouts. And it's a hard one to balance because the latencies will be different in different environments depending on the local radio conditions - a busy city centre office is very different to an isolated house. We can't even run PTP over WiFi because it can't cope with the range of latency variation, hence wireless speakers using proprietary sync mechanisms.
 
Furthermore, as far as I have learned so far, even using "wired ethernet", it would be better to configure independent (second) GB network adaptor with independent/dedicated TCP/IPv4+IPv6 IP addressing for dedicated Audio-over-IP AES67/AVB/Ravenna/DANTE.

For example, if you are using one network adaptor of TCP/IPv4 192.168.0.xxx (subnet mask 255.255.255.0) for your regular home LAN including internet access, it would be better to have another PCIe (or USB 3.0?) network adaptor card (at least one/two GB ports) for audio dedicated use (plus independent switching hubs) which should be manually configured for example TCP/IPv4 192.168.7.xxx (subnet mask 255.255.255.0); usually independent IPv6 address would be automatically obtained if the network system supports IPv6.
 
Last edited:
Furthermore, as far as I have learned so far, even using "wired ethernet", it would be better to configure independent (second) GB network adaptor with independent/dedicated TCP/IPv4+IPv6 IP addressing for dedicated Audio-over-IP AES67/AVB/Ravenna/DANTE.

For example, if you are using one network adaptor of TCP/IPv4 192.168.0.xxx (subnet mask 255.255.255.0) for your regular home LAN including internet access, it would be better to have another PCIe (or USB 3.0?) network adaptor card (at least one/two GB ports) for audio dedicated use (plus independent switching hubs) which should be configured for example TCP/IPv4 192.168.7.xxx (subnet mask 255.255.255.0); usually independent IPv6 address would be automatically obtained if the network system supports IPv6.
Yes, a dedicated network or crossover is definitely much more robust. This does defeat the purpose of it for many people who just want to make use of their existing networks, of course.

So a bit better than AES67 and Dante, and worse than AVB. The first two need some reasonably common QoS support in the router(s) while AVB needs hardware timestamping and guaranteed latency support which are somewhat rare.
Similar to AES67 but without guaranteed latency and significantly slower than hardware Dante (<1ms). In practice, I would probably target around 20-30ms for stability.
 
Last edited:
Why isn’t there a low latency bit perfect system out there for WiFi connections?

What would it take to make that for a system like this? Basically just a virtual audio card driver for the OS and a UDP receiving app on the pi?

Something in the range of 200ms latency would be incredible.
That’s essentially what WiSA is. Based on WiFi hardware but a different protocol than your normal WiFi that achieves lower latency
 
Furthermore, as far as I have learned so far, even using "wired ethernet", it would be better to configure independent (second) GB network adaptor with independent/dedicated TCP/IPv4+IPv6 IP addressing for dedicated Audio-over-IP AES67/AVB/Ravenna/DANTE.
[former network engineer here] Yes, but those are pro standards requiring pro kit and proper planning to work reliably in their intended setting of studios and venues. You'd have to be doing something very odd in a home setting to truly require separate physical networks. The data rate for audio at home isn't ever realistically going to be over 10mbps, so 1% of a 1gig connection, and latencies per frame are in the microsecond range. It's possible if you have a really crappy switch that it might drop a frame or two, but if you are using AES67 you're using decent network hardware, right?

So separate networks are always "better" in the technical sense, but they're not really required for home use. Or at least, try without, and if you have dropouts _then_ get a better switch and/or separate the connections.
 
[former network engineer here] Yes, but those are pro standards requiring pro kit and proper planning to work reliably in their intended setting of studios and venues. You'd have to be doing something very odd in a home setting to truly require separate physical networks. The data rate for audio at home isn't ever realistically going to be over 10mbps, so 1% of a 1gig connection, and latencies per frame are in the microsecond range. It's possible if you have a really crappy switch that it might drop a frame or two, but if you are using AES67 you're using decent network hardware, right?

So separate networks are always "better" in the technical sense, but they're not really required for home use. Or at least, try without, and if you have dropouts _then_ get a better switch and/or separate the connections.
Thank you for your kind follow-up!

Fortunately, all of my PCs at home are in CAT6A (ANSI/TIA-568-B.2-10) wired-LAN and each of them has two (2) to six (6) GB-adaptors/ports for independent NAS/Server network connections (fast and robust network storage/backup drives/folders, etc.). Some of my/our PCs at upstairs office are directly wire-LAN-connected (with no switching-hub) to a Xeon-CPU-based workstation-server PC which has multiple (actually six ports) GB-network-adaptors.

In case if I would move forward into audio-over-IP world (i.e. AES67, AVB, Ravenna, or DANTE), therefore, I shall rather easily setup independent audio-dedicated, separately wired, TCP/IPv4+IPv6 IP addressing ethernet configuration, just for sure and robustness. :)
 
Last edited:
I'm not asking for real time - that's why I said 200ms latency. 200ms is a massive buffer.
I assumed that was a typo for 20ms because you also said 'low latency' and 200ms is certainly not low for latency.
 
What a fantastic project!
Am I correct in assuming that this little 8-output stick can basically handle the digital crossover duties of a 4-way stereo active speaker system?
How about a cardioid DSP setup akin to Kii? (Or does that require FIR?)
 
What a fantastic project!
Am I correct in assuming that this little 8-output stick can basically handle the digital crossover duties of a 4-way stereo active speaker system?
How about a cardioid DSP setup akin to Kii? (Or does that require FIR?)
Thank you! :)

Yes, it can certainly function as two 4-way crossovers. Cardioid doesn't require FIR but it would increase the bandwidth of the cardioid behavior.

There will be a hotfix later this evening patching the USB descriptor bug, duplicating SPDIF 1 to pin 20 for backward compatibility and a few optimizations.
 
Last edited:
I have a pico 2 and setting it up for left and right + PDM sub. PDM sub out wiring is attached. For L/R spdif coax output is there any external components required?


1770916925940.png
 
I have a pico 2 and setting it up for left and right + PDM sub. PDM sub out wiring is attached. For L/R spdif coax output is there any external components required?


View attachment 510597
The resistors and capacitor in the diagram above are the only external components required for coaxial SPDIF output.
 
Such a cool project. Too tech for me, I think, without an idiot's guide, and the Pico W that I impulsively ordered will probably gather dust, but absolutely worth a Ko-fi none-the-less.

Cheers, Custard
 
The resistors and capacitor in the diagram above are the only external components required for coaxial SPDIF output.
sorry, Its a little confusing because its stated the diagram is "low-pass filter for conversion to analog audio." sub out PDM

so that I get it straight the circuit is for ALL coaxial SPDIF outputs?
 
Such a cool project. Too tech for me, I think, without an idiot's guide, and the Pico W that I impulsively ordered will probably gather dust, but absolutely worth a Ko-fi none-the-less.

Cheers, Custard
Thank you!

There will be a fancy, comprehensive video covering all of this on the YouTube channel when most of the critical work is complete.

sorry, Its a little confusing because its stated the diagram is "low-pass filter for conversion to analog audio." sub out PDM

so that I get it straight the circuit is for ALL coaxial SPDIF outputs?
Yes. The above diagram is for all coaxial SPDIF outputs.

I have just realized that the readme actually doesn't include a diagram for the PDM. Both diagrams are for SPDIF (TOSLINK and coaxial connections). My apologies! I'll update it shortly.

For the PDM output, you need to connect a 3.3 kΩ resistor to the GPIO, followed by 47 nF capacitor to GND. Connect your RCA jack after the resistor.

1770919789764.png
 
Last edited:
For the PDM output, you need to connect a 3.3 kΩ resistor to the GPIO, followed by 47 nF capacitor to GND. Connect your RCA jack after the resistor.
Please always add a series cap, 10uF or so, for DC protection!
 
Please always add a series cap, 10uF or so, for DC protection!
Yes, this is also a good idea. At least if you're not certain that your amplifier/active subwoofer is AC coupled.
 
Back
Top Bottom