Skip to content

Web-based UI to control HiFiBerry DAC2 HD + DSP Add-on using SigmaStudio profile via REST API. Built with React and designed for Raspberry Pi + MoodeAudio.

Notifications You must be signed in to change notification settings

bsergei/hifiberry-dsp-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HiFiBerry DAC2 HD + DSP Control Panel

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.


Features

  • 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

UI Control Panel DSP Control Panel UI


Services and Integration

The repository also contains systemd service definitions to ensure proper startup and integration with MoodeAudio OS and HiFiBerry components.

Included Services

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

Getting Started

1. Install Dependencies

Make sure Node.js and npm are installed on your Raspberry Pi. Then install the UI dependencies:

cd dsp-control-panel
npm install

2. Build the UI

npm run build

3. Deploy the App as a Service

Copy the systemd service files to /etc/systemd/system.

4. Set Up Services

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

SigmaStudio Integration

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.

Functional Blocks

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

API Integration

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.

DSP Diagram

The full signal path and block layout can be seen in the screenshot:
SigmaStudio Profile


License

MIT License

About

Web-based UI to control HiFiBerry DAC2 HD + DSP Add-on using SigmaStudio profile via REST API. Built with React and designed for Raspberry Pi + MoodeAudio.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published