{ lib , stdenv , desktop-file-utils , fetchFromGitHub , calf , fftwFloat , fmt , glib , gtk4 , itstool , libadwaita , libbs2b , libebur128 , libsamplerate , libsigcxx30 , libsndfile , lilv , lsp-plugins , lv2 , mda_lv2 , meson , ninja , nlohmann_json , pipewire , pkg-config , python3 , rnnoise , rubberband , speexdsp , tbb , wrapGAppsHook4 , zam-plugins , zita-convolver }: stdenv.mkDerivation rec { pname = "easyeffects"; version = "6.2.3"; src = fetchFromGitHub { owner = "wwmm"; repo = "easyeffects"; rev = "v${version}"; sha256 = "sha256-A1UanrAbmZFGCmDNIr1h+v5RVMsIl4qgM/veBirudQM="; }; nativeBuildInputs = [ desktop-file-utils itstool meson ninja pkg-config python3 wrapGAppsHook4 ]; buildInputs = [ fftwFloat fmt glib gtk4 libadwaita libbs2b libebur128 libsamplerate libsigcxx30 libsndfile lilv lv2 nlohmann_json pipewire rnnoise rubberband speexdsp tbb zita-convolver ]; postPatch = '' chmod +x meson_post_install.py patchShebangs meson_post_install.py ''; preFixup = let lv2Plugins = [ calf # compressor exciter, bass enhancer and others lsp-plugins # delay, limiter, multiband compressor mda_lv2 # loudness zam-plugins # maximizer ]; ladspaPlugins = [ rubberband # pitch shifting ]; in '' gappsWrapperArgs+=( --set LV2_PATH "${lib.makeSearchPath "lib/lv2" lv2Plugins}" --set LADSPA_PATH "${lib.makeSearchPath "lib/ladspa" ladspaPlugins}" ) ''; separateDebugInfo = true; meta = with lib; { description = "Audio effects for PipeWire applications."; homepage = "https://github.com/wwmm/easyeffects"; license = licenses.gpl3Plus; maintainers = with maintainers; [ jtojnar ]; platforms = platforms.linux; badPlatforms = [ "aarch64-linux" ]; }; }