196 lines
4.3 KiB
Nix
196 lines
4.3 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
cairo,
|
|
fetchurl,
|
|
gst_all_1,
|
|
jack2,
|
|
ladspa-header,
|
|
libGL,
|
|
libGLU,
|
|
libxrandr,
|
|
libsndfile,
|
|
lv2,
|
|
php84,
|
|
pkg-config,
|
|
|
|
buildVST3 ? true,
|
|
buildVST2 ? true,
|
|
buildCLAP ? true,
|
|
buildLV2 ? true,
|
|
buildLADSPA ? true,
|
|
buildJACK ? true,
|
|
buildGStreamer ? true,
|
|
}:
|
|
|
|
let
|
|
php = php84;
|
|
|
|
subFeatures = [
|
|
(lib.optionalString (!buildVST3) "vst3")
|
|
(lib.optionalString (!buildVST2) "vst2")
|
|
(lib.optionalString (!buildCLAP) "clap")
|
|
(lib.optionalString (!buildLV2) "lv2")
|
|
(lib.optionalString (!buildLADSPA) "ladspa")
|
|
(lib.optionalString (!buildJACK) "jack")
|
|
(lib.optionalString (!buildGStreamer) "gst")
|
|
];
|
|
in
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "lsp-plugins";
|
|
version = "1.2.33";
|
|
|
|
outputs = [
|
|
"out"
|
|
"dev"
|
|
"doc"
|
|
];
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/lsp-plugins/lsp-plugins/releases/download/${finalAttrs.version}/lsp-plugins-src-${finalAttrs.version}.tar.gz";
|
|
hash = "sha256-K2kiEFEYrIe9lCsP8+e/PIGAInsqtcTlDkjeuQrGib0=";
|
|
};
|
|
|
|
# By default, GStreamer plugins are installed right alongside GStreamer itself
|
|
# We can't do that in Nixpkgs, so lets install it to $out/lib like other plugins
|
|
postPatch = ''
|
|
substituteInPlace modules/lsp-plugin-fw/src/Makefile \
|
|
--replace-fail '$(shell pkg-config --variable=pluginsdir gstreamer-1.0)' '$(LIBDIR)/gstreamer-1.0'
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
php
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
cairo
|
|
gst_all_1.gst-plugins-base
|
|
gst_all_1.gstreamer
|
|
jack2
|
|
ladspa-header
|
|
libGL
|
|
libGLU
|
|
libxrandr
|
|
libsndfile
|
|
lv2
|
|
];
|
|
|
|
makeFlags = [
|
|
"ETCDIR=${placeholder "out"}/etc"
|
|
"PREFIX=${placeholder "out"}"
|
|
"SHAREDDIR=${placeholder "out"}/share"
|
|
];
|
|
|
|
env.NIX_CFLAGS_COMPILE = "-DLSP_NO_EXPERIMENTAL";
|
|
|
|
configurePhase = ''
|
|
runHook preConfigure
|
|
|
|
make $makeFlags config SUB_FEATURES="${lib.concatStringsSep " " subFeatures}"
|
|
|
|
runHook postConfigure
|
|
'';
|
|
|
|
doCheck = true;
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
meta = {
|
|
description = "Collection of open-source audio plugins";
|
|
longDescription = ''
|
|
Compatible with the following formats:
|
|
|
|
- CLAP - set of plugins for Clever Audio Plugins API
|
|
- LADSPA - set of plugins for Linux Audio Developer's Simple Plugin API
|
|
- LV2 - set of plugins and UIs for Linux Audio Developer's Simple Plugin API (LADSPA) version 2
|
|
- LinuxVST - set of plugins and UIs for Steinberg's VST 2.4 format ported on GNU/Linux Platform
|
|
- VST3 - set of plugins and UIs for Steinberg's VST 3 format
|
|
- JACK - Standalone versions for JACK Audio connection Kit with UI
|
|
|
|
Contains the following plugins (https://lsp-plug.in/?page=plugins)
|
|
|
|
Equalizers:
|
|
- Filter
|
|
- Graphic Equalizer
|
|
- Parametric Equalizer
|
|
|
|
Dynamic Processing:
|
|
- Beat Breather
|
|
- Clipper
|
|
- Compressor
|
|
- Dynamics Processor
|
|
- Expander
|
|
- Gate
|
|
- Limiter
|
|
|
|
Multiband Dynamic Processing:
|
|
- GOTT Compressor
|
|
- Multiband Clipper
|
|
- Multiband Compressor
|
|
- Multiband Dynamics Processor
|
|
- Multiband Expander
|
|
- Multiband Gate
|
|
- Multiband Limiter
|
|
|
|
Convolution / Reverb Processing:
|
|
- Impulse Responses
|
|
- Impulse Reverb
|
|
- Room Builder
|
|
|
|
Delay Effects:
|
|
- Artistic Delay
|
|
- Compensation Delay
|
|
- Slap-back Delay
|
|
|
|
Modulation Effects:
|
|
- Chorus
|
|
- Flanger
|
|
- Phaser
|
|
|
|
Analyzers:
|
|
- Oscilloscope
|
|
- Phase Detector
|
|
- Spectrum Analyzer
|
|
|
|
Multiband Processing:
|
|
- Crossover
|
|
|
|
Samplers:
|
|
- Multisampler
|
|
- Sampler
|
|
|
|
Generators / Oscillators:
|
|
- Noise Generator
|
|
- Oscillator
|
|
|
|
Utility Plugins:
|
|
- A/B Test Plugin
|
|
- Automatic Gain Control
|
|
- Latency Meter
|
|
- Loudness Compensator
|
|
- Mixer
|
|
- Profiler
|
|
- Referencer
|
|
- Return
|
|
- Ring Modulated Sidechain
|
|
- Send
|
|
- Surge Filter
|
|
- Trigger
|
|
|
|
Matcher plugins:
|
|
- Matcher
|
|
- Sidechain Matcher
|
|
'';
|
|
homepage = "https://lsp-plug.in";
|
|
changelog = "https://github.com/lsp-plugins/lsp-plugins/releases/tag/${finalAttrs.version}";
|
|
maintainers = with lib.maintainers; [
|
|
magnetophon
|
|
PowerUser64
|
|
];
|
|
license = lib.licenses.gpl2;
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|