Skip to main content

A DSP Toolkit

Project description

Software for HiFiBerry boards equipped with DSP. This package can be used to read/write data to HiFiBerry DSP boards using the Beocreate TCP server.


This server runs in background and provides a TCP interface (port 8089) to access DSP functions. It is compatible with SigmaStudio. That means you can directly deploy DSP programs from SigmaStudio and change parameters online.

The server automatically dumps the so-called parameter RAM to the file system when it terminates. On startup, it checks for a parameter RAM file and if it exists it writes it back to the parameter memory. This ensures that parameters like volume controls, filter parameters, switch settings will be automatically restored even if they are not saved in the EEPROM.

The server accepts the following command line parameters:

-v Verbose output.
--alsa Create an ALSA volume control that is synced with the volume control of the running DSP program

Command line utility

dsptoolkit is a tool that is used to directly access functions of the DSP via the TCP server. This means it can run on another system.

The general usage pattern is

$ dsptoolkit command parameter

The following command are supported. Note that some command need specific parameters in the DSP profile. If the DSP profile does not support these, the command won’t have any effect.

  • store

    saves the current parameter RAM to the file system. This is recommended if you have deployed new filters or changed other settings that should be re-activated after a system reboot

  • restore

    restores the parameter RAM from the file system

  • reset

    Resets the DSP. The program will be loaded from the EEPROM. The parameter RAM won’t be stored and/or recovered from the file system.

  • install-profile

    writes a DSP profile to the DSP EEPROM and activates it. A profile installed with this command will be automatically started after a reset

  • set-volume volume

    set the volume. Volume values can be defined in real values (0-1), percent (0% to 100%) or decibels (use need to use negative values to reduce the volume)

  • get-volume

    gets the current setting of the volume control register.

  • set-limit

    sets the volume limit. The effect is the same as setting volume. The idea of this setting is having a volume control that can be changed between 0 and 100% (or -inf dB to 0dB) and the limit setting to set the maximum volume of the system.

  • set-rew-filters|set-rew-filters-left|set-rew-filters-right filename

    Deploys parametric equaliser settings calculated by REW to the equaliser filter banks (left, right or both). Not all DSP profiles will support this setting To make sure the filters are still active after a system reboot, make sure you use teh store command.

  • set-fir-filters|set-fir-filters-left|set-fir-filters-right

    Deploys a FIR (finite impulse response) filter to the left, right or both FIR filter banks. A FIR filter file is a simple text file with one real number per line. Not all DSP profiles will support this setting To make sure the filters are still active after a system reboot, make sure you use teh store command.

  • clear-iir-filters

    Resets the IIR filter banks to default values. This is helpful if you deployed filters to the DSP that do not perform as expected

  • read-dec|red-int|read-hex address

    Reads a memory word from the given address and interprets it as a decimal value, integer value or just displays it as a HEX value Addresses are 2byte long and they can be defined as integers or hex values. Hex values are defined by the prefix 0x (e.g. 0x01aa)

  • loop-read-dec|loop-read-int|loop-read-hex address

    Works exactly like the read-xxx command. However, it reads the values in a loop. This is often useful when debugging DSP programs as you can easily see if and how parameters change

  • write-reg address value

    Writes a value to a 2-byte register. This command should be used to write the DSP register addresses. While it will also accept DSP RAM addresses, these are 4 bytes long and the command will only set the first 2 bytes of a RAM cell

  • write-mem address value

    Writes a 4 byte value to a memory cell. The value can be given as an integer or hex value. When using this command on register addresses, the command will write to 2 consecutive register addresses as addresses have a length of only 2 bytes.

  • mute|unmute

    Mutes/unmutes the output. This only works if the profile supports a mute register

REW integration

The software can be used to push filters created by Room Equalisation Wizard (REW) to the DSP.

DSP profile format

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for hifiberrydsp, version 0.8.1
Filename, size File type Python version Upload date Hashes
Filename, size hifiberrydsp-0.8.1.tar.gz (20.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page