nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 calf,
5 cmake,
6 deepfilternet,
7 fetchFromGitHub,
8 fftw,
9 fftwFloat,
10 glib,
11 gsl,
12 intltool,
13 kdePackages,
14 ladspaH,
15 libbs2b,
16 libebur128,
17 libmysofa,
18 libsigcxx30,
19 libsndfile,
20 lilv,
21 lsp-plugins,
22 lv2,
23 mda_lv2,
24 ninja,
25 nix-update-script,
26 nlohmann_json,
27 pipewire,
28 pkg-config,
29 qt6,
30 rnnoise,
31 rubberband,
32 soundtouch,
33 speexdsp,
34 onetbb,
35 webrtc-audio-processing,
36 zam-plugins,
37 zita-convolver,
38 wrapGAppsNoGuiHook,
39}:
40
41let
42 inherit (qt6)
43 qtbase
44 qtgraphs
45 wrapQtAppsHook
46 ;
47 inherit (kdePackages)
48 breeze
49 breeze-icons
50 extra-cmake-modules
51 kcolorscheme
52 kconfigwidgets
53 kiconthemes
54 kirigami
55 kirigami-addons
56 qqc2-desktop-style
57 ;
58in
59
60stdenv.mkDerivation (finalAttrs: {
61 pname = "easyeffects";
62 version = "8.0.9";
63
64 src = fetchFromGitHub {
65 owner = "wwmm";
66 repo = "easyeffects";
67 tag = "v${finalAttrs.version}";
68 hash = "sha256-cFMbeJeEIDP7uiNi+rRKErgHtjP/PbPKASo+M2qogZQ=";
69 };
70
71 patches = [ ./qmlmodule-fix.patch ];
72
73 nativeBuildInputs = [
74 cmake
75 extra-cmake-modules
76 intltool
77 ninja
78 pkg-config
79 wrapGAppsNoGuiHook
80 wrapQtAppsHook
81 ];
82
83 dontWrapGApps = true;
84
85 buildInputs = [
86 breeze
87 breeze-icons
88 deepfilternet
89 fftw
90 fftwFloat
91 glib
92 gsl
93 kcolorscheme
94 kconfigwidgets
95 kiconthemes
96 kirigami
97 kirigami-addons
98 ladspaH
99 qqc2-desktop-style
100 libbs2b
101 libebur128
102 libmysofa
103 libsigcxx30
104 libsndfile
105 lilv
106 lv2
107 nlohmann_json
108 pipewire
109 qtbase
110 qtgraphs
111 rnnoise
112 rubberband
113 soundtouch
114 speexdsp
115 onetbb
116 webrtc-audio-processing
117 zita-convolver
118 ];
119
120 preFixup =
121 let
122 lv2Plugins = [
123 calf # compressor exciter, bass enhancer and others
124 lsp-plugins # delay, limiter, multiband compressor
125 mda_lv2 # loudness
126 zam-plugins # maximizer
127 ];
128
129 ladspaPlugins = [
130 deepfilternet # deep noise remover
131 rubberband # pitch shifting
132 ];
133 in
134 ''
135 qtWrapperArgs+=(
136 "''${gappsWrapperArgs[@]}"
137 --set LV2_PATH "${lib.makeSearchPath "lib/lv2" lv2Plugins}"
138 --set LADSPA_PATH "${lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
139 )
140 '';
141
142 separateDebugInfo = true;
143
144 passthru = {
145 updateScript = nix-update-script { };
146 };
147
148 meta = {
149 description = "Audio effects for PipeWire applications";
150 homepage = "https://github.com/wwmm/easyeffects";
151 changelog = "https://github.com/wwmm/easyeffects/blob/v${finalAttrs.version}/src/contents/docs/community/CHANGELOG.md";
152 license = lib.licenses.gpl3Plus;
153 maintainers = with lib.maintainers; [
154 getchoo
155 aleksana
156 Gliczy
157 ];
158 mainProgram = "easyeffects";
159 platforms = lib.platforms.linux;
160 };
161})