This is a React-based web UI for controlling the DSP functionality of the HiFiBerry DAC2 HD + DSP Add-on board. It uses the HiFiBerry DSP REST API and a SigmaStudio-generated DSP profile to provide real-time control of DSP parameters through a simple web interface.
- Control Master Volume
- Set Max Volume Limit
- Adjust Left / Right Channel Volume (Balance)
- Control Tone: Low, Mid, High frequencies
- Clean UI for real-time control from web browser / mobile device
- Runs as a background service on Raspberry Pi
The repository also contains systemd service definitions to ensure proper startup and integration with MoodeAudio OS and HiFiBerry components.
Service File | Description |
---|---|
audio-trigger.service |
Turns amplifier ON/OFF based on audio stream activity in MoodeAudio OS |
dsp-control-panel.service |
Runs the React UI app as a system service |
sigmatcpserver.service |
Starts SigmaTCPService, required for DSP parameter writes |
Make sure Node.js and npm are installed on your Raspberry Pi. Then install the UI dependencies:
cd dsp-control-panel
npm install
npm run build
Copy the systemd service files to /etc/systemd/system.
sudo systemctl enable sigmatcpserver.service
sudo systemctl enable dsp-control-panel.service
sudo systemctl enable audio-trigger.service
sudo systemctl start sigmatcpserver.service
sudo systemctl start dsp-control-panel.service
sudo systemctl start audio-trigger.service
The DSP logic for this project is defined in the SigmaStudio project:
.\sigma-studio-profile\dsp-addon-my4.dspproj
This profile is compiled and exported for use with the HiFiBerry DSP Add-on board. It defines the signal routing, processing blocks, and external controls exposed to the UI through SigmaTCPService.
The DSP profile includes:
- Input stage: Handles stereo input from the DAC2 HD I2S input
- Master Volume: External volume block (e.g., Single Slew Ext Vol) mapped for REST API control
- Left / Right Channel Volumes: Separate external volume blocks for balance control
- Max Volume Limiter: Gain block with upper bound, also exposed externally
- Tone Controls:
- Low Shelf Filter
- Mid Peaking Filter
- High Shelf Filter
All are parameterized via external controls
- Mute: External boolean control to bypass audio
- Output stage: Connects to the DAC output via the DSP Add-on
Each externally controllable block in SigmaStudio is configured with read/write external parameters, which are accessible via HiFiBerry's REST API (served by SigmaTCPService
).
These parameters are mapped to UI elements in the React app for real-time control.
The full signal path and block layout can be seen in the screenshot:
MIT License