Show HN: Parametric Equalizer for PulseAudio
github.com
github.com
I hope you can add a bit of polish to integrate better into OS. On XFCE the program has a nice-looking icon showing in Notification Area (system tray), but in Window Buttons (taskbar) it has a generic icon. It cannot be minimized or hidden, it can only be closed.
Edit: I am not an audio pro and if this EQ is in fact aimed at production, I would love to learn more about its use cases
While probably not suited for production work, the design is based off of existing production tools that I am very familiar with (Channel EQ from Logic Pro X, Parametric Eq 2 from FL Studio).
No it's not, it's just widespread incompetence and has ruined lots of music I would have liked. Having better software tools that alert when clipping is happening would be a good thing (i.e. it needs to alert when crossing over from 0dB to a distorted wave form, not just hitting 0dB without distorting, which is fine).
If the audio clips, and the meter doesn't "blow out", then in my opinion that is a defective meter.
ALSA already has an eq plugin (http://quitte.de/dsp/caps.html#Eq10) and I added this to it:
if ((s > +0.99 && x[z1] > +0.99 && x[z2] > +0.99) ||
(s < -0.99 && x[z1] < -0.99 && x[z2] < -0.99) ) {
//clipped audio isn't exactly 1.
printf ("dsp/Eq.h:process(): input clipped :(\n");
}
.... if (
(r >= 1.0 || r <= -1.0) &&
(r < 20 && r > -20)) { //uninited memory?
printf ("dsp/Eq.h:process(): output clipped :( %0.16f\n", r);
}
(one day I should try to get upstream to accept that or something like it...)And thanks but I'm happily using my patch on a pure alsa system without pulse audio, and don't really have the time to spend on adding the equivalent to yours sorry. But I'd want to if only to spread awareness about clipping - it's not just music, there are also many Youtube channels that I unsubed from because of it (I did tell them but they didn't care).
Actually preventing clipping instead just detecting it (which mine does) is a lot of work - it would need to find the loudest frequency, then find the closest band and reduce that (while loudly informing the user, and oviously with an option to control it).
Did you test against pulseeffects cpu usage?
If OP did that, I probably wouldn’t bother to improve their code: https://github.com/Const-me/prettyeq/tree/master
While my primary motivation was “for lulz”, possibility to reuse the code whenever I need a fast 1D FFT also contributed.
Automatic vectorization is extremely limited, in all compilers.
Check this out, feel free to merge if it works in reality not just in the test: https://github.com/Const-me/prettyeq/tree/master
Email me at kevin@segfault.fun if you have any questions. The pulseaudio C API can be a bit... opaque :)
I will give this a try tomorrow!
very promising. have been looking for a pulseeffects replacement for some time.
mkdir ./make ./build
cd ./make
qmake CONFIG+=release ..
make -j<cthread_count>
mv ./prettyeq ../build
First try I got: equalizer/equalizer.pro:10: Parse Error ('pretty.h')
Then I removed the extra pretty.h line and got: ../../gui/prettyshim.h:4:10: fatal error: QObject: No such file or directory #include <QObject>
which is beyond my time to dig right now :/