nixpkgs/pkgs/by-name/ea/easyeffects/package.nix
2026-07-05 18:49:34 +00:00

167 lines
2.9 KiB
Nix

{
lib,
stdenv,
calf,
cmake,
deepfilternet,
fetchFromGitHub,
fftw,
fftwFloat,
glib,
gsl,
intltool,
kdePackages,
ladspa-header,
libbs2b,
libebur128,
libmysofa,
libsigcxx30,
libsndfile,
lilv,
lsp-plugins,
lv2,
mda_lv2,
ninja,
nix-update-script,
nlohmann_json,
pipewire,
pkg-config,
qt6,
rnnoise,
rubberband,
soundtouch,
speexdsp,
onetbb,
webrtc-audio-processing,
x42-plugins,
zam-plugins,
zita-convolver,
wrapGAppsHook3,
}:
let
inherit (qt6)
qtbase
qtgraphs
wrapQtAppsHook
;
inherit (kdePackages)
breeze
breeze-icons
extra-cmake-modules
kcolorscheme
kconfigwidgets
kiconthemes
kirigami
kirigami-addons
qqc2-desktop-style
;
speexdsp' = speexdsp.override { withFftw3 = false; };
in
stdenv.mkDerivation (finalAttrs: {
pname = "easyeffects";
version = "8.2.7";
src = fetchFromGitHub {
owner = "wwmm";
repo = "easyeffects";
tag = "v${finalAttrs.version}";
hash = "sha256-YYwVoqCRVAZVu8vCTN3ZSicy1Fzw3l+hQbooGAE/AEI=";
};
nativeBuildInputs = [
cmake
extra-cmake-modules
intltool
ninja
pkg-config
wrapGAppsHook3
wrapQtAppsHook
];
dontWrapGApps = true;
buildInputs = [
breeze
breeze-icons
deepfilternet
fftw
fftwFloat
glib
gsl
kcolorscheme
kconfigwidgets
kiconthemes
kirigami
kirigami-addons
ladspa-header
qqc2-desktop-style
libbs2b
libebur128
libmysofa
libsigcxx30
libsndfile
lilv
lv2
nlohmann_json
pipewire
qtbase
qtgraphs
rnnoise
rubberband
soundtouch
speexdsp'
onetbb
webrtc-audio-processing
zita-convolver
]
++ lib.optionals stdenv.hostPlatform.isx86 [
x42-plugins
];
preFixup =
let
lv2Plugins = [
calf # compressor exciter, bass enhancer and others
lsp-plugins # delay, limiter, multiband compressor
mda_lv2 # loudness
zam-plugins # maximizer
]
++ lib.optionals stdenv.hostPlatform.isx86 [
x42-plugins # autotune
];
ladspaPlugins = [
deepfilternet # deep noise remover
rubberband # pitch shifting
];
in
''
qtWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
--set LV2_PATH "${lib.makeSearchPath "lib/lv2" lv2Plugins}"
--set LADSPA_PATH "${lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
)
'';
separateDebugInfo = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Audio effects for PipeWire applications";
homepage = "https://github.com/wwmm/easyeffects";
changelog = "https://github.com/wwmm/easyeffects/blob/v${finalAttrs.version}/src/contents/docs/community/CHANGELOG.md";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
getchoo
aleksana
Gliczy
];
mainProgram = "easyeffects";
platforms = lib.platforms.linux;
};
})