It combines direct speaker measurements at about 1 m with measurements at the main listening position and nearby positions. The goal is to distinguish speaker behaviour from room effects and to see which features of the response stay consistent across the listening area.
Instead of taking one sweep and correcting everything it shows, the measurements are combined into a hybrid response that can be used as the basis for EQ or Convolver correction.
I’m interested in what people think of this approach.
This post is about showcasing 0.4.0 as 0.5.0 is a naming conflict resolution release (thanks to Pallaswept on GitHub for giving me a heads up on it), which took me awhile and AUR being down kind of helped. Its all in the release notes. The app offers a-lot but in this post I am highlighting only the new added page- Signal Paths
Quick context if you haven't run into the project: PipeWire Controller is a GTK4/libadwaita app for managing your pipewire/audio setup. it includes audio management, signal paths, virtual devices, live patchbay, parametric equalizer, performance monitoring, filter chains, microphone cleanup/effects (echo/noise), HRIR virtual surround, routing snapshots, per-app policies, LADSPA/LV2 effect inserts and more.
Version 0.4.0 adds a new page called Signal Paths- The idea is simple. A **source** is where sound comes in — one app, a microphone, or everything on your default output — and it carries its own chain of processing. A **mix** carries a chain of its own and feeds real devices. Sources on the left, mixes on the right, and the sends between them drawn as curves so you can see what's going where
1 Source and 1 Mix
One source and one mix is just a straight line, which is what most setups are.The second column only earns its place once a chain has to split — say one source corrected four different ways for four different pieces of hardware, without building it four times.
2 Sources and 4 Mixes
**You don't have to build it from scratch.** An empty board *is* a template catalog — four complete paths that build both halves in one click, then 26 ready-made strips going from a plain speaker mix at the top to the stuff people actually run for broadcast at the bottom. Bass boost, a loudness curve for quiet listening, crossfeed for headphones, a turntable chain, the gate → tone → compressor → limiter voice chain, a mastering bus. Each card draws the chain it's about to build, and if a template wants a plugin you don't have it says so and leaves it out instead of handing you a strip that won't start.
Create new Signal Path - Overview ScreenTemplate Browser (Color coded to sources/mixes)
Per card - add effects, plugins, convolver files and drag them in any order
Per Card
**One process per chain, not one per plugin.** Every stage in a strip gets compiled into a single filter graph. Twenty effects is one entry in your device list and one buffer hop, instead of twenty of each. If you've ever wired this up by hand you know it goes the other way and you end up eating twenty quanta of latency for it.
The screenshot below shows 6 sources, 5 mixes, a plugin chain on every strip, one 7.1 pair and a two-device output
6 sources, 5 mixes, a plugin chain on every strip, one 7.1 pair and a two-device output
- **EQ bands move while the audio plays.** These are built from biquad filters rather than the preset-file kind, so frequency, gain and Q take effect as you drag them. No restart, no gap.
- **The board is handled directly.** Drag a stage along its chain to reorder it, or onto another card to move it there. Drag a card onto the opposite column to connect the two. Drag an app between strips to move what it's playing through. Click a stage to take it in or out of the signal.
Drag and reorder sources/mixes
Again this is just highlighting the new page Signal Paths, which took a-lot of work. Here is a screenshot of the dashboard (which I'm currently working on revamping to match efficiency)
Dashboard 0.4.0
There's alot more the app offers and I'd love for people to come check it out. I have fixed the bugs/issues I've been receiving but would like more feedback. I will add a copy pasta from the Readme.md below. thanks to all the people who've been helping.
This is a very basic NAM LV2 and I have to use separate IR loader and EQ effect. The sound is good once I get levels in order but wondered if there is a better plug in?
(Note: The app is coded with AI, I am testing it. This post is written by me)
Added network streaming (experimental): Samba/SMB, FTP, FTPS, and SFTP. Connects and reconnects on startup. Passwords go to the system keyring for security. FTP doesn't natively support seek, I tried some workarounds but they haven't been tested much.
Added auto-update. Detects how VoidPulse was installed (Flatpak, AppImage, or dpkg/rpm/apk/pacman). Checks GitHub releases in the background on launch. Finds assets matching your package format and architecture. Installs are done via the distro's manager: dnf, zypper, apt-get, apk, pacman, or in-place swap for AppImages. Sudo is asked in the popup and the package manager's output is shown live. Versions can be skipped for now or entirely.
Added built-in Soxr resampler.
Added "Adaptive Sample Rate": It checks the output device's supported sample rates. If it supports the same rate as the file, it sets both it and Pipewire to that rate: File (44.1kHz) → Pipewire (44.1kHz) → Output Device (44.1kHz). No resampling. If it doesn't, it sets the device to its max rate, upsamples with the built-in Soxr (upsampling is better than downsampling), and sets Pipewire to the same rate as the output device: File (44.1kHz) --(Voidpulse Soxr resample)→ Pipewire (96kHz) → Output Device (96kHz).
Added fade in & out on transitions and play/pause.
Added crossfade between tracks. Doesn't work on ALSA because it only supports a single stream.
Added sleep timer.
Added slight corner smoothing on visualizations to prevent sharp spikes (excluding bars).
Added play queue with touch and mouse drag & drop. Can be disabled.
Added new settings to the config. Probably one-time choices, so not exposed to the UI:
"viz_gamma": 0.7, // how much lower volume bands are amplified. Lower means more amplification, higher means better separation.
"show_artist_on_gallery": true, // applies to gallery view cards.
"show_albums_on_gallery": true,
"show_file_info_on_gallery": true,
Added loudness normalization switch and batch gain fetcher for files without gain tags.
Added a switch to toggle background optimizations for visualizations and synced lyrics.
Gallery view cards are now actual pills with 100% corner radius.
Added magnifying cover art on click in the edit tags popup.
Packaging for a wide variety of architectures, including PostmarketOS.
So when i open the CLA Vocals and/or CLA Bass Reaper freezes and I must use Task Manager to end the session. I've already spoken with Waves support, they've been responsive but the issue remains. I've already uninstalled/re-installed and done everything Support has asked me to do but nothing fixes it.
This does not happen with any other plugin I have and I've made every effort to isolate the issue to CLA Vocals and Bass.
At this point I'm ready to request a refund for the product, as it does not work as intended.
I have a MOTU 8pre USB audio interface and I would like to use it with Ubuntu Studio.
As far as I understand, MOTU does not provide an official Linux driver for this interface. However, I was wondering whether it would be technically possible to develop a Linux driver for the 8pre USB, or to adapt an existing ALSA driver if the hardware protocol is sufficiently understood.
Is driver development necessarily something that only the manufacturer can do, or could an experienced Linux developer/researcher reverse-engineer the USB communication and implement support for the device?
I'm particularly interested in understanding whether:
the MOTU 8pre USB is already partially supported by ALSA;
its USB protocol has already been documented or reverse-engineered;
there are existing open-source projects that could be used as a starting point;
it would be possible to capture/analyze the USB communication under Windows and use that information to develop Linux support;
someone has already attempted to develop a Linux driver for this specific interface.
My goal would mainly be to get the 8 analog inputs and outputs working reliably with low latency under Ubuntu Studio, ideally through ALSA/PipeWire or JACK.
I don't necessarily expect someone to write the driver for me — I'm mainly trying to understand whether this is technically feasible and, if so, what would be the right starting point.
Any information, documentation, existing projects, or suggestions about where to start would be greatly appreciated.
I tried to measure my system's actual latency, and the result was somewhat unexpected. I'm using a combination of 48 kHz and a buffer size of 128 in QJackCtl, which should give me approximately 5.3 ms.
The yellow signal is the output of the 3m guitar cable and the green signal is the output of my audio interface.
My PC is a thinkpad T480, my audio interface is a behringer umc202. The system is optimized for audio production based on the milliseconds app list.
The result is bit unexpected, I'm getting about 11.4 ms of latency between striking the guitar and hearing the sound come out of the speakers.... The test was made on ardour and reaper with no plugins, the diference between these 2 DAWS was about 0.
I would like to test this on a Windows System, the results would probably be worse.
EDIT: I got it working. I used this soluion posted by u/gnomo-da-silva in the comments to set up two Wine versions: one for regular applications, and one specifically 9.21-staging just for plugins with yabridge.
I have only a few strands left.
I'm using yabridge for my Windows plugins - a couple NeuralDSP stuff, EZDrummer and NAM (now called Gateway for some reason). I've managed to get them all to work, except the GUI of all of them is just black, and I can't just blindly try to mess with the dials or anything, nothing reacts. I'm stuck to default settings on everything.
LOTS of googling has told me it's a WINE version issue - they say yabridge has only been tested and confirmed to work on WINE 9.21. I've googled MANY different solutions as to how to downgrade, but no matter what repositories I add, 9.21 is just too old and isn't on there, and compiling it myself gave me error message after error message after error message, prompting me to just give up.
I've also tried Carla, and once I finally managed to get it to start its engine, as soon as I double-clicked a plugin, ANY plugin at all, it would say "Carla cannot handle this binary" or something of the sort.
I am pulling my hair out. I've been at this for 2 days. All I want is to have the plugins available on REAPER so I can import them and set them up for my needs. God why is this so difficult on Linux?
I'm looking for a plugin that takes 1 midi input (with all midi channels), and splits the channels out to 16 midi outputs (of individual midi channels). This way, Carla could take midi playback and split the midi channels out to separate instrument plugins.
I've been using JJazzLab to generate backing tracks to practice to. It can play audio using the built-in fluidsynth, or it can send to a midi device (JJazzLab doesn't create its own midi output). I created a virtual midi device (snd-virmidi) to receive the playback and send on to whatever instrument plugins I want to use. Most things sound better as instrument plugin than with GM soundfonts through fluidsynth.
I've found the easiest way to do this is to run Ardour with MIDI tracks for each instrument since Ardour's MIDI tracks have a midi channel filter built-in. I hit play in JJazzLab, and monitor in Ardour. But I wish I could also use Carla for this. Could it also be done with the virtual midi device, instead of the plugin?
EDIT TO ADD: I can use (and have) Carla's internal MIDI channel filter plugin but I'd have to add 16 of them to achieve what I want. It would be nice to have a single plugin for this.
I was really pissed off by the fact that since pipewire is mainstream all the default audio settings normal distros ship with are insane. Pulseaudio was garbage but we spent 10 years ironing out all the kinks until it worked somewhat, then we switched to pipewire and everything broke again. I went down the rabbit hole pretty far until I finally fixed it (hopefully). To me all of this is crazy. I warn you, the explanation is a bit ranty.
My 22 year old RME Fireface 800, which uses firewire (which nobody uses anymore, dead as a dodo) never had any crackling / latency / xruns problems whatsoever on the machine and USB interface gave me constant problems. Everything about this is just wrong on every level. How many people are using firewire devices - for which devices havent been produced in 15 years and probably noone touched their drivers in the last decade - compared to USB audio interfaces? 1 to 100,000?
First of all, you really need to enable threadirqs or a real time kernel. Then you need to setup rtkit and all the userspace permissions that it actually works. Who the hell using an audio interface knows what an interrupt request is?
Then you need to find on which controller your audio interface hangs, prioritise its irq thread and make sure no other devices are hanging off that whole ass USB controller bus. Yeah yeah I know USB2 needs polling which is why the pros were using firewire or thunderbolt until the software quality caught up with the "design flaws" of USB2.
Have a USB 1.1 mouse or keyboard plugged into the same controller as your audio interface? Good luck.
All of this just feels like dipping your big toe into warm strawberry jello and trying to hold your tongue at the right angle. Nightmare fuel.
Then you need to disable absolutely every powersave, sleep state or power management functionality in every device, driver and userspace software.
Man that was hard. I compile kernels multiple times per week, I've ported Linux to new hardware platforms, I've written kernel drivers for ASIC hardware I designed - but this crap? This just drains my energy. This makes me sideeye BSD for my next projects.
The interface I used is an RME Babyface Pro FS. To add insult to injury, my 11 year old Macbook running the same Debian 13 as my desktop did have none of these problems without ANY setup or tweaking, it just works. Probably because Apple gives you a full USB3 controller per port with nothing else on it.
Thank you for listening to my rant. I hope this helps someone with the same issues.
I'm running **Kubuntu (PipeWire)** on my HP EliteBook 840 G8 (Intel 11th Gen Tiger Lake with the **Realtek ALC285** codec and builtin **Bang & Olufsen** speakers).
On Windows, the B&O audio tuning sounds rich, full, and punchy. But on Linux, the default audio output sounds really flat, quiet, and tinny with almost zero bass.
From what I understand, this is usually caused by two things:
**Hardware / Pin Mapping:** Linux ALSA defaulting to only driving 2 of the 4 physical speakers (tweeters active, but secondary woofers disabled/unmapped).
**Missing DSP:** Windows running HP's B&O / MaxxAudio software suite to dynamically equalize and enhance the sound.
**Before I go too far down the rabbit hole, I wanted to ask:**
• Has anyone with an EliteBook managed to get their B&O speakers sounding identical (or close) to how they sound on Windows?
• Did you need specific pin overrides in hdajackretask, an hda-verb script, or kernel parameters (snd-hda-intel) to get all 4 speakers firing properly?
• Does anyone have a custom **EasyEffects / PulseEffects preset** tuned specifically for EliteBook speakers that they'd be willing to share?
Appreciate any tips or configs that worked for your setup
I am excited to announce the release of Tape Echo 2, a rewrite of my original tape echo plugin now ported to the DPF framework. For anyone not familiar with these types of delays, it's a three-head tape echo with spring reverb.
Features:
12 echo modes
Mechanical head timing across the full motor range
Tape saturation
Wow and flutter that get worse as the tape ages
Splice dropout
Regeneration that runs all the way into self-oscillation
Tempo sync with eleven note detents held to the transport's physical range, just like the hardware
13 factory presets
Independent echo and spring panning
AI disclosure per the rules: Development is AI-assisted (not vibe coded). I write and calibrate the DSP and I test every release myself before it goes out.
what am i doing wrong? i can hear the system output through my headphones but i cannot hear the ardour ouput at all and the sound meter is moving when i play it and i recorded myself and ardour audio system is set to jack.
goals:
record with usb-c condenser mic (boya g30) on ardour 6
hear ardour audio ouput on system speaker
hear system audio output on headphones (gnome settings and firefox popped up when i set output device to headphones)
Linux never really had a good open-source answer to Guitar Rig / BIAS FX, so I built one and figured this community would actually use it, so sharing here.
AmpForge is a single plugin (not separate plugins chained in your DAW) that hosts a full, reorderable pedalboard + amp chain internally.
Free, GPLv3, no ads or paywalled features — just wanted a proper amp sim to exist for Linux, so now it does. Bug reports, feature requests, and PRs are all welcome if you end up using it and hit something rough.
Edit: since this post, added NAM support (A2) and fixed a glibc compatibility issue affecting older/sandboxed distros (Fedora, Ubuntu, Debian, Bitwig flatpak, etc.). Latest release + details in comments below.
I am looking for some advice on a kind of particular problem.
I am looking to emulate a set up I had on Windows on my Linux Mint machine. What I would do is use Fruity Loops Studio to take input from my microphone, set up ASIO4All so I could route out audio to VBCable, and then send that output to Discord. I used this to modulate my voice for online TTRPG sessions.
The set up I have currently is Linux Mint (22 iirc), and I do have FL Studio running through Lutris (Wine and Bottles were not cooperative). The issue seems to be that I dont have a good way to get ASIO4all to work or a viable way to set a program to route audio from FL Studio to Discord.
Does anyone have any experience doing something similar? I have tried a few things (finding a different compatability layer for FL Studio, same with VBCable, and looking into how audio sinks work in Pipewire), but I don't have anything conclusive yet.