← All news

DSPconfig v1.5 and Firmware v1.6

DSPconfig v1.5 is now available, together with firmware v1.6 for the DSP-8C. It is by far the largest release since v1.0 and contains around eight months of work. With it comes a host of fundamental improvements across the board: the per-output-channel limit on FIR filter lengths has been removed, the arithmetic through the signal path is more precise, and the way settings are written to flash is now safe against power loss, to name the bigger ones. Device settings, master volume, audio source and profile selection are also now controllable from the application for the first time, and units built since roughly February 2026 report live peak and clipping meters.

I should note upfront with apologies that this release was expected several months earlier, but it turned into a much larger piece of work than anticipated.

Firstly, I ended up doing a major re-architecture of both the DSPconfig GUI code and the firmware code. Whilst the GUI codebase worked well for its own purposes up to the last release, it became clear that in order to support the features in this and future releases, a more flexible approach was needed. Most of this work is not visible to the end user, but one notable difference available immediately is that having the filter editor window open no longer blocks the main window.

Secondly, a lot of the plumbing was put in place for the upcoming DSP-4C. We've had a lot of people contacting us regarding the DSP-4C, and we can now share that the final prototype PCBs are now only pending their UKCA/CE/FCC certification at the testing lab. We will post further updates as and when we get past that step and place the order with our PCB supplier for the first production run. Note that the timing of these final steps is largely outside our control. If everything goes well and we don't have any shipping delays, we could launch the DSP-4C at the end of September, but it could slip to October.

I'll now discuss some of the bigger changes/fixes in a little more detail for those interested.

FIR filters on the output channels are no longer limited to 4,096 taps in length

Output channel FIR filters are processed on the Analog Devices ADSP-21565 chip, using the built-in hardware accelerator. By default, that accelerator can only handle filter lengths of 4,096 per channel. However, a mathematical property of FIR filters is that they can be split into smaller sub-filters (a "partial"), which can then be summed back together to obtain the original, longer filter. We now use that property to split long filters into chunks of a maximum of 4,096 taps and treat them as individual sub-filters as described.

What this now means is that instead of a quota of up to 4,096 taps per output channel, there is now one large quota that can be split across the output channels as you please: 30,336 taps at 96kHz and 15,104 at 192kHz. A side effect of this arrangement is that it is possible to configure a valid-looking profile that will exceed the processing capacity of the ADSP-21565. DSPconfig will automatically check for this and prevent you from saving such a profile to your device, but note that this really is the exceptional case where you are maxing out the processing on both the output and input channels simultaneously.

Optimised biquad and FIR filter processing on the input channels

A biquad or FIR filter carries state from one sample to the next, and every step of that accumulation is rounded to whatever precision the state is held in. Those rounding errors do not cancel; they accumulate as a noise floor set by the arithmetic rather than by the analogue design. Input channel filters now accumulate their state at 40 bits rather than 32-bit floating point, which pushes the noise floor further below that of the DAC.

The advantage of focussing on the input channels first is that everything routed downstream (i.e. the output channels) inherits the result. Output samples are also now delivered to the DAC as full 32-bit PCM.

Two filters that were calculated incorrectly

Chebyshev filters were being generated with the wrong order and with sign errors in their coefficients, and have been corrected.

The odd-order high and low shelf filters (specifically Low Shelf and High Shelf, not the Q or RBJ variants), i.e. the 6, 18, 30 and 42 dB per octave slopes, had a more insidious fault. Their coefficients were correct in the 64-bit arithmetic DSPconfig calculates them in, and became unstable when narrowed to the 32-bit form the DSP stores.

It took a while to get to the bottom of this, after a couple of users noted that after a certain time period they were starting to get noise coming out of their speakers. Depending on the exact specification of their odd-order shelf filters, the resulting coefficients were more or less unstable: one user who had a very unstable filter would get noise building up within a minute or two of running (as the biquad state accumulated towards infinity), whilst another user needed to wait 2 or 3 days before the filter's instability grew enough to become audible.

DSPconfig v1.5 now flags any EQ or crossover filter whose coefficients would be unstable at the precision they are stored in, which, now that we've fixed the issue with the shelf filters, should essentially never occur for any realistic filter.

A timing bug causing flash data corruption

A rare timing fault in earlier firmware could corrupt the settings held in flash if a write was interrupted at the wrong moment. It was essentially impossible to reproduce deterministically, but two customers lost their stored configuration and both had to receive replacement units. We are sorry for the disruption that caused.

Flash reads and writes have been fully reworked so, from this firmware release, all procedures are now safe against power failure and transient EMI events causing a mis-read or mis-written byte. Data integrity is protected by a CRC32 checksum and is also verified at boot, with a fallback recovery in place if the integrity check fails.

Next steps

With the architectural changes in the GUI, the next thing we can broach is increasing chart interactivity. Included in that work will, at least initially, be an adjustable y-axis and the ability to view a given channel's full signal chain in one chart; something I've been wanting to get around to for a long time now.

Download now available

Firmware v1.6 is delivered as an in-app update - you can apply the update from the new version of DSPconfig from the 'Device > Firmware...' menu.

DSPconfig itself is a free download for Windows, macOS and Linux, and it does not need a unit attached to try out: the demo device lets you build profiles, work through the filter editors and read the charts before deciding whether a DSP-8C suits your system.

The full changelog lists everything in both releases.

Our sincere thanks to all of our customers for their support and feedback, which have led to these improvements,

Michael