The stable release closing out the v1.1.5 beta series. Everything below is new since v1.1.4.
Changes since v1.1.5-beta6
If you are already running beta6, this is the whole delta:
- Significant PEQ and XO filter efficiency improvement (up to 25%)
- Stereo upmixer gains a centre engine OFF mode, for surrounds-only upmixing that leaves left and right untouched.
- New first-order high pass and low pass filter types.
- Maximum selectable S/PDIF inputs raised from 3 to 4.
- IR remote learns up to 16 buttons per receiver, up from 8.
- Loudness reference SPL and intensity can now be bound to a knob, encoder, or remote button.
Everything else since beta6 was test-suite and internal DSP refactoring with no change in behaviour.
New inputs and outputs
- ADAT input: 8 channels over lightpipe, with master and slave clock modes (RP2350).
- ADAT output: 8-channel lightpipe mirror of outputs 1-8 (RP2350).
- I2S input, 2/4/6/8 channels, with a slave clock mode so an external master can drive BCK and LRCLK.
- Up to 4 selectable S/PDIF inputs on the shared receiver, switchable at runtime.
- USB input now runs 2, 4, 6, or 8 channels, with inputs treated as first-class channels throughout the mixer.
- Master clock output on GPOUT, jitter-free at 128x and 256x at 48 kHz and 128x at 96 kHz.
New processing
- Stereo upmixer: derives centre and surround channels from a stereo pair, with Passive and Logic engines, a centre presence bell, and a surrounds-only mode (RP2350).
- Psychoacoustic bass: missing-fundamental harmonic generation per output, so small speakers get perceived bass below their real limit.
- Crossover filters: Linkwitz-Riley, Butterworth, and Bessel, up to 4 bands per channel.
- New filter types: Linkwitz Transform, first-order high pass, low pass, shelves, and all-pass, plus a second-order all-pass.
- Volume leveller and crossfeed both go multichannel, with per-channel selection.
- Loudness compensation is now per output, selectable by channel.
- Onboard signal generator with 15 signal types, surviving preset loads.
Control
- Control Surfaces: wire your own buttons, switches, pots, rotary encoders, and LEDs to firmware parameters. Supports long press, double press, hold-to-repeat, momentary actions, encoder acceleration, PWM-dimmed meter LEDs, and per-slot names.
- IR remote control: learn up to 16 buttons from any handset and bind each to a parameter.
- Loudness reference SPL and intensity are now bindable to a knob, not just the on/off switch.
- UART and I2C control interfaces, so an external microcontroller can drive the device without USB.
- Output configuration can persist independently of presets, or travel with them.
- Every pin setting accepts 0xFF to reset that pin to its default.
- Per-band EQ bypass toggle.
Improvements and fixes
- Loudness compensation math corrected; the previous curve overshot by roughly 2.5x.
- Outputs keep clocking through flash writes, so saving a preset no longer risks a click or a wedged DAC.
- Fixed a crash during flash writes on RP2350 caused by unmasked interrupts.
- Fixed full-volume noise when editing DAC mute settings during a flash write.
- Fixed incorrect S/PDIF input levels on RP2040.
- Fixed output type switching between S/PDIF and I2S.
- Fixed global EQ bypass incorrectly gating outputs on RP2040.
- Defeated auto-mute on 32-bit I2S DACs.
- Click-free master and host volume control.
- LG Sound Sync support for LG televisions.
- USB descriptors corrected for Windows driver binding (WCID and MS OS 2.0).
- Firmware now runs from flash with hot paths pinned in RAM, freeing about 70 KB of SRAM on RP2040 and 107 KB on RP2350.
- Master volume no longer changes on a runtime preset load in independent mode.
Changed defaults
- S/PDIF receive pin default moved to GPIO 5.
- Debug UART moved off GPIO 12 to GPIO 16 and 17.
- I2S input data pins default to GPIO 1 through 4.
Downloads
DSPi-RP2040-v1.1.5.uf2for RP2040 (Pico).DSPi-RP2350-v1.1.5.uf2for RP2350 (Pico 2).