{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
itstool,
python3,
libxml2,
desktop-file-utils,
wrapGAppsHook3,
gst_all_1,
pulseaudio,
gtk3,
glib,
glibmm,
gtkmm3,
lilv,
lv2,
serd,
sord,
sratom,
libbs2b,
libsamplerate,
libsndfile,
libebur128,
rnnoise,
boost,
dbus,
fftwFloat,
calf,
zita-convolver,
zam-plugins,
rubberband,
lsp-plugins,
}:
let
lv2Plugins = [
calf # limiter, compressor exciter, bass enhancer and others
lsp-plugins # delay
];
ladspaPlugins = [
rubberband # pitch shifting
zam-plugins # maximizer
in
stdenv.mkDerivation rec {
pname = "pulseeffects";
version = "4.8.7";
src = fetchFromGitHub {
owner = "wwmm";
repo = "pulseeffects";
rev = "v${version}";
sha256 = "sha256-ldvcA8aTHOgaascH6MF4CzmJ8I2rYOiR0eAkCZzvK/M=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
libxml2
itstool
python3
desktop-file-utils
wrapGAppsHook3
buildInputs = [
pulseaudio
glib
glibmm
gtk3
gtkmm3
gst_all_1.gstreamer
gst_all_1.gst-plugins-base # gst-fft
gst_all_1.gst-plugins-good # pulsesrc
gst_all_1.gst-plugins-bad
lilv
lv2
serd
sord
sratom
libbs2b
libebur128
libsamplerate
libsndfile
rnnoise
boost
dbus
fftwFloat
zita-convolver
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';
preFixup = ''
gappsWrapperArgs+=(
--set LV2_PATH "${lib.makeSearchPath "lib/lv2" lv2Plugins}"
--set LADSPA_PATH "${lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
)
meta = with lib; {
description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
mainProgram = "pulseeffects";
homepage = "https://github.com/wwmm/pulseeffects";
license = licenses.gpl3Plus;
maintainers = [ ];
platforms = platforms.linux;
}