diff options
Diffstat (limited to 'pkgs/by-name/ea/easyeffects/package.nix')
-rw-r--r-- | pkgs/by-name/ea/easyeffects/package.nix | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/pkgs/by-name/ea/easyeffects/package.nix b/pkgs/by-name/ea/easyeffects/package.nix new file mode 100644 index 0000000000000..71f0882371af9 --- /dev/null +++ b/pkgs/by-name/ea/easyeffects/package.nix @@ -0,0 +1,132 @@ +{ + lib, + stdenv, + fetchFromGitHub, + appstream-glib, + calf, + deepfilternet, + desktop-file-utils, + fftw, + fftwFloat, + fmt_9, + glib, + gsl, + gtk4, + itstool, + ladspaH, + libadwaita, + libbs2b, + libebur128, + libportal-gtk4, + libsamplerate, + libsigcxx30, + libsndfile, + lilv, + lsp-plugins, + lv2, + mda_lv2, + meson, + ninja, + nix-update-script, + nlohmann_json, + pipewire, + pkg-config, + rnnoise, + rubberband, + speexdsp, + soundtouch, + tbb, + wrapGAppsHook4, + zam-plugins, + zita-convolver, +}: +let + # Fix crashes with speexdsp effects + speexdsp' = speexdsp.override { withFftw3 = false; }; +in + +stdenv.mkDerivation rec { + pname = "easyeffects"; + version = "7.1.7"; + + src = fetchFromGitHub { + owner = "wwmm"; + repo = "easyeffects"; + rev = "v${version}"; + hash = "sha256-y7we7/MQWweAoZkM8SuHiOTVyWFj9/foufLYBum/KKc="; + }; + + nativeBuildInputs = [ + desktop-file-utils + itstool + meson + ninja + pkg-config + wrapGAppsHook4 + ]; + + buildInputs = [ + appstream-glib + deepfilternet + fftw + fftwFloat + fmt_9 + glib + gsl + gtk4 + ladspaH + libadwaita + libbs2b + libebur128 + libportal-gtk4 + libsamplerate + libsigcxx30 + libsndfile + lilv + lv2 + nlohmann_json + pipewire + rnnoise + rubberband + soundtouch + speexdsp' + tbb + zita-convolver + ]; + + preFixup = + let + lv2Plugins = [ + calf # compressor exciter, bass enhancer and others + lsp-plugins # delay, limiter, multiband compressor + mda_lv2 # loudness + zam-plugins # maximizer + ]; + ladspaPlugins = [ + deepfilternet # deep noise remover + rubberband # pitch shifting + ]; + in + '' + 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${version}/CHANGELOG.md"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ getchoo ]; + mainProgram = "easyeffects"; + platforms = lib.platforms.linux; + }; +} |