base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / ea / easyeffects / package.nix
blob5c371efca5d3d9fdff50a46a19aa982124b14381
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   appstream-glib,
6   calf,
7   deepfilternet,
8   desktop-file-utils,
9   fftw,
10   fftwFloat,
11   fmt_9,
12   glib,
13   gsl,
14   gtk4,
15   itstool,
16   ladspaH,
17   libadwaita,
18   libbs2b,
19   libebur128,
20   libportal-gtk4,
21   libsamplerate,
22   libsigcxx30,
23   libsndfile,
24   lilv,
25   lsp-plugins,
26   lv2,
27   mda_lv2,
28   meson,
29   ninja,
30   nix-update-script,
31   nlohmann_json,
32   pipewire,
33   pkg-config,
34   rnnoise,
35   rubberband,
36   soundtouch,
37   speexdsp,
38   tbb,
39   wrapGAppsHook4,
40   zam-plugins,
41   zita-convolver,
44 let
45   # Fix crashes with speexdsp effects
46   speexdsp' = speexdsp.override { withFftw3 = false; };
48 stdenv.mkDerivation rec {
49   pname = "easyeffects";
50   version = "7.1.9";
52   src = fetchFromGitHub {
53     owner = "wwmm";
54     repo = "easyeffects";
55     rev = "refs/tags/v${version}";
56     hash = "sha256-It+kldlhThWF9y/rTgKt9QlIouH1cQcCtSHQTsaGjfo=";
57   };
59   nativeBuildInputs = [
60     desktop-file-utils
61     itstool
62     meson
63     ninja
64     pkg-config
65     wrapGAppsHook4
66   ];
68   buildInputs = [
69     appstream-glib
70     deepfilternet
71     fftw
72     fftwFloat
73     fmt_9
74     glib
75     gsl
76     gtk4
77     ladspaH
78     libadwaita
79     libbs2b
80     libebur128
81     libportal-gtk4
82     libsamplerate
83     libsigcxx30
84     libsndfile
85     lilv
86     lv2
87     nlohmann_json
88     pipewire
89     rnnoise
90     rubberband
91     soundtouch
92     speexdsp'
93     tbb
94     zita-convolver
95   ];
97   preFixup =
98     let
99       lv2Plugins = [
100         calf # compressor exciter, bass enhancer and others
101         lsp-plugins # delay, limiter, multiband compressor
102         mda_lv2 # loudness
103         zam-plugins # maximizer
104       ];
105       ladspaPlugins = [
106         deepfilternet # deep noise remover
107         rubberband # pitch shifting
108       ];
109     in
110     ''
111       gappsWrapperArgs+=(
112         --set LV2_PATH "${lib.makeSearchPath "lib/lv2" lv2Plugins}"
113         --set LADSPA_PATH "${lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
114       )
115     '';
117   separateDebugInfo = true;
119   passthru = {
120     updateScript = nix-update-script { };
121   };
123   meta = {
124     description = "Audio effects for PipeWire applications";
125     homepage = "https://github.com/wwmm/easyeffects";
126     changelog = "https://github.com/wwmm/easyeffects/blob/v${version}/CHANGELOG.md";
127     license = lib.licenses.gpl3Plus;
128     maintainers = with lib.maintainers; [ getchoo ];
129     mainProgram = "easyeffects";
130     platforms = lib.platforms.linux;
131   };