lol
1{
2 lib,
3 stdenv,
4 fetchzip,
5 fetchurl,
6 makeDesktopItem,
7 copyDesktopItems,
8 buildFHSEnv,
9 alsa-lib,
10 freetype,
11 nghttp2,
12 libX11,
13 expat,
14}:
15
16let
17 pname = "decent-sampler";
18 version = "1.13.10";
19 rlkey = "orvjprslmwn0dkfs0ncx6nxnm";
20
21 icon = fetchurl {
22 url = "https://www.decentsamples.com/wp-content/uploads/2018/09/cropped-Favicon_512x512.png";
23 hash = "sha256-EXjaHrlXY0HU2EGTrActNbltIiqTLfdkFgP7FXoLzrM=";
24 };
25
26 decent-sampler = stdenv.mkDerivation {
27 inherit pname version;
28
29 src = fetchzip {
30 # dropbox links: https://www.dropbox.com/sh/dwyry6xpy5uut07/AABBJ84bjTTSQWzXGG5TOQpfa\
31 url = "https://www.dropbox.com/scl/fo/a0i0udw7ggfwnjoi05hh3/ACdV5vrbMrsBIUbidqizaIk/Decent_Sampler-${version}-Linux-Static-x86_64.tar.gz?rlkey=${rlkey}&dl=0";
32 hash = "sha256-2LyBldjsD05bMyK/aI+Ivk3f3cErRiM7GJlwOGqT9VQ=";
33 };
34
35 nativeBuildInputs = [ copyDesktopItems ];
36
37 desktopItems = [
38 (makeDesktopItem {
39 type = "Application";
40 name = "decent-sampler";
41 desktopName = "Decent Sampler";
42 comment = "DecentSampler player";
43 icon = "decent-sampler";
44 exec = "decent-sampler";
45 categories = [
46 "Audio"
47 "AudioVideo"
48 ];
49 })
50 ];
51
52 installPhase = ''
53 runHook preInstall
54
55 install -Dm755 DecentSampler $out/bin/decent-sampler
56 install -Dm755 DecentSampler.so -t $out/lib/vst
57 install -d "$out/lib/vst3" && cp -r "DecentSampler.vst3" $out/lib/vst3
58 install -Dm444 ${icon} $out/share/pixmaps/decent-sampler.png
59
60 runHook postInstall
61 '';
62 };
63
64in
65
66buildFHSEnv {
67 inherit (decent-sampler) pname version;
68
69 targetPkgs = pkgs: [
70 alsa-lib
71 decent-sampler
72 freetype
73 nghttp2
74 libX11
75 expat
76 ];
77
78 runScript = "decent-sampler";
79
80 extraInstallCommands = ''
81 cp -r ${decent-sampler}/lib $out/lib
82 cp -r ${decent-sampler}/share $out/share
83 '';
84
85 meta = with lib; {
86 description = "Audio sample player";
87 longDescription = ''
88 Decent Sampler is an audio sample player.
89 Allowing you to play sample libraries in the DecentSampler format
90 (files with extensions: dspreset and dslibrary).
91 '';
92 mainProgram = "decent-sampler";
93 homepage = "https://www.decentsamples.com/product/decent-sampler-plugin/";
94 # It claims to be free but we currently cannot find any license
95 # that it is released under.
96 license = licenses.unfree;
97 sourceProvenance = with sourceTypes; [ binaryNativeCode ];
98 platforms = [ "x86_64-linux" ];
99 maintainers = with maintainers; [
100 adam248
101 chewblacka
102 kaptcha0
103 ];
104 };
105}