Software DSP Processing using Gstreamer pipelines and the GSASysCon app
- By CharlieLaub
- PC Based
- 44 Replies
Last Update to this Page: 25 April 2025.
GSASysCon Release 3.15.1 is now available for download. It includes an automated setup script that should make it easier to get started. You can find the project at GitHub using this link:
https://github.com/charlielaub/GSASysCon
To download the GZIP+TAR compressed file:
Under Linux you can use wget to download the file into the current directory instead of having to use a browser:
To unpack the compressed files: first gunzip the gz archive and then run tar -xvf on the resulting tar file. Follow the instructions in the SetupGuide.txt doc in the directory /system_control/docs.
You can look over the documentation online before downloading, at this link:
https://github.com/charlielaub/GSASysCon/tree/main/system_control/docs
ABOUT GSASysCon:
During the past 10 years I have been using Gstreamer pipelines plus my LADSPA plugins to implement software based IIR DSP processing. I find this approach much easier to configure and use than CamillaDSP so I would like to share this with the rest of the DIY community.
Gstreamer is a powerful multi-media platform that is continually undergoing development and improvement. Because Gstreamer pipelines are difficult to write from scratch, I wrote an application that generates them based on the contents of a user input file that describes the DSP processing. The application consists of a couple of input files and a large bash script (currently about 3000 lines long). The app will also launch and kill the pipelines when directed by you, and basic in-app volume control of local devices is available. Together these can be used to turn your computer into a “preamp” with input switching and volume control plus everything you need to do DSP processing. I use this to run all my own systems.
The app has the name “Gstreamer Streaming Audio System Controller”, or GSASysCon. GSASysCon is completely open source and you are welcome to modify or develop it.
Here is a quick overview of the behavior and features:
• Control of and Interaction with the program is 100% text based via simple input files and a text-based user-interface.
• Substitution and channel duplication capabilities make it easy to describe the DSP processing for complicated, multichannel setups.
• Filtering and routing is easy to configure via an intuitive configuration file structure
• The control interface can turn systems on and off and control playback volume. These features can be controlled remotely over your LAN via SSH.
• Gstreamer provides several source and sink TIME (not rate) based synchronization mechanisms. This makes it possible for synchronized playback of multiple, disparate sinks and adaptive rate playback.
• Can be run under Debian/Ubuntu based OSes (including Rasberry Pi OS) or Windows 11 WSL2 in which the bash shell is available.
• GSASysCon has no external dependencies except Gstreamer, and bash built-in commands.
• Input audio is typically via Pipewire/PulseAudio monitor or ALSA Loopback (use VB-Audio Virtual Cable under Windows)
• The Gstreamer command string for any pipeline can captured and run outside of the app, if desired.
Some differences between GSASysCon and CamillaDSP are:
• GSASysCon can create playback systems made up of multiple remote clients. Audio is sent using RTP over the local network (hardcable or WiFi) to one or more playback endpoints (computer+audio device/DAC). Tight playback synchronization between endpoints can be achieved when their clocks are synchronized using chrony (NTP).
• GSASysCon has no fancy level meters, no GUI, and no flow or filter diagrams except what can be generated manually using Gstreamer
• In GSASysCon, DSP is exclusively IIR filtering via LADSPA as filter-chains. FIR filtering is not currently available.
• GSASysCon was designed for music playback without any particular concerns for latency. Buffer size is fixed at 1024 samples.
• Gstreamer pipelines created with GSASysCon run at a fixed audio rate and bit depth that is chosen by the user. There is a high quality resampler built into Gstreamer that handles SR conversions.
The combination of Gstreamer and LADSPA is a robust and reliable DSP platform for DIY audio processing under Linux, or WSL2 under Windows. I've been using this to implement IIR DSP crossovers for almost 10 years in tandem with my ACDf LADSPA plugin. ACDf implements all the first and second order filter types – it’s all you need for loudspeaker crossovers and PEQ duty.
.
GSASysCon Release 3.15.1 is now available for download. It includes an automated setup script that should make it easier to get started. You can find the project at GitHub using this link:
https://github.com/charlielaub/GSASysCon
To download the GZIP+TAR compressed file:
Under Linux you can use wget to download the file into the current directory instead of having to use a browser:
wget https://github.com/charlielaub/GSASysCon/archive/refs/tags/3.15.1.tar.gz
To unpack the compressed files: first gunzip the gz archive and then run tar -xvf on the resulting tar file. Follow the instructions in the SetupGuide.txt doc in the directory /system_control/docs.
You can look over the documentation online before downloading, at this link:
https://github.com/charlielaub/GSASysCon/tree/main/system_control/docs
ABOUT GSASysCon:
During the past 10 years I have been using Gstreamer pipelines plus my LADSPA plugins to implement software based IIR DSP processing. I find this approach much easier to configure and use than CamillaDSP so I would like to share this with the rest of the DIY community.
Gstreamer is a powerful multi-media platform that is continually undergoing development and improvement. Because Gstreamer pipelines are difficult to write from scratch, I wrote an application that generates them based on the contents of a user input file that describes the DSP processing. The application consists of a couple of input files and a large bash script (currently about 3000 lines long). The app will also launch and kill the pipelines when directed by you, and basic in-app volume control of local devices is available. Together these can be used to turn your computer into a “preamp” with input switching and volume control plus everything you need to do DSP processing. I use this to run all my own systems.
The app has the name “Gstreamer Streaming Audio System Controller”, or GSASysCon. GSASysCon is completely open source and you are welcome to modify or develop it.
Here is a quick overview of the behavior and features:
• Control of and Interaction with the program is 100% text based via simple input files and a text-based user-interface.
• Substitution and channel duplication capabilities make it easy to describe the DSP processing for complicated, multichannel setups.
• Filtering and routing is easy to configure via an intuitive configuration file structure
• The control interface can turn systems on and off and control playback volume. These features can be controlled remotely over your LAN via SSH.
• Gstreamer provides several source and sink TIME (not rate) based synchronization mechanisms. This makes it possible for synchronized playback of multiple, disparate sinks and adaptive rate playback.
• Can be run under Debian/Ubuntu based OSes (including Rasberry Pi OS) or Windows 11 WSL2 in which the bash shell is available.
• GSASysCon has no external dependencies except Gstreamer, and bash built-in commands.
• Input audio is typically via Pipewire/PulseAudio monitor or ALSA Loopback (use VB-Audio Virtual Cable under Windows)
• The Gstreamer command string for any pipeline can captured and run outside of the app, if desired.
Some differences between GSASysCon and CamillaDSP are:
• GSASysCon can create playback systems made up of multiple remote clients. Audio is sent using RTP over the local network (hardcable or WiFi) to one or more playback endpoints (computer+audio device/DAC). Tight playback synchronization between endpoints can be achieved when their clocks are synchronized using chrony (NTP).
• GSASysCon has no fancy level meters, no GUI, and no flow or filter diagrams except what can be generated manually using Gstreamer
• In GSASysCon, DSP is exclusively IIR filtering via LADSPA as filter-chains. FIR filtering is not currently available.
• GSASysCon was designed for music playback without any particular concerns for latency. Buffer size is fixed at 1024 samples.
• Gstreamer pipelines created with GSASysCon run at a fixed audio rate and bit depth that is chosen by the user. There is a high quality resampler built into Gstreamer that handles SR conversions.
The combination of Gstreamer and LADSPA is a robust and reliable DSP platform for DIY audio processing under Linux, or WSL2 under Windows. I've been using this to implement IIR DSP crossovers for almost 10 years in tandem with my ACDf LADSPA plugin. ACDf implements all the first and second order filter types – it’s all you need for loudspeaker crossovers and PEQ duty.
.